From e80adff2cfff2fa9d29aff9e5a7f2feb52681ef8 Mon Sep 17 00:00:00 2001 From: liuke <123456> Date: Fri, 11 Dec 2020 18:34:00 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java | 4 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml | 7 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java | 52 kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/config/AuthorizationServerConfig.java | 9 kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js | 2 kidgrow-config/src/main/resources/application-dev.properties | 4 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java | 29 kidgrow-business/kidgrow-opration-center/pom.xml | 5 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/SreeningOrganizationService.java | 20 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/DiagnosticServiceFallbackFactory.java | 5 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java | 95 + kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java | 8 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html | 27 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IScreeningOrganizationInfoService.java | 15 kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java | 6 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java | 3 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderRecordController.java | 11 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ScreeningOrganizationInfoMapper.java | 14 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/DiagnosticService.java | 8 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningOrganizatonServiceFallbackFactory.java | 13 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ScreeningOrganizationInfoMapper.xml | 19 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java | 9 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java | 5 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/rechargeupdate.html | 1093 ++++++++++++++++++++ kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java | 68 + kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/HospitalScreeningMapper.xml | 13 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html | 23 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java | 30 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java | 17 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java | 3 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html | 108 ++ kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html | 26 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital_form.html | 6 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/HospitalScreeningMapper.java | 13 kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/controller/OAuth2Controller.java | 4 pom.xml | 22 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java | 35 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ScreeningHospitalService.java | 39 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html | 931 +++++++++++++---- kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html | 3 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ScreeningOrganizationInfoServiceImpl.java | 17 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java | 7 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java | 15 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/admin.js | 2 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html | 1 kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java | 13 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductOrderDetailVo.java | 4 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/RedisStartupRunner.java | 19 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningHospitalServiceFallbackFactory.java | 38 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/equipmentDocking.html | 1 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java | 6 kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html | 180 ++- kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java | 10 kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js | 2 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java | 41 59 files changed, 2,759 insertions(+), 408 deletions(-) diff --git a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java index c490b1f..4d30ebc 100644 --- a/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java +++ b/kidgrow-business/kidgrow-filecenter/kidgrow-filecenter-server/src/main/java/com/kidgrow/filecenter/config/AliyunOSSAutoConfigure.java @@ -149,7 +149,11 @@ fileFolder += "HospitalLogo/"; } else if (imgType.toLowerCase().equals("doctor")) { fileFolder += "DoctorImage/"; - } else { + } else if (imgType.toLowerCase().equals("customerhospital")) { + fileFolder += "Customer/Hospital/" + folderByDate + "/"; + } else if (imgType.toLowerCase().equals("customerhead")) { + fileFolder += "Customer/HeadImg/" + folderByDate + "/"; + }else { fileFolder += "OtherImage/" + folderByDate + "/"; } } else { diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/DiagnosticService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/DiagnosticService.java index d853939..fe8379d 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/DiagnosticService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/DiagnosticService.java @@ -7,6 +7,8 @@ import com.kidgrow.ribbon.config.FeignHttpInterceptorConfig; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.Map; @@ -26,4 +28,10 @@ */ @GetMapping(value = "/diagnostic/diagnosticitem") ResultBody<PageResult> getDiagnosticItemList(@RequestParam Map<String, Object> params); + + /** + * feign rpc访问远程 接口 + */ + @PostMapping(value = "/ReportRecord/operation/pdfname/{diagnosticId}/{reportType}/{hospitalId}/{departId}") + ResultBody getPdfPathForOperation(@PathVariable("diagnosticId") String diagnosticId,@PathVariable("reportType") Integer reportType,@PathVariable("hospitalId") Long hospitalId,@PathVariable("departId") Long departId); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java index b3ba0c6..ad4e281 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ProductOrderService.java @@ -3,6 +3,7 @@ import com.kidgrow.common.constant.ServiceNameConstants; import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.feign.fallback.ProductOrderFallbackFactory; +import com.kidgrow.oprationcenter.model.ProductOrder; import com.kidgrow.ribbon.config.FeignHttpInterceptorConfig; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -26,4 +27,11 @@ */ @PostMapping(value = "contract/saveTemp") ResultBody saveProductDetail(@RequestBody Map<String,Object> params); + /** + * + * @param productOrder + * @return + */ + @PostMapping(value = "/contract/getStatus") + ResultBody getStatus(@RequestBody ProductOrder productOrder); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ScreeningHospitalService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ScreeningHospitalService.java new file mode 100644 index 0000000..d3ace94 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/ScreeningHospitalService.java @@ -0,0 +1,39 @@ +package com.kidgrow.oprationcenter.feign; + +import com.kidgrow.common.constant.ServiceNameConstants; +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.oprationcenter.feign.fallback.ScreeningHospitalServiceFallbackFactory; +import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.ribbon.config.FeignHttpInterceptorConfig; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Map; + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @Description: <br> + * @Project: <br> + * @CreateDate: Created in 2020/11/16 15:54 <br> + * @Author: <a href="78125310@kidgrow.com">dougang</a> + */ +@FeignClient(value = ServiceNameConstants.OPRATION_SERVER,configuration= FeignHttpInterceptorConfig.class, + fallbackFactory = ScreeningHospitalServiceFallbackFactory.class, decode404 = true) +public interface ScreeningHospitalService { + /** + * + * @param hospitalScreening + * @return + */ + @PostMapping(value = "/hospitalscreening/query") + ResultBody findByObject(@RequestBody HospitalScreening hospitalScreening); + + @GetMapping(value = "/hospitalscreening") + PageResult<HospitalScreening> list(@RequestParam Map<String, Object> params); + +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/SreeningOrganizationService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/SreeningOrganizationService.java index 8816ab1..3d83c10 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/SreeningOrganizationService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/SreeningOrganizationService.java @@ -1,6 +1,7 @@ package com.kidgrow.oprationcenter.feign; import com.kidgrow.common.constant.ServiceNameConstants; +import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.feign.fallback.ScreeningOrganizatonServiceFallbackFactory; import com.kidgrow.oprationcenter.model.ScreeningOrganizationInfo; @@ -8,6 +9,9 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -25,4 +29,20 @@ */ @PostMapping(value = "/screeningorganizationinfo/query") ResultBody findByObject(@RequestBody ScreeningOrganizationInfo organizationInfo); + + /** + * + * @param id + * @return + */ + @PostMapping(value = "/screeningorganizationinfo/getOrganizationListByHospitalId") + ResultBody getOrganizationListByHospitalId(@RequestBody String id); + + /** + * 通过医院关键字查询机构 + * @param params + * @return + */ + @PostMapping(value = "/screeningorganizationinfo/listByKeyWord") + PageResult<ScreeningOrganizationInfo> listByKeyWord(@RequestParam Map<String, Object> params); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/DiagnosticServiceFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/DiagnosticServiceFallbackFactory.java index c610c2a..6edc94f 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/DiagnosticServiceFallbackFactory.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/DiagnosticServiceFallbackFactory.java @@ -18,6 +18,11 @@ public ResultBody<PageResult> getDiagnosticItemList(Map<String, Object> params) { return ResultBody.failed().msg("getDiagnosticItemList的FeignClient调用参数传递测试失败"); } + + @Override + public ResultBody getPdfPathForOperation(String diagnosticId, Integer reportType, Long hospitalId, Long departId) { + return ResultBody.failed().msg("getPdfPathForOperation的FeignClient调用参数传递测试失败"); + } }; } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java index 9f68d19..7f1bfce 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ProductOrderFallbackFactory.java @@ -2,6 +2,7 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.feign.ProductOrderService; +import com.kidgrow.oprationcenter.model.ProductOrder; import feign.hystrix.FallbackFactory; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Component; @@ -17,6 +18,11 @@ public ResultBody saveProductDetail(Map<String, Object> params) { return ResultBody.failed().msg("saveProductDetail的FeignClient调用失败"); } + + @Override + public ResultBody getStatus(ProductOrder productOrder) { + return ResultBody.failed().msg("获取正式和试用的的FeignClient接口失败"); + } }; } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningHospitalServiceFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningHospitalServiceFallbackFactory.java new file mode 100644 index 0000000..1c1f76f --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningHospitalServiceFallbackFactory.java @@ -0,0 +1,38 @@ +package com.kidgrow.oprationcenter.feign.fallback; + + +import com.kidgrow.common.model.PageResult; +import com.kidgrow.common.model.ResultBody; +import com.kidgrow.oprationcenter.feign.ScreeningHospitalService; +import com.kidgrow.oprationcenter.model.HospitalScreening; +import feign.hystrix.FallbackFactory; +import org.springframework.stereotype.Component; + +import java.util.Map; + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @Description: <br> + * @Project: <br> + * @CreateDate: Created in 2020/11/16 15:58 <br> + * @Author: <a href="78125310@kidgrow.com">dougang</a> + */ +@Component +public class ScreeningHospitalServiceFallbackFactory implements FallbackFactory<ScreeningHospitalService> { + + @Override + public ScreeningHospitalService create(Throwable throwable) { + return new ScreeningHospitalService(){ + @Override + public ResultBody findByObject(HospitalScreening hospitalScreening) { + return ResultBody.failed().msg("分客户端,获取医院失败"); + } + + @Override + public PageResult<HospitalScreening> list(Map<String, Object> params) { + return PageResult.<HospitalScreening>builder().code(1000).build(); + } + }; + } +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningOrganizatonServiceFallbackFactory.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningOrganizatonServiceFallbackFactory.java index c618ec2..4f77d71 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningOrganizatonServiceFallbackFactory.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/feign/fallback/ScreeningOrganizatonServiceFallbackFactory.java @@ -1,11 +1,14 @@ package com.kidgrow.oprationcenter.feign.fallback; +import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.oprationcenter.feign.SreeningOrganizationService; import com.kidgrow.oprationcenter.model.ScreeningOrganizationInfo; import feign.hystrix.FallbackFactory; import org.springframework.stereotype.Component; + +import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> @@ -26,6 +29,16 @@ public ResultBody findByObject(ScreeningOrganizationInfo organizationInfo) { return ResultBody.failed().msg("saveProductDetail的FeignClient调用失败"); } + + @Override + public ResultBody getOrganizationListByHospitalId(String id) { + return ResultBody.failed().msg("getOrganizationListByHospitalId的FeignClient调用失败"); + } + + @Override + public PageResult<ScreeningOrganizationInfo> listByKeyWord(Map<String, Object> params) { + return PageResult.<ScreeningOrganizationInfo>builder().code(1000).build(); + } }; } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java index 380586f..d03f898 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/HospitalScreening.java @@ -1,5 +1,6 @@ package com.kidgrow.oprationcenter.model; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; @@ -79,4 +80,10 @@ * 微站首页中间位置图片 */ private String homePage; + + /** + * 查询关键字 + */ + @TableField(exist = false) + private String keyWord; } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java index d6bf227..1e9aa55 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrder.java @@ -63,6 +63,9 @@ */ @NotEmpty(message = "合同名称不能为空") private String contractTitle; + + @NotNull(message = "合同名数量不能为空") + private Integer contractNum; /** * 合同开始时间 */ diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java index 46ac6c3..633d2fa 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ProductOrderDetail.java @@ -50,10 +50,14 @@ @NotEmpty(message = "产品/明细名称不能为空") private String proName; /** - * 产品类型 0试用 1正式 + * 产品类型 0试用 1正式 3 自定义 */ @NotNull(message = "产品类型不能为空") private Integer proType; + /** + * 产品使用期限限制 1有限制,0 无限制 + */ + private Integer termType; /** * 是否共享 0否 1是 */ @@ -66,10 +70,21 @@ @NotEmpty(message = "是否删除,1删除,0未删除不能为空") private Boolean isDel; /** + * 产品的读片总量 + */ + @NotNull(message = "产品的读片总量") + private Integer orderAilightCount; + /** + * 产品的报告总量 + */ + @NotNull(message = "产品的报告总量") + private Integer orderRecordCount; + /** * 读片量 */ @NotNull(message = "读片量不能为空") private Integer ailightCount; + /** * 报告量 */ diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java new file mode 100644 index 0000000..75b3441 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/model/ScreeningHospitalDataExcel.java @@ -0,0 +1,68 @@ +package com.kidgrow.oprationcenter.model; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; + +/** + * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @Description: <br> + * @Project: <br> + * @CreateDate: Created in 2020/11/20 09:56 <br> + * @Author: <a href="78125310@kidgrow.com">dougang</a> + */ +@Data +public class ScreeningHospitalDataExcel implements Serializable { + + private static final long serialVersionUID = -5886012896705137070L; + + @Excel(name = "机构编码", height = 20, width = 30, isImportField = "true_st") + private String organizationNo; + + @Excel(name = "机构名称", height = 20, width = 30, isImportField = "true_st") + private String organizationName; + + @Excel(name = "儿童ID", height = 20, width = 30, isImportField = "true_st") + private String childId; + + @Excel(name = "儿童名称", height = 20, width = 30, isImportField = "true_st") + private String childName; + + @Excel(name = "性别", replace = { "男_0", "女_1" }, isImportField = "true_st") + private String childSex; + + @Excel(name = "出生日期", isImportField = "true_st", width = 20) + private String childBirthday; + + @Excel(name = "联系方式", height = 20, width = 30, isImportField = "true_st") + private String phoneNum; + + @Excel(name = "年龄", height = 20, width = 30, isImportField = "true_st") + private String age; + + @Excel(name = "身高百分位", height = 20, width = 30, isImportField = "true_st") + private String heightPer; + + @Excel(name = "体重", height = 20, width = 30, isImportField = "true_st") + private String weight; + + @Excel(name = "体重状态", height = 20, width = 30, isImportField = "true_st") + private String fatState; + + @Excel(name = "bmi", height = 20, width = 30, isImportField = "true_st") + private String bmi; + + @Excel(name = "诊断时间", isImportField = "true_st", width = 20) + private String diagnoseTime; + + @Excel(name = "靶身高", height = 20, width = 30, isImportField = "true_st") + private String targetHeight; + + @Excel(name = "预测身高", height = 20, width = 30, isImportField = "true_st") + private String foreastHeight; + + @Excel(name = "预测身高百分位", height = 20, width = 30, isImportField = "true_st") + private String foreastHeightPer; +} diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductOrderDetailVo.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductOrderDetailVo.java index a019c10..b0430f5 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductOrderDetailVo.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-api/src/main/java/com/kidgrow/oprationcenter/vo/ProductOrderDetailVo.java @@ -9,4 +9,8 @@ private Long hospitalId; private String departmentName; private Long departmentId; + /** + * 使用状态 + */ + private String useType; } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/HospitalScreeningMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/HospitalScreeningMapper.java index 1ca7145..9ddb567 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/HospitalScreeningMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/HospitalScreeningMapper.java @@ -10,15 +10,17 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @version 1.0 * @Description: 筛查医院信息表-未完待续<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-01 09:37:05 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> - * @version 1.0 */ public interface HospitalScreeningMapper extends SuperMapper<HospitalScreening> { /** * 分页查询筛查医院信息表-未完待续列表 + * * @param page * @param params * @return @@ -27,6 +29,7 @@ /** * 根据HospitalScreening对象当做查询条件进行查询 + * * @param * @return HospitalScreening对象 */ @@ -34,8 +37,16 @@ /** * 根据医院名称模糊查询医院数据列表 + * * @param hospitalName * @return */ List<HospitalScreening> findByName(@Param("hospitalName") String hospitalName); + + /** + * 查询所有有效医院,放入redis中 + * + * @return + */ + List<HospitalScreening> findAll(); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java index 6408ac2..fba1503 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ProductOrderDetailMapper.java @@ -109,5 +109,5 @@ * @param departmentId * @return */ - List<ProductOrderDetail> departmentProductDetail(Page<ProductOrderDetail> page,@Param("hospitalId") Long hospitalId,@Param("departmentId") Long departmentId); + List<ProductOrderDetail> departmentProductDetail(Page<ProductOrderDetail> page,@Param("hospitalId") Long hospitalId,@Param("departmentId") Long departmentId,@Param("enabled") Boolean enabled); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ScreeningOrganizationInfoMapper.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ScreeningOrganizationInfoMapper.java index 2de1e28..004c801 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ScreeningOrganizationInfoMapper.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/mapper/ScreeningOrganizationInfoMapper.java @@ -31,4 +31,18 @@ * @return OrganizationInfo对象 */ ScreeningOrganizationInfo findByObject(@Param("p") ScreeningOrganizationInfo organizationInfo); + + /** + * 通过医院ID查询机构列表 + * @param id + * @return + */ + List<ScreeningOrganizationInfo> findByHospitalId(@Param("t") Long id); + + /** + * 通过医院名称查询机构 + * @param params + * @return + */ + List<ScreeningOrganizationInfo> findByKeyWord(Page<ScreeningOrganizationInfo> page, @Param("p") Map<String, Object> params); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java index 2dcd39a..dced664 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IHospitalScreeningService.java @@ -4,20 +4,24 @@ import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.ISuperService; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; +import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @version 1.0 * @Description: 筛查医院信息表-未完待续<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-01 09:37:05 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> - * @version 1.0 */ public interface IHospitalScreeningService extends ISuperService<HospitalScreening> { /** * 列表 + * * @param params * @return */ @@ -25,14 +29,16 @@ /** - * 根据HospitalScreening对象当做查询条件进行查询 - * @param hospitalScreening - * @return HospitalScreening对象 - */ + * 根据HospitalScreening对象当做查询条件进行查询 + * + * @param hospitalScreening + * @return HospitalScreening对象 + */ HospitalScreening findByObject(HospitalScreening hospitalScreening); /** * 状态变更 + * * @param params * @return */ @@ -40,10 +46,29 @@ /** * 根据医院名称模糊查询医院数据列表 + * * @param hospitalName * @return */ ResultBody<HospitalScreening> findByName(String hospitalName); + /** + * 导出医院数据 + * + * @param param 参数 + * @return + */ + List<ScreeningHospitalDataExcel> export(Map<String, Object> param); + + /** + * 医院数据放到redis + */ + void tableToRedis(); + + /** + * @param hospitalScreening + */ + void updateRedisById(HospitalScreening hospitalScreening); + } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java index 57353ef..066ea2b 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderDetailService.java @@ -130,7 +130,7 @@ * @param params * @return */ - PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params); + PageResult<ProductOrderDetailVo> departmentProductDetail(Map<String, Object> params); /** * 获取最近即将到期的套餐 * @return @@ -143,5 +143,6 @@ * @return */ int getUserdProduct(Long hospitalId,Long departmentId); + } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java index d3a859d..fbf164c 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IProductOrderRecordService.java @@ -59,5 +59,10 @@ * @return */ PageResult<GroupProductDetail> groupList(Map<String, Object> params); + + /** + * 查看报告 + */ + ResultBody getPdfPathForOperation(String diagnosticId, Integer reportType, Long hospitalId, Long departId); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IScreeningOrganizationInfoService.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IScreeningOrganizationInfoService.java index 64b47fb..3b98928 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IScreeningOrganizationInfoService.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/IScreeningOrganizationInfoService.java @@ -4,6 +4,7 @@ import com.kidgrow.common.service.ISuperService; import com.kidgrow.oprationcenter.model.ScreeningOrganizationInfo; +import java.util.List; import java.util.Map; /** @@ -29,5 +30,19 @@ * @return OrganizationInfo对象 */ ScreeningOrganizationInfo findByObject(ScreeningOrganizationInfo organizationInfo); + + /** + * 通过医院ID查询机构列表 + * @param id + * @return + */ + List<ScreeningOrganizationInfo> findByHospitalId(Long id); + + /** + * 通过医院名称查询机构 + * @param params + * @return + */ + PageResult<ScreeningOrganizationInfo> findByKeyWord(Map<String, Object> params); } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java index 20b935b..6ffcdd0 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ConsumptionRecordServiceImpl.java @@ -663,13 +663,17 @@ private ProductOrderDetail deductionDepartmentProduct(int consumCount, Long hospitalId, Long departmentId) { UserProductDetail userProductDetail = productOrderDetailService.getUserProductDetail(hospitalId, departmentId); //合并集合 - userProductDetail.getProductOrderJoinDetailListShare().addAll(userProductDetail.getProductOrderJoinDetailsListDep()); + userProductDetail.getProductOrderJoinDetailListShare() + .addAll(userProductDetail.getProductOrderJoinDetailsListDep()); List<ProductOrderJoinDetail> productOrderJoinDetailList = userProductDetail.getProductOrderJoinDetailListShare(); if (productOrderJoinDetailList.size() > 0) { //合并后按id排序并筛除已用完的套餐 - List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList.stream().filter(f -> f.getAilightCount() >= consumCount).sorted(Comparator.comparing(ProductOrderJoinDetail::getId)).collect(Collectors.toList()); + List<ProductOrderJoinDetail> productOrderJoinDetailsNewList = productOrderJoinDetailList + .stream().filter(f -> f.getAilightCount() >= consumCount).collect(Collectors.toList()); //要使用的套餐信息 - ProductOrderDetail productOrderDetail = productOrderDetailService.getById(productOrderJoinDetailsNewList.get(0).getId()); + Long firstId=productOrderJoinDetailsNewList.get(0).getId(); + logger.info("扣费要使用的套餐ID是id:【{}】", firstId); + ProductOrderDetail productOrderDetail = productOrderDetailService.getById(firstId); return productOrderDetail; } return null; diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java index 79d5fbe..313eaff 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/HospitalScreeningServiceImpl.java @@ -1,14 +1,19 @@ package com.kidgrow.oprationcenter.service.impl; +import com.alibaba.fastjson.JSONArray; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.oprationcenter.mapper.HospitalScreeningMapper; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; import com.kidgrow.oprationcenter.service.IHospitalScreeningService; +import com.kidgrow.redis.util.RedisUtils; +import com.kidgrow.report.feign.ReportService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.MapUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -16,57 +21,69 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * + * @version 1.0 * @Description: 筛查医院信息表-未完待续<br> * @Project: 用户中心<br> * @CreateDate: Created in 2020-04-01 09:37:05 <br> * @Author: <a href="4345453@kidgrow.com">liuke</a> - * @version 1.0 */ @Slf4j @Service public class HospitalScreeningServiceImpl extends SuperServiceImpl<HospitalScreeningMapper, HospitalScreening> implements IHospitalScreeningService { + + @Autowired + private ReportService reportService; + @Autowired + private RedisUtils redisUtils; + + private static final String CUSOTMERHOSPITAL = "CUSOTMER_HOSPITAL"; + /** * 列表 + * * @param params * @return */ @Override - public PageResult<HospitalScreening> findList(Map<String, Object> params){ + public PageResult<HospitalScreening> findList(Map<String, Object> params) { Page<HospitalScreening> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); - List<HospitalScreening> list = baseMapper.findList(page, params); + List<HospitalScreening> list = baseMapper.findList(page, params); return PageResult.<HospitalScreening>builder().data(list).code(0).count(page.getTotal()).build(); } /** - * 根据HospitalScreening对象当做查询条件进行查询 - * @param hospitalScreening - * @return HospitalScreening - */ + * 根据HospitalScreening对象当做查询条件进行查询 + * + * @param hospitalScreening + * @return HospitalScreening + */ @Override - public HospitalScreening findByObject(HospitalScreening hospitalScreening){ + public HospitalScreening findByObject(HospitalScreening hospitalScreening) { return baseMapper.findByObject(hospitalScreening); } /** * 更新状态:推送装填,启停状态 + * * @param params 包含:1、type:0推送,1启停 - * 2、ID :ID - * 3、val:对用的值 + * 2、ID :ID + * 3、val:对用的值 * @return */ @Override public ResultBody updateEnabled(Map<String, Object> params) { - int type = MapUtils.getInteger(params,"type"); - int val = MapUtils.getInteger(params,"objVal"); - long id = MapUtils.getLong(params,"objId"); + int type = MapUtils.getInteger(params, "type"); + int val = MapUtils.getInteger(params, "objVal"); + long id = MapUtils.getLong(params, "objId"); HospitalScreening hospitalScreening = baseMapper.selectById(id); - if(hospitalScreening == null){ + if (hospitalScreening == null) { return ResultBody.failed("医院数据不存在!"); } - switch (type){ + switch (type) { case 0: hospitalScreening.setIsScreeningPush(val); break; @@ -79,11 +96,14 @@ int count = baseMapper.updateById(hospitalScreening); + updateRedisById(hospitalScreening); + return count > 0 ? ResultBody.ok().msg("更新成功") : ResultBody.failed("更新失败"); } /** * 根据医院名称模糊查询医院数据列表 + * * @param hospitalName * @return */ @@ -91,4 +111,49 @@ public ResultBody<HospitalScreening> findByName(String hospitalName) { return ResultBody.ok().data(baseMapper.findByName(hospitalName)).msg("查询成功"); } + + /** + * 医院数据导出 + * + * @param param 参数 + * @return + */ + @Override + public List<ScreeningHospitalDataExcel> export(Map<String, Object> param) { + List<ScreeningHospitalDataExcel> list = null; + ResultBody resultBody = reportService.exportData(param); + if (resultBody.getCode() == 0 && resultBody.getData() != null) { + list = JSONArray.parseArray(JSONArray.toJSONString(resultBody.getData()), ScreeningHospitalDataExcel.class); + } + return list; + } + + /** + * 初始化,将表中的数据放入redis中 + */ + @Override + public void tableToRedis() { + List<HospitalScreening> list = baseMapper.findAll(); + if (list.size() > 0) { + if (redisUtils.hasKey(CUSOTMERHOSPITAL)) { + redisUtils.del(CUSOTMERHOSPITAL); + } + + for (HospitalScreening hs : list) { + redisUtils.hset(CUSOTMERHOSPITAL, String.valueOf(hs.getId()), hs); + } + } + } + + /** + * 更新redis + * + * @param hospitalScreening + */ + @Override + public void updateRedisById(HospitalScreening hospitalScreening) { + if (redisUtils.hasKey(CUSOTMERHOSPITAL)) { + redisUtils.hset(CUSOTMERHOSPITAL, String.valueOf(hospitalScreening.getId()), hospitalScreening); + } + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java index b58b730..82410ab 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderDetailServiceImpl.java @@ -13,8 +13,10 @@ import com.kidgrow.oprationcenter.model.ConsumptionRecord; import com.kidgrow.oprationcenter.model.ProductOrder; import com.kidgrow.oprationcenter.model.ProductOrderDetail; +import com.kidgrow.oprationcenter.model.SysProduct; import com.kidgrow.oprationcenter.service.IProductOrderDetailService; import com.kidgrow.oprationcenter.service.IProductOrderService; +import com.kidgrow.oprationcenter.service.ISysProductService; import com.kidgrow.oprationcenter.vo.*; import com.kidgrow.redis.util.RedisUtils; import com.kidgrow.usercenter.feign.SysDoctorService; @@ -52,6 +54,8 @@ @Autowired private IProductOrderService iProductOrderService; @Autowired + private ISysProductService productService; + @Autowired private RedisUtils redisUtils; /** * 列表 @@ -62,6 +66,15 @@ public PageResult<ProductOrderDetail> findList(Map<String, Object> params){ Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); List<ProductOrderDetail> list = baseMapper.findList(page, params); + for (ProductOrderDetail productOrderDetail : list) { + if(productOrderDetail.getOrderAilightCount()==null){ + SysProduct byId = productService.getById(productOrderDetail.getProId()); + if(byId!=null){ + productOrderDetail.setOrderAilightCount(byId.getAilightCount()); + productOrderDetail.setOrderRecordCount(byId.getRecordCount()); + } + } + } return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build(); } /** @@ -211,11 +224,33 @@ * @return */ @Override - public PageResult<ProductOrderDetail> departmentProductDetail(Map<String, Object> params) { + public PageResult<ProductOrderDetailVo> departmentProductDetail(Map<String, Object> params) { Page<ProductOrderDetail> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + Boolean enabled = MapUtils.getBoolean(params, "enabled"); List<ProductOrderDetail> list = - baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString())); - return PageResult.<ProductOrderDetail>builder().data(list).code(0).count(page.getTotal()).build(); + baseMapper.departmentProductDetail(page, Long.parseLong(params.get("hospitalId").toString()),Long.parseLong(params.get("departmentId").toString()),enabled); + List<ProductOrderDetailVo> listvo = new ArrayList<>(); + for (ProductOrderDetail productOrderDetail : list) { + ProductOrderDetailVo productOrderDetailVo=new ProductOrderDetailVo(); + BeanCopier beanCopier = BeanCopier.create(ProductOrderDetail.class, ProductOrderDetailVo.class, false); + beanCopier.copy(productOrderDetail,productOrderDetailVo,null); + Date proBegintime = productOrderDetailVo.getProBegintime(); + Date proEndtime = productOrderDetailVo.getProEndtime(); + Date nowDate = new Date(); + if(productOrderDetailVo.getEnabled()){ + if(nowDate.getTime()<proBegintime.getTime()){ + productOrderDetailVo.setUseType("未使用"); + }else if (proBegintime.getTime()<=nowDate.getTime()&&nowDate.getTime()<proEndtime.getTime()){ + productOrderDetailVo.setUseType("使用中"); + }else if(nowDate.getTime()>=proEndtime.getTime()){ + productOrderDetailVo.setUseType("已结束"); + } + }else { + productOrderDetailVo.setUseType("禁用"); + } + listvo.add(productOrderDetailVo); + } + return PageResult.<ProductOrderDetailVo>builder().data(listvo).code(0).count(page.getTotal()).build(); } @Override diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java index 775c24e..3a39e96 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ProductOrderRecordServiceImpl.java @@ -72,6 +72,15 @@ } /** + * 查看报告 + */ + @Override + public ResultBody getPdfPathForOperation(String diagnosticId, Integer reportType, Long hospitalId, Long departId) { + ResultBody pdfPathForOperation = diagnosticService.getPdfPathForOperation(diagnosticId, reportType, hospitalId, departId); + return pdfPathForOperation; + } + + /** * 列表 * * @param params diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ScreeningOrganizationInfoServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ScreeningOrganizationInfoServiceImpl.java index b25b2a9..3538f36 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ScreeningOrganizationInfoServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/ScreeningOrganizationInfoServiceImpl.java @@ -46,4 +46,21 @@ return baseMapper.findByObject(organizationInfo); } + /** + * 根据OrganizationInfo对象当做查询条件进行查询 + * @param id + * @return OrganizationInfo + */ + @Override + public List<ScreeningOrganizationInfo> findByHospitalId(Long id){ + return baseMapper.findByHospitalId(id); + } + + @Override + public PageResult<ScreeningOrganizationInfo> findByKeyWord(Map<String, Object> params) { + Page<ScreeningOrganizationInfo> page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit")); + List<ScreeningOrganizationInfo> list = baseMapper.findByKeyWord(page, params); + return PageResult.<ScreeningOrganizationInfo>builder().data(list).code(0).count(page.getTotal()).build(); + } + } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java index 8ba559b..afa10d7 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/java/com/kidgrow/oprationcenter/service/impl/SysProductServiceImpl.java @@ -60,6 +60,7 @@ */ @Override public PageResult<ProductAllVo> findAllList(Map<String, Object> params, SysUser sysUser){ + params.put("idNotIn",Arrays.asList(CommonConstant.PAY_USER_PRODUCT_ID, CommonConstant.REG_USER_PRODUCT_ID)); List<ProductAllVo> list = baseMapper.findAllList(params); if (list != null) { for (int i = 0; i <list.size() ; i++) { diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/HospitalScreeningMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/HospitalScreeningMapper.xml index a501e7e..efb5878 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/HospitalScreeningMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/HospitalScreeningMapper.xml @@ -12,6 +12,9 @@ <where> <!--查询条件自行添加--> is_del=0 + <if test="p.id != null and p.id !=''"> + and id = #{p.id} + </if> <if test="p.hospitalId != null and p.hospitalId !=''"> and hospital_id = #{p.hospitalId} </if> @@ -63,6 +66,9 @@ <if test="p.homePage != null and p.homePage !=''"> and home_page = #{p.homePage} </if> + <if test="p.keyWord != null and p.keyWord !=''"> + and hospital_name like concat('%', #{p.keyWord}, '%') + </if> </where> </sql> @@ -92,4 +98,11 @@ where is_del=0 and enabled=1 and hospital_name LIKE concat('%',#{hospitalName},'%') order by hospital_name desc,id desc </select> + + <select id="findAll" resultType="com.kidgrow.oprationcenter.model.HospitalScreening"> + select + <include refid="Column_List"/> + from hospital_screening + where is_del=0 + </select> </mapper> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml index c419e42..d70c2e3 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ProductOrderDetailMapper.xml @@ -170,8 +170,9 @@ <include refid="whereforall"/> order by DE.pro_endtime ASC, + DE.ailight_count ASC, DE.pro_begintime ASC, - DE.id asc + DE.id ASC </select> <select id="getEnabledCount" resultType="int" parameterType="long"> @@ -260,7 +261,9 @@ WHERE order_id IN ( SELECT id FROM product_order WHERE hospital_id = #{hospitalId} AND department_id = #{departmentId} AND is_del = 0 AND enabled = 1 ) AND is_del = 0 - AND enabled = 1 + <if test="enabled!=null"> + and enabled=#{enabled} + </if> ORDER BY id DESC </select> <select id="getUserdProduct" resultType="int"> diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ScreeningOrganizationInfoMapper.xml b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ScreeningOrganizationInfoMapper.xml index 2bf20e9..b7901ce 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ScreeningOrganizationInfoMapper.xml +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-biz/src/main/resources/mapper/ScreeningOrganizationInfoMapper.xml @@ -98,4 +98,23 @@ <include refid="where"/> order by id desc </select> + + <select id="findByHospitalId" resultType="com.kidgrow.oprationcenter.model.ScreeningOrganizationInfo" parameterType="java.lang.Long"> + select + <include refid="Column_List"/> + from screening_organization_info + where source_hospital_id=#{t} + </select> + + <select id="findByKeyWord" resultType="com.kidgrow.oprationcenter.model.ScreeningOrganizationInfo" parameterType="java.util.Map" > + SELECT + * + FROM + screening_organization_info + WHERE + source_hospital_id=${p.id} + <if test="p.keyword != null and p.keyword != ''"> + and organization_name LIKE '%${p.keyword}%' + </if> + </select> </mapper> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/RedisStartupRunner.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/RedisStartupRunner.java new file mode 100644 index 0000000..c849ba8 --- /dev/null +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/config/RedisStartupRunner.java @@ -0,0 +1,19 @@ +package com.kidgrow.oprationcenter.config; + +import com.kidgrow.oprationcenter.service.IHospitalScreeningService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.CommandLineRunner; +import org.springframework.core.annotation.Order; +import org.springframework.stereotype.Component; + +@Component //作为bean加入spring +@Order(value = 2)//多个启动任务的执行顺序 +public class RedisStartupRunner implements CommandLineRunner { + @Autowired + IHospitalScreeningService hospitalScreeningService; + + @Override + public void run(String... args) throws Exception { + hospitalScreeningService.tableToRedis(); + } +} \ No newline at end of file diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java index 79aa3f8..d0918cd 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/HospitalScreeningController.java @@ -3,19 +3,24 @@ import com.kidgrow.common.controller.BaseController; import com.kidgrow.common.model.PageResult; import com.kidgrow.common.model.ResultBody; +import com.kidgrow.common.utils.ExcelUtil; import com.kidgrow.oprationcenter.model.HospitalScreening; +import com.kidgrow.oprationcenter.model.ScreeningHospitalDataExcel; import com.kidgrow.oprationcenter.service.IHospitalScreeningService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.MapUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.BindingResult; import org.springframework.validation.ObjectError; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -23,6 +28,7 @@ /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020<br> + * * @Description: 筛查医院信息表-未完待续 * @Project: 运营中心 * @CreateDate: Created in 2020-04-02 18:25:34 <br> @@ -33,7 +39,7 @@ @RestController @RequestMapping("/hospitalscreening") @Api(tags = "筛查医院信息表-未完待续") -public class HospitalScreeningController extends BaseController{ +public class HospitalScreeningController extends BaseController { @Autowired private IHospitalScreeningService hospitalScreeningService; @@ -46,10 +52,10 @@ @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") }) @GetMapping - public PageResult<HospitalScreening> list(@RequestParam Map<String, Object> params) { - if(params.size()==0){ - params.put("page",1); - params.put("limit",10); + public PageResult<HospitalScreening> list(@RequestParam Map<String, Object> params) { + if (params.size() == 0) { + params.put("page", 1); + params.put("limit", 10); } return hospitalScreeningService.findList(params); } @@ -80,26 +86,28 @@ @ApiOperation(value = "保存") @PostMapping public ResultBody save(@Valid @RequestBody HospitalScreening hospitalScreening, BindingResult bindingResult) { - List<String> errMsg= new ArrayList<>(); + List<String> errMsg = new ArrayList<>(); if (bindingResult.hasErrors()) { for (ObjectError error : bindingResult.getAllErrors()) { errMsg.add(error.getDefaultMessage()); } return ResultBody.failed().msg(errMsg.toString()); - } else { - if(hospitalScreening.getId() == null){ + } else { + if (hospitalScreening.getId() == null) { HospitalScreening hs = new HospitalScreening(); hs.setHospitalId(hospitalScreening.getHospitalId()); HospitalScreening byObject = hospitalScreeningService.findByObject(hs); - if(byObject != null){ + if (byObject != null) { return ResultBody.failed().msg("该医院已添加"); } } - boolean v= hospitalScreeningService.saveOrUpdate(hospitalScreening); - if(v) { + boolean v = hospitalScreeningService.saveOrUpdate(hospitalScreening); + //更新redis + hospitalScreeningService.updateRedisById(hospitalScreening); + + if (v) { return ResultBody.ok().data(hospitalScreening).msg("保存成功"); - } - else { + } else { return ResultBody.failed().msg("保存失败"); } } @@ -111,11 +119,10 @@ @ApiOperation(value = "删除") @DeleteMapping("/{id}") public ResultBody delete(@PathVariable Long id) { - boolean v= hospitalScreeningService.removeById(id); - if(v) { + boolean v = hospitalScreeningService.removeById(id); + if (v) { return ResultBody.ok().msg("删除成功"); - } - else { + } else { return ResultBody.failed().msg("删除失败"); } } @@ -147,4 +154,15 @@ return ResultBody.ok().data(null).msg(""); } } + + @ApiOperation(value = "导出") + @PostMapping("/export") + public void export(@RequestParam Map<String, Object> params, HttpServletResponse response) throws IOException { + List<ScreeningHospitalDataExcel> list = hospitalScreeningService.export(params); + //导出操作 + if (list != null && list.size() > 0) { + String name = MapUtils.getString(params, "hospitalName"); + ExcelUtil.exportExcel(list, null, name, ScreeningHospitalDataExcel.class, name, response); + } + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java index ba6faad..b1996c0 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderController.java @@ -103,7 +103,7 @@ productOrder.setCreateUserOrgCode(organizations.get(organizations.size()-1).getOrgCode()); } //默认添加的合同视为无效合同,在充值完成后,会将对应合同启用 - productOrder.setIsDel(true); +// productOrder.setIsDel(true); boolean v = productOrderService.saveOrUpdate(productOrder); if (v) { return ResultBody.ok().data(productOrder).msg("保存成功"); diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java index f02a54b..e6311d1 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderDetailController.java @@ -4,6 +4,7 @@ import com.kidgrow.common.constant.CommonConstant; import com.kidgrow.common.controller.BaseController; import com.kidgrow.common.model.*; +import com.kidgrow.common.utils.DateUtils; import com.kidgrow.oprationcenter.model.HospitalInfo; import com.kidgrow.oprationcenter.model.ProductOrder; import com.kidgrow.oprationcenter.model.ProductOrderDetail; @@ -30,9 +31,7 @@ import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; -import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.*; /** @@ -440,4 +439,28 @@ List<OrderChartVo> orderChartVo=productOrderDetailService.proCountChart(); return ResultBody.ok().data(orderChartVo).msg("数据获取成功!") ; } + + /** + * 获取软件服务周期 和 读片总量 + * + */ + @ApiOperation(value = "获取软件服务周期") + @GetMapping("/getContractBeginEndTimeAndNum") + public ResultBody getContractBeginEndTimeAndNum(@RequestParam("departmentId") Long departmentId) { + Map<String,Object> map = new HashMap<>(); + map.put("department_id",departmentId); + map.put("enabled",true); + map.put("is_del",false); + List<ProductOrder> productOrders = productOrderService.listByMap(map); + map = new HashMap<>(); + if(productOrders!=null&&productOrders.size()>0){ + IntSummaryStatistics intSummaryStatistics = productOrders.stream().filter(a-> a.getContractNum()!=null&&a.getEnabled()).mapToInt((x) -> x.getContractNum()).summaryStatistics(); + Date minDate = productOrders.stream().filter(a->a.getEnabled()).map(e -> e.getContractBeginTime()).min((e1, e2) -> e1.compareTo(e2)).get(); + Date manDate = productOrders.stream().filter(a->a.getEnabled()).map(e -> e.getContractEndTime()).max((e1, e2) -> e1.compareTo(e2)).get(); + map.put("count", intSummaryStatistics.getSum()); + map.put("beginTime",DateUtils.formatDate(minDate,"yyyy-MM-dd HH:mm:ss")); + map.put("endTime",DateUtils.formatDate(manDate,"yyyy-MM-dd HH:mm:ss")); + } + return ResultBody.ok().data(map); + } } diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderRecordController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderRecordController.java index fedef3d..26c9d2f 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderRecordController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ProductOrderRecordController.java @@ -113,6 +113,17 @@ return PageResult.<ProductOrderJoinDetail>builder().data(null).code(0).count(0L).build(); return productOrderRecordService.findAllDataList(params); } + /** + * 查看报告 + */ + @ApiOperation(value = "查看报告") + @PostMapping("/pdfname/{diagnosticId}/{reportType}/{hospitalId}/{departId}") + public ResultBody getPdfPathForOperation(@PathVariable("diagnosticId") String diagnosticId,@PathVariable("reportType") Integer reportType,@PathVariable("hospitalId") Long hospitalId,@PathVariable("departId") Long departId) { + if (StringUtils.isBlank(diagnosticId)) { + return ResultBody.failed("请输入diagnosticId"); + } + return productOrderRecordService.getPdfPathForOperation(diagnosticId,reportType,hospitalId,departId); + } /** * 列表 diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java index 0a12b38..9169434 100644 --- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java +++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java @@ -266,4 +266,34 @@ e.printStackTrace(); } } + + /** + * 通过医院ID查询机构列表 + */ + @ApiOperation(value = "通过医院ID查询机构列表") + @PostMapping("/getOrganizationListByHospitalId") + public ResultBody getOrganizationListByHospitalId(@RequestBody String id) { + List<ScreeningOrganizationInfo> byHospitalId = organizationInfoService.findByHospitalId(Long.valueOf(id)); + if(byHospitalId != null && byHospitalId.size() > 0){ + return ResultBody.ok().data(byHospitalId).msg("查询成功"); + } + return ResultBody.failed().msg("查询失败"); + } + + /** + * 关键字查询列表 + */ + @ApiOperation(value = "关键字查询列表") + @ApiImplicitParams({ + @ApiImplicitParam(name = "page", value = "分页起始位置", required = true, dataType = "Integer"), + @ApiImplicitParam(name = "limit", value = "分页结束位置", required = true, dataType = "Integer") + }) + @PostMapping(value = "/listByKeyWord") + public PageResult<ScreeningOrganizationInfo> listByKeyWord(@RequestParam Map<String, Object> params) { + if (params.size() == 0) { + params.put("page", 1); + params.put("limit", 10); + } + return organizationInfoService.findByKeyWord(params); + } } diff --git a/kidgrow-business/kidgrow-opration-center/pom.xml b/kidgrow-business/kidgrow-opration-center/pom.xml index 9fb3c1b..adc2dc1 100644 --- a/kidgrow-business/kidgrow-opration-center/pom.xml +++ b/kidgrow-business/kidgrow-opration-center/pom.xml @@ -52,5 +52,10 @@ <artifactId>kidgrow-usercenter-api</artifactId> <version>1.0</version> </dependency> + <dependency> + <groupId>com.kidgrow</groupId> + <artifactId>kidgrow-report-center-api</artifactId> + <version>1.0</version> + </dependency> </dependencies> </project> \ No newline at end of file diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java index ce17542..b4a11b6 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-api/src/main/java/com/kidgrow/usercenter/vo/HospitalListVo.java @@ -110,4 +110,8 @@ * 是否删除,1删除,0未删除 */ private Boolean isDel; + /** + * 是否试用,true正式,false试用 + */ + private Boolean OrderType; } diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java index f5a92fc..ce57544 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysDoctorServiceImpl.java @@ -190,17 +190,16 @@ return ResultBody.failed("选择一个角色"); } } - - /** - * 限制只有创建医生的个数 - * - */ - if (sysUserServiceImpl.departmetAccountsCount(sysDoctor.getDepartmentId()) <= 0) { - return ResultBody.failed("该部门创建人数已经达到上限"); - } SysHospital sysHospital = sysHospitalMapper.selectById(sysDoctor.getHospitalId()); SysDepartment sysDepartment = sysDepartmentMapper.selectById(sysDoctor.getDepartmentId()); if (sysDoctor.getId() == null) { + /** + * 限制只有创建医生的个数 + * + */ + if (sysUserServiceImpl.departmetAccountsCount(sysDoctor.getDepartmentId()) <= 0) { + return ResultBody.failed("该部门创建人数已经达到上限"); + } Long sysUserId = null; //保存部门信息 ResultBody resultBody = this.saveFenjiekou(sysDoctor, id, sysHospital, sysDepartment, null); diff --git a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java index 799c9b4..7cf6c17 100644 --- a/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java +++ b/kidgrow-business/kidgrow-usercenter/kidgrow-usercenter-biz/src/main/java/com/kidgrow/usercenter/service/impl/SysHospitalServiceImpl.java @@ -7,6 +7,8 @@ import com.kidgrow.common.model.SysUser; import com.kidgrow.common.service.impl.SuperServiceImpl; import com.kidgrow.common.utils.StringUtils; +import com.kidgrow.oprationcenter.feign.ProductOrderService; +import com.kidgrow.oprationcenter.model.ProductOrder; import com.kidgrow.usercenter.mapper.SysDepartmentMapper; import com.kidgrow.usercenter.mapper.SysHospitalMapper; import com.kidgrow.usercenter.mapper.SysOrganizationMapper; @@ -42,6 +44,8 @@ private SysRoleOrganizationServiceImpl SysRoleOrganizationServiceImpl; @Autowired private SysOrganizationMapper sysOrganizationMapper; + @Autowired + private ProductOrderService productOrderService; /** * 列表 * @param params @@ -67,6 +71,15 @@ return PageResult.<HospitalListVo>builder().data(null).code(0).count(page.getTotal()).build(); } List<HospitalListVo> list = baseMapper.findHospitalList(page, params); + for (HospitalListVo hospitalListVo : list) { + ProductOrder productOrder = new ProductOrder(); + productOrder.setHospitalId(hospitalListVo.getHospitalId()); + productOrder.setDepartmentId(hospitalListVo.getDepartmentId()); + ResultBody status = productOrderService.getStatus(productOrder); + if (status.getCode()==0) { + hospitalListVo.setOrderType(status.getData() instanceof Boolean ? ((Boolean) status.getData()) : null); + } + } return PageResult.<HospitalListVo>builder().data(list).code(0).count(page.getTotal()).build(); } diff --git a/kidgrow-config/src/main/resources/application-dev.properties b/kidgrow-config/src/main/resources/application-dev.properties index 3cc4fbb..bb73239 100644 --- a/kidgrow-config/src/main/resources/application-dev.properties +++ b/kidgrow-config/src/main/resources/application-dev.properties @@ -50,9 +50,9 @@ ####\u963F\u91CCOSS\u914D\u7F6E kidgrow.oss.access-key=LTAI4FennfcwZupz3B6hkK3N kidgrow.oss.accessKeySecret=NzBBGe8SS41qJlp0nA3tlJ3t74lBZM -kidgrow.oss.endpoint=123.kidgrow.cloud +kidgrow.oss.endpoint=open.oss.kidgrow.cloud kidgrow.oss.bucketName=kidgrow -kidgrow.oss.domain=http://123.kidgrow.cloud/ +kidgrow.oss.domain=https://open.oss.kidgrow.cloud/ ##### \u65E5\u5FD7\u94FE\u8DEF\u8FFD\u8E2A kidgrow.trace.enable=true diff --git a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml index 14cb753..a6da7f1 100644 --- a/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml +++ b/kidgrow-springcloud/kidgrow-springcloud-zuul/src/main/resources/application.yml @@ -226,6 +226,7 @@ - /api-evaluation/evaluationxrayinfo/appUpload - /api-evaluation/evaluationxrayinfo/appSave - /api-file/baseUplaod + - /api-file/feignUploadHosIdAndDepId - /api-user/users/python - /api-evaluation/evaluationxrayinfo/checkQRCode - /api-opration/wxController/callback @@ -262,6 +263,7 @@ /api-file/smsChangLan/send, /api-user/users/doctorUserReg, /api-file/files-upload, + /api-file/feignUploadHosIdAndDepId, /api-user/users/isRegUser, /api-user/users/passwordByPhone, /api-evaluation/evaluationxrayinfo/appUpload, diff --git a/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/config/AuthorizationServerConfig.java b/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/config/AuthorizationServerConfig.java index 84121f2..70df892 100644 --- a/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/config/AuthorizationServerConfig.java +++ b/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/config/AuthorizationServerConfig.java @@ -3,10 +3,10 @@ import com.kidgrow.oauth2.handler.SingleTokenServices; import com.kidgrow.oauth2.service.impl.RedisClientDetailsService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Lazy; import org.springframework.context.annotation.Primary; import org.springframework.security.authentication.AuthenticationManager; import org.springframework.security.authentication.AuthenticationProvider; @@ -80,8 +80,8 @@ private RandomValueAuthorizationCodeServices authorizationCodeServices; @Autowired private AuthenticationProvider daoAuhthenticationOauthProvider; - @Autowired - private SingleTokenServices tokenServices; +// @Autowired +// private SingleTokenServices tokenServices; /** @@ -107,7 +107,7 @@ @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { String token = (String) authentication.getPrincipal(); - OAuth2Authentication auth = tokenServices.loadAuthentication(token); + OAuth2Authentication auth = KidgrowTokenServices().loadAuthentication(token); if (auth == null) { throw new InvalidTokenException("Invalid token: " + token); } @@ -134,6 +134,7 @@ @Bean @Primary + @Lazy public SingleTokenServices KidgrowTokenServices(){ SingleTokenServices tokenServices = new SingleTokenServices(); tokenServices.setTokenStore(tokenStore); diff --git a/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/controller/OAuth2Controller.java b/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/controller/OAuth2Controller.java index 9478d1a..9f796c2 100644 --- a/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/controller/OAuth2Controller.java +++ b/kidgrow-uaa/kidgrow-uaa-server/src/main/java/com/kidgrow/oauth2/controller/OAuth2Controller.java @@ -67,7 +67,8 @@ //先解密 String decryptName = AesUtils.desEncrypt(username).trim(); String decryptPwd = AesUtils.desEncrypt(password).trim(); - + log.error("user+++++++++"+decryptName+"+++++++++++"); + log.error("password+++++++++"+decryptPwd+"+++++++++++"); UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(decryptName, decryptPwd); writerToken(request, response, token, "用户名或密码错误"); } @@ -120,6 +121,7 @@ oAuth2Authentication.setAuthenticated(true); ResponseUtil.responseSucceed(objectMapper, response, oAuth2AccessToken); } catch (BadCredentialsException | InternalAuthenticationServiceException e) { + e.printStackTrace(); exceptionHandler(response, badCredenbtialsMsg); } catch (Exception e) { exceptionHandler(response, e); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js index e1908dc..8c93db6 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/assets/js/common.js @@ -297,7 +297,7 @@ layer.msg('登录过期', {icon: 2, time: 1500}, function () { location.replace('/login.html'); }, 5000); - }else if(msg.includes("Invalid access token")){ + }else if(res.msg.includes("Invalid access token")){ layer.msg('您的账号在其他地方登陆,请重新登录或修改密码', {icon: 2, time: 1500}, function () { location.replace('/login.html'); }, 5000); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/admin.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/admin.js index f26bf3e..66bc9a0 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/admin.js +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/admin.js @@ -128,8 +128,6 @@ if (jsonRs) { if (jsonRs.code == 401) { config.removeToken(); - // var json=JSON.stringify(jsonRs) - // console.log(json,"jsonjsonjsonjsonjsonjsonjson") var msg=jsonRs.msg; if(msg.includes("Access token expired")){ layer.msg('登录过期', {icon: 2, time: 1500}, function () { diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js index 6da8e9d..dbb5291 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/module/apiUrl.js @@ -1,6 +1,6 @@ var my_api_server_url = 'http://127.0.0.1:8888/'; // var my_api_server_url = 'http://192.168.2.240:8888/'; -//var my_api_server_url = 'http://open.zuul.kidgrow.cloud/'; +// var my_api_server_url = 'http://open.zuul.kidgrow.cloud/'; // var my_api_server_url = 'zuul.kidgrow.cloud/'; //var my_api_server_url = 'https://zuul.kidgrow.cloud/'; diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html new file mode 100644 index 0000000..8cd7f50 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/exportScreeningHospital.html @@ -0,0 +1,108 @@ +<form id="app-form-add" lay-filter="app-form-add" class="layui-form model-form"> + <div style="display:flex"> + <div class="layui-form-item"> + <div class="layui-inline"> + <label class="layui-form-label" style="width: 75px;">时间范围</label> + <div class="layui-input-block" style="width: 500px;"> + <input type="text" class="layui-input search-input" id="beginTime" autocomplete="off" placeholder="开始时间"> 至 + <input type="text" class="layui-input search-input" id="endTime" autocomplete="off" placeholder="结束时间">   + </div> + <input type="hidden" id="hospitalIds"/> + <input type="hidden" id="hospitalNames"/> + </div> + </div> + </div> + + <div class="layui-form-item model-form-footer"> + <button class="layui-btn" id="export" type="button">导出 + </button> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + </div> +</form> + +<script> + layui.use(['form', 'laydate', 'util', 'config', 'admin'], function () { + var form = layui.form; + var config = layui.config; + var $ = layui.jquery; + var admin = layui.admin; + var laydate = layui.laydate; + + form.render(); + + //执行一个laydate实例 + laydate.render({ + elem: '#beginTime' //指定元素 + }); + laydate.render({ + elem: '#endTime' //指定元素 + }); + + $('#export').click(function () { + var startTime = $('#beginTime').val(); + var endTime = $('#endTime').val(); + if (startTime != null && endTime != null) { + var flag = compareDate(startTime, endTime); + if (!flag) { + layer.msg('结束时间不得小于开始时间'); + return; + } + } + var url = config.base_server + 'api-opration/hospitalscreening/export'; + var xhr = new XMLHttpRequest(); + xhr.open('POST', url, true); + xhr.responseType = "blob"; + var form = new FormData(); + // Add selected file to form + form.append("hospitalId", $("#hospitalIds").val()); + form.append('hospitalName', $("#hospitalName").val()); + form.append('beginTime', $("#beginTime").val()); + form.append('endTime', endTime); + form.append('hospitalName', $("#hospitalNames").val()); + + xhr.setRequestHeader("client_type", "DESKTOP_WEB"); + xhr.setRequestHeader("Authorization", "Bearer " + config.getToken().access_token); + xhr.onload = function () { + if (this.status == 200) { + var fileName = $("#hospitalNames").val() + ".xlsx"; + var blob = this.response; + var a = document.createElement('a'); + a.innerHTML = fileName; + // 指定生成的文件名 + a.download = fileName; + a.href = URL.createObjectURL(blob); + document.body.appendChild(a); + var evt = document.createEvent("MouseEvents"); + evt.initEvent("click", false, false); + a.dispatchEvent(evt); + document.body.removeChild(a); + } + } + xhr.send(form); + }); + + var hospital = admin.getTempData('t_hospital'); + if(hospital){ + $("#hospitalIds").val(hospital.hospitalId) + $("#hospitalNames").val(hospital.hospitalName); + } + form.render(); + + //比较日期大小 + function compareDate(logintime, logouttime) { + var arys1 = new Array(); + var arys2 = new Array(); + if (logintime != null && logouttime != null) { + arys1 = logintime.split('-'); + var logindate = new Date(arys1[0], parseInt(arys1[1] - 1), arys1[2]); + arys2 = logouttime.split('-'); + var logoutdate = new Date(arys2[0], parseInt(arys2[1] - 1), arys2[2]); + if (logindate > logoutdate) { + return false; + } else { + return true; + } + } + } + }); +</script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html index 282f27f..174dd22 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital.html @@ -43,6 +43,9 @@ <button class="layui-btn layui-btn-xs" lay-event="downLoad"> 下载二维码 </button> + <button class="layui-btn layui-btn-xs" lay-event="export"> + 导出 + </button> </script> <script type="text/html" id="hospital-push-state"> @@ -91,9 +94,9 @@ page: true, cols: [ [{ - field: 'hospitalId', - width: "150", - title: '医院ID', + field: 'id', + width: "200", + title: '筛查医院ID', fixed: 'left' }, { field: 'hospitalName', @@ -229,6 +232,8 @@ downLoad(data.hospitalQrImage); } else if (layEvent === 'edit') { showEditModel_add("编辑", data); + }else if(layEvent === 'export'){ + showEditModel_import("导出",data); } }); @@ -236,5 +241,17 @@ window.open(url); } + var showEditModel_import = function (title, data) { + admin.putTempData('t_hospital', data); + admin.popupCenter({ + title: title, + path: 'pages/keaigao/exportScreeningHospital.html', + area: '500px', + offset: '0px', + finish: function () { + } + }); + }; + }); </script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital_form.html index 591f5f0..f1df902 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital_form.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/keaigao/screeningHospital_form.html @@ -133,12 +133,13 @@ //上传二维码 upload.render({ elem: '#qr', - url: config.base_server + 'api-file/files-anon', + url: config.base_server + 'api-file/files-upload', accept: 'file', auto: true, headers: { "Authorization": "Bearer " + config.getToken().access_token }, + data:{"imgType":"customerhospital"}, before: function (obj) { layer.load(); //上传loading //预读本地文件示例,不支持ie8 @@ -160,12 +161,13 @@ //微站首页图片 upload.render({ elem: '#phonto', - url: config.base_server + 'api-file/files-anon', + url: config.base_server + 'api-file/files-upload', accept: 'file', auto: true, headers: { "Authorization": "Bearer " + config.getToken().access_token }, + data:{"imgType":"customerhospital"}, before: function (obj) { layer.load(); //上传loading //预读本地文件示例,不支持ie8 diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html index ecba5e1..7a650b2 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/contract.html @@ -10,18 +10,23 @@ <div class="layui-form toolbar"> <div class="layui-form-item"> <div class="layui-inline" style="margin-bottom: -25px;">  - <input id="hospital-search-value" class="layui-input search-input" type="text" placeholder="按医院名" autocomplete="off" width="400px" /></div>  - <button id="contract-btn-search" class="layui-btn icon-btn permissions" permissions="contract-list" style="margin-bottom: -25px;"><i class="layui-icon"></i>搜索</button> + <input id="hospital-search-value" class="layui-input search-input" type="text" placeholder="按医院名" + autocomplete="off" width="400px" /></div>  + <button id="contract-btn-search" class="layui-btn icon-btn permissions" permissions="contract-list" + style="margin-bottom: -25px;"><i class="layui-icon"></i>搜索</button> + </div> + <table class="layui-table" id="contract-table" lay-filter="contract-table"></table> </div> - <table class="layui-table" id="contract-table" lay-filter="contract-table"></table> - </div></div> </div> +</div> </div> <input id="hospitalId" type="hidden" /> <!-- 表格操作列 --> <script type="text/html" id="contract-table-bar"> - <a class="layui-btn layui-btn-danger layui-btn-xs permissions" permissions="contract-del" lay-event="del">删除</a> - <a class="layui-btn layui-btn-primary layui-btn-xs permissions" permissions="productorderdetail-save" lay-event="detail">查看套餐</a> + <!-- <a class="layui-btn layui-btn-danger layui-btn-xs permissions" permissions="contract-del" lay-event="del">删除</a> --> +<a class="layui-btn layui-btn-xs permissions" permissions="contract-edit" lay-event="edit">修改</a> + <a class=" layui-btn layui-btn-primary layui-btn-xs permissions" permissions="productorderdetail-save" + lay-event="detail">查看套餐</a> </script> <!-- 表格状态列 --> <script type="text/html" id="contract-tpl-state"> @@ -68,26 +73,37 @@ { field: 'departmentName', width: 200, title: '科室名称' }, { field: 'contractNo', width: 150, title: '合同编号' }, { field: 'contractTitle', width: 200, title: '合同名' }, - { field: 'contractBeginTime', width: 120, title: '合同生效时间',templet:function(d) { - return new Date(d.contractBeginTime).dateFormat("yyyy/MM/dd"); - } + field: 'contractBeginTime', width: 120, title: '合同生效时间', templet: function (d) { + return new Date(d.contractBeginTime).dateFormat("yyyy/MM/dd"); + } }, - { field: 'contractEndTime', width: 120, title: '合同到期时间',templet:function(d){ - return new Date(d.contractEndTime).dateFormat("yyyy/MM/dd"); - } }, - { field: 'contractTime', width: 120, title: '合同签订时间',templet:function(d){ - return new Date(d.contractTime).dateFormat("yyyy/MM/dd"); - } }, + { + field: 'contractEndTime', width: 120, title: '合同到期时间', templet: function (d) { + return new Date(d.contractEndTime).dateFormat("yyyy/MM/dd"); + } + }, + { + field: 'contractTime', width: 120, title: '合同签订时间', templet: function (d) { + if(d.contractTime==null){ + return new Date(d.createTime).dateFormat("yyyy/MM/dd"); + } + return new Date(d.contractTime).dateFormat("yyyy/MM/dd"); + } + }, // { field: 'enabled', width: 120, templet: '#contract-tpl-state', sort: true, title: '状态' }, - { field: 'createTime', width: 160, title: '创建时间' , templet: function (d) { - return new Date(d.createTime).dateFormat("yyyy-MM-dd hh:mm"); - }}, - { align: 'center', width: 150, toolbar: '#contract-table-bar', title: '操作', - fixed: 'right'} + { + field: 'createTime', width: 160, title: '创建时间', templet: function (d) { + return new Date(d.createTime).dateFormat("yyyy-MM-dd hh:mm"); + } + }, + { + align: 'center', width: 150, toolbar: '#contract-table-bar', title: '操作', + fixed: 'right' + } ]], - done:function(res){ - permissionsInput(res,config); + done: function (res) { + permissionsInput(res, config); } }); } @@ -107,66 +123,90 @@ }, 'DELETE'); }); } - else - { - showModel(obj.data.id); + else if (obj.event === 'edit') { + //修改 + updateModel(obj.data); + } else if (obj.event === 'detail') { + //充值记录列表 + showModel(obj.data); } }); // 搜索按钮点击事件 $('#contract-btn-search').click(function () { var hospitalName = $('#hospital-search-value').val(); - if(strUtil.isEmpty(hospitalName)) - { + if (strUtil.isEmpty(hospitalName)) { $("#hospitalId").val(""); } - table.reload('contract-table', { - where: { hospitalId: $("#hospitalId").val()}, + table.reload('contract-table', { + where: { hospitalId: $("#hospitalId").val() }, page: { - curr: 1 - } }); + curr: 1 + } + }); }); - var showModel=function(orderId){ - layer.open({ - type:1, - title:'查看产品', - area: '1200px', - offset: '100px', - content: $('#contract-model').html(), - success:function(){ - table.render({ - elem: '#contract-table-detail', - url: config.base_server + 'api-opration/productorderrecord', - method: 'GET', - where:{'orderId':orderId}, - headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, - page: true, - limit:10, - limits:[5,10], - cols: [[ - { field: 'proName', width: 300, title: '产品名称' }, - { field: 'ailightCount', width: 150, title: '读片量' }, - { field: 'recordCount', width: 100, title: '报告量' }, - { field: 'isShare', width: 150, title: '是否共享',templet:function(d) - { - if(d.isShare) - return '共享' - else - return '私有' - } - }, - { field: 'proBegintime', width: 150, title: '开始时间',templet:function(d){ - return new Date(d.proBegintime).dateFormat("yyyy/MM/dd"); - } }, - { field: 'proEndtime', width: 180, title: '结束时间',templet:function(d){ - return new Date(d.proEndtime).dateFormat("yyyy/MM/dd"); - } }, - { field: 'createTime', width: 160, sort: true, title: '创建时间' } - ]] + var showModel = function (data) { + layer.open({ + type: 1, + title: '查看产品', + area: '1200px', + offset: '100px', + content: $('#contract-model').html(), + success: function () { + table.render({ + elem: '#contract-table-detail', + url: config.base_server + 'api-opration/productorderdetail/all', + method: 'GET', + where: { orderId: data.id,enabled: 1}, + headers: { 'Authorization': 'Bearer ' + config.getToken().access_token }, + page: true, + limit: 10, + limits: [5, 10], + cols: [[ + { field: 'proName', width: 300, title: '产品名称' }, + { field: 'ailightCount', width: 150, title: '读片量' }, + { field: 'ailightCount', width: 150, title: '读片使用量' ,templet: function (d) { + return d.orderAilightCount-d.ailightCount; + } + }, + { field: 'recordCount', width: 100, title: '报告量' }, + { + field: 'isShare', width: 150, title: '是否共享', templet: function (d) { + if (d.isShare) + return '共享' + else + return '私有' + } + }, + { + field: 'proBegintime', width: 150, title: '开始时间', templet: function (d) { + return new Date(d.proBegintime).dateFormat("yyyy/MM/dd"); + } + }, + { + field: 'proEndtime', width: 180, title: '结束时间', templet: function (d) { + return new Date(d.proEndtime).dateFormat("yyyy/MM/dd"); + } + }, + { field: 'createTime', width: 160, sort: true, title: '创建时间' } + ]] + }); + } }); - } - }); + } + var updateModel = function (data) { + //修改充值记录 + admin.putTempData("t_hospital", data); + admin.popupCenter({ + title: '修改合同', + path: 'pages/opration/rechargeupdate.html', + area: '1200px', + offset: '0px', + finish: function () { + $('#hospita-btn-search').click(); + } + }); } }); </script> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html index dc6173c..789a050 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/diagnosisRecord.html @@ -131,24 +131,31 @@ endTime: dateend }; table.reload('diagnostic-table', { where: whereData,page: {curr: 1 }}); + }else{ + layer.msg('请输入医院'); + return false; } }); + //获取软件的服务周期 + var getCycleTime = function (departmentId) { + + } // 工具条点击事件 table.on('tool(diagnostic-table)', function (obj) { var data = obj.data; var layEvent = obj.event; if (layEvent === "select") { - //查看报告 报告列数据缓存起来 - admin.putTempData("t_diagnosis", data); - admin.popupCenter({ - title: '查看报告', - path: 'pages/opration/recordNote.html', - area: '1200px', - offset: '10px', - finish: function () { - admin.putTempData("t_diagnosis", ""); + admin.req('api-opration/productorderrecord/pdfname/'+data.diagnosticId+"/0/"+data.diagnosticHospitalId+"/"+data.diagnosticDepartId, {}, + function (data) { + if (data.code == 0) { + //打开新的窗口 + window.open(data.data) + }else{ + layer.msg("查询报告失败") } - }); + + }, "post") + admin.re } }); }); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html index e02b7a9..96ee3fa 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/doctor_form.html @@ -289,7 +289,6 @@ // 表单提交事件 form.on('submit(user-form-submit)', function (data) { - debugger data.field.hospitalId = $("#hospitalId").val(); if (data.field.roleId != null && data.field.roleId != "") { data.field.roles = data.field.roleId.split(','); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/equipmentDocking.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/equipmentDocking.html index 12c196e..c803a5b 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/equipmentDocking.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/equipmentDocking.html @@ -315,7 +315,6 @@ $('#sure').hide(); } form.val('app-form', data); - console.log(data,"1111111111111") //重新装载科室 getdepartment(data.hospitalId); form.render(); diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html index 9e6699a..aa1b656 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/hospital.html @@ -114,11 +114,14 @@ width: "8%", title: '联系方式' }, - // { - // field: 'enabled', width: 80, title: '状态', templet: function (d) { - // return d.hospitalState == 0 ? "试用" : "正式" - // } - // }, + { + field: 'orderType', width: 80, title: '状态', templet: function (d) { + if(d.orderType==null){ + return ""; + } + return d.orderType ? "正式" : "试用" + } + }, { field: 'isScreen', width: "4%", @@ -223,7 +226,7 @@ } }); } else if(layEvent=="health"){ - //充值 + //运动处方服务 admin.putTempData("t_hospital", data); admin.popupCenter({ title: '运动处方服务', @@ -337,7 +340,8 @@ method: 'GET', where: { 'hospitalId': data.hospitalId, - 'departmentId': data.departmentId + 'departmentId': data.departmentId, + 'enabled': true }, headers: { 'Authorization': 'Bearer ' + config.getToken().access_token @@ -357,6 +361,14 @@ title: '读片量(剩余)' }, { + field: 'ailightCount', + width: 150, + title: '读片使用量', + templet: function (d) { + return d.orderAilightCount-d.ailightCount; + } + }, + { field: 'recordCount', width: 150, title: '报告量(剩余)' diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html index 23df499..129af3e 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/recharge.html @@ -36,7 +36,7 @@ <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;"> <div class="layui-row"> <div class="layui-col-sm5"> - <label class="layui-form-label" style="padding: 0 30px 0 0;">地区</label> + <label class="layui-form-label" style="padding: 0 20px 0 0;">地区</label> <input name="hospitalAreas" id="hospitalAreas" type="text" style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" /> </div> @@ -58,42 +58,80 @@ </div> <div class="layui-form-item" style="padding: 0; margin-bottom: 0px;"> <div class="layui-row"> - <div class="layui-col-sm4"> + <div class="layui-col-sm6"> <label class="layui-form-label" style="padding: 10px 30px 0 0px;">合同名称</label> <div class="layui-input-block"> <input name="contractTitle" id="contractTitle" type="text" class="layui-input" - maxlength="50" lay-verify="required" required autocomplete="off" /> + maxlength="50" lay-verify="required" required autocomplete="off" + style="display: inline-block;width: 80%;" /> </div> </div> - <div class="layui-col-sm3"> + <div class="layui-col-sm6"> <label class="layui-form-label">合同编号</label> <div class="layui-input-block"> <input name="contractNo" id="contractNo" type="text" class="layui-input" - maxlength="50" style="width: 185px;" autocomplete="off" lay-verify="required" - required /> + maxlength="50" autocomplete="off" lay-verify="required" required + style="display: inline-block;width: 80%;" /> </div> </div> </div> </div> <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> <div class="layui-row"> - <div class="layui-col-sm4"> - <label class="layui-form-label" style="padding: 10px 30px 0 0px;">开始日期</label> - <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text" - class="layui-input" style="width: 182px;" maxlength="50" lay-verify="required" - required /> - </div> - <div class="layui-col-sm4"> - <label class="layui-form-label">截止日期</label> - <div class="layui-input-block"> - <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text" - class="layui-input" maxlength="50" lay-verify="required" required /> + <div class="layui-col-sm6"> + <label class="layui-form-label">当前软件服务周期:</label> + <div class="layui-input-block" > + <input autocomplete="off" name="contractBeginTime_not" disabled + id="contractBeginTime_not" type="text" placeholder="请输开始时间" class="layui-input" + maxlength="50" readonly + style="border: none; display: inline-block;width: 30%;" /> + <span id="contractBeginTime_not_heng"> 至 </span> + <input autocomplete="off" name="contractEndTime_not" disabled + id="contractEndTime_not" type="text" placeholder="请输入结束时间" class="layui-input" + maxlength="50" readonly + style="border: none; margin-left: 10%;display: inline-block;width: 30%;" /> </div> </div> - <div class="layui-col-sm4"> + <div class="layui-col-sm6"> + <label class="layui-form-label">当前读片总量:</label> + <div class="layui-input-inline"> + <input autocomplete="off" name="contractNum_not" id="contractNum_not" disabled + type="text" class="layui-input" maxlength="50" readonly style="border: none;" /> + </div> + </div> + <!-- <div class="layui-col-sm6"> <label class="layui-form-label">签订日期</label> <div class="layui-input-block"> <input autocomplete="off" name="contractTime" id="contractTime" type="text" + class="layui-input" maxlength="50" lay-verify="required" required /> + </div> + </div> --> + </div> + </div> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm6"> + <label class="layui-form-label">合同服务周期:</label> + <!-- <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text" + class="layui-input" maxlength="50" lay-verify="required" + required /> --> + <!-- <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text" + class="layui-input" maxlength="50" lay-verify="required" required /> --> + <div class="layui-input-block"> + <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" + type="text" placeholder="请输开始时间" class="layui-input" maxlength="50" + lay-verify="required" required style="display: inline-block;width: 40%;" /> + -- + <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text" + placeholder="请输入结束时间" class="layui-input" maxlength="50" lay-verify="required" + required style="display: inline-block;width: 40%;" /> + </div> + </div> + <div class="layui-col-sm6"> + <label class="layui-form-label">合同读片充值量:</label> + <div class="layui-input-inline"> + <input autocomplete="off" name="contractNum" id="contractNum" + onkeyup="this.value=this.value.replace(/[^\d]/g,'0') " type="text" value="0" class="layui-input" maxlength="50" lay-verify="required" required /> </div> </div> @@ -105,12 +143,67 @@ <div class="layui-tab" style="margin: 0px;"> <ul class="layui-tab-title"> - <li class="layui-this">产品信息</li> + <li class="layui-this">套餐列表</li> + <li>自定义充值</li> </ul> <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;"> <div class="layui-tab-item layui-show" style="padding-top: 0px;"> <table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;"> </table> + </div> + <div class="layui-tab-item"> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm12"> + <label class="layui-form-label">充值名称:</label> + <div class="layui-input-inline"> + <input autocomplete="off" id="custom_proName" type="text" class="layui-input" + maxlength="50" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm6"> + <label class="layui-form-label">读片充值量:</label> + <div class="layui-input-inline"> + <input autocomplete="off" id="custom_ailightCount" + onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" + class="layui-input" maxlength="50" /> + </div> + </div> + <div class="layui-col-sm6"> + <div class="layui-input-inline"> + <input type="checkbox" id="custom_isShare" name="gongxiang" value="1" lay-skin="primary" title="是否共享" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm12"> + <div class="layui-input-inline" style="width: 160px;text-align: right;"> + <input type="checkbox" id="termType" lay-skin="primary" name="termType" value="true" checked + title="期限限制" /> + </div> + <div class="layui-col-sm4" style="margin-right: 30px;"> + <input autocomplete="off" id="custom_beginTime" type="text" placeholder="请输开始时间" + class="layui-input" maxlength="50" /> + </div> + <div class="layui-col-sm4 "> + <input autocomplete="off" type="text" placeholder="请输入结束时间" id="custom_endTime" + class="layui-input" maxlength="50" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item"> + <div class="layui-input-block" + style="text-align: right;padding-right: 100px;padding-top: 50px;"> + <input class="layui-btn" type="button" id="custom_submit" value="确定" /> + </div> + </div> </div> </div> </div> @@ -151,28 +244,158 @@ <input type="checkbox" lay-filter="product-tpl-isShare" value="{{d.id}}" lay-skin="switch" lay-text="共享|不共享" /> </script> <script> - layui.use(['form', 'table', 'util', 'config', 'laydate', 'admin'], function () { + layui.use(['form', 'table', 'util', 'config', 'laydate', 'jquery', 'admin'], function () { var form = layui.form; var table = layui.table; var config = layui.config; var layer = layui.layer; var util = layui.util; var admin = layui.admin; + // element=layui.element; var $ = layui.jquery; var laydate = layui.laydate; + + var contractNum = 0; + var contractBeginTime_cheng = ""; + var contractEndTime_cheng = ""; //充值进行中 var isRun = false; //执行一个laydate实例 + var contractBeginTime= laydate.render({ + elem: '#contractBeginTime', //指定元素 + done: function (value, date, endDate) { + var startDate = new Date(value).getTime(); + var endTime = new Date($('#contractEndTime').val()).getTime(); + if (endTime <= startDate) { + layer.msg('结束时间不能小于或等于开始时间'); + var end = new Date($('#contractEndTime').val()) + end.setDate(end.getDate()-1) + $('#contractBeginTime').val(util.toDateString(end, "yyyy-MM-dd")); + } else { + var flag=termTypeTime(); + if(!false){ + return false; + } + $('#custom_beginTime').val($("#contractBeginTime").val()) + custom_beginTimes.config.min = { + year: date.year, + month: date.month - 1,//关键 + date: date.date, + hours: date.hours, + minutes: date.minutes, + seconds: date.seconds + } + } + } + }); + var contractEndTime = laydate.render({ + elem: '#contractEndTime', //指定元素 + // min: $("#contractEndTime_not").val(), + done: function (value, date, endDate) { + var startDate = new Date($('#contractBeginTime').val()).getTime(); + var endTime = new Date(value).getTime(); + if (endTime <= startDate) { + layer.msg('结束时间不能小于或等于开始时间'); + var begin = new Date($('#contractBeginTime').val()) + begin.setDate(begin.getDate()+1) + $('#contractEndTime').val(util.toDateString(begin, "yyyy-MM-dd")); + // $('#contractEndTime').val($('#contractBeginTime').val()); + } else { + var flag=termTypeTime(); + if(!false){ + return false; + } + $('#custom_endTime').val($("#contractEndTime").val()) + custom_endTimes.config.max = { + year: date.year, + month: date.month - 1,//关键 + date: date.date, + hours: date.hours, + minutes: date.minutes, + seconds: date.seconds + } + var begin = new Date($("#contractBeginTime").val()) + custom_endTimes.config.min = { + year: layui.util.toDateString(begin, "yyyy"), + month: layui.util.toDateString(begin, "MM") - 1,//关键 + date: layui.util.toDateString(begin, "dd"), + hours: layui.util.toDateString(begin, "HH"), + minutes: layui.util.toDateString(begin, "mm"), + seconds: layui.util.toDateString(begin, "ss") + } + + } + } + }); + function termTypeTime(){ + var listData = admin.getTempData("t_tempProduct"); + var max= ""; + var min= ''; + if(listData!=null&&listData.length>0){ + + listData.forEach((element,index) => { + if(index==0){ + max=element.endTime; + min=element.beginTime; + }else{ + if (dateUtil.compareDate(min, element.beginTime)) { + min=element.beginTime; + } + if (dateUtil.compareDate( element.endTime,max)) { + max=element.endTime; + } + } + + }); + } + if(dateUtil.compareDate( $('#contractBeginTime').val(),min)){ + layer.msg("合同的时间必须小于待充值的开始时间") + $('#contractBeginTime').val(contractBeginTime_cheng); + return false; + }else{ + contractBeginTime_cheng=$('#contractBeginTime').val() + } + if(dateUtil.compareDate(max, $('#contractEndTime').val())){ + layer.msg("合同的时间必须小于待充值的开始时间") + $('#contractEndTime').val(contractEndTime_cheng); + return false; + }else{ + contractEndTime_cheng=$('#contractEndTime').val() + } + + } laydate.render({ - elem: '#contractBeginTime' //指定元素 + elem: '#contractBeginTime_not' //指定元素 }); laydate.render({ - elem: '#contractEndTime' //指定元素 + elem: '#contractEndTime_not' //指定元素 }); - laydate.render({ - elem: '#contractTime', //指定元素 - value: new Date().dateFormat("yyyy-MM-dd") + var custom_beginTimes = laydate.render({ + elem: '#custom_beginTime', //指定元素 + // min: $("#contractEndTime").val(), + // man: $("#contractBeginTime").val(), + done: function (value, date, endDate) { + var startDate = new Date(value).getTime(); + var endTime = new Date($('#custom_endTime').val()).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#custom_beginTime').val($('#custom_endTime').val()); + } + } + }); + var custom_endTimes = laydate.render({ + elem: '#custom_endTime', //指定元素 + // min: $("#contractEndTime").val(), + // man: $("#contractBeginTime").val(), + done: function (value, date, endDate) { + var startDate = new Date($('#custom_beginTime').val()).getTime(); + var endTime = new Date(value).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#custom_endTime').val($('#custom_beginTime').val()); + } + } }); //现将临时数据清理 admin.putTempData("t_tempProduct", ""); @@ -185,91 +408,166 @@ cellMinWidth: 100, cols: [ [{ - field: 'proName', - width: 330, - title: '产品名称', - align: 'center', - fixed: 'left' + field: 'proName', + width: 330, + title: '产品名称', + align: 'center', + fixed: 'left' + }, + { + field: 'proType', + align: 'center', + width: 80, + templet: function (d) { + if (d.proType === 0) + return "试用" + else + return "正式" }, - { - field: 'proType', - align: 'center', - width: 80, - templet: function (d) { - if (d.proType === 0) - return "试用" - else - return "正式" - }, - title: '类型' - }, - { - field: 'proTime', - width: 100, - title: '时长', - align: 'center', - templet: function (d) { - switch (d.proTimeUnit) { - case 0: - return d.proTime + "天"; - break; - case 1: - return d.proTime + "月"; - break; - case 2: - return d.proTime + "年"; - break; - } + title: '类型' + }, + { + field: 'proTime', + width: 100, + title: '时长', + align: 'center', + templet: function (d) { + switch (d.proTimeUnit) { + case 0: + return d.proTime + "天"; + break; + case 1: + return d.proTime + "月"; + break; + case 2: + return d.proTime + "年"; + break; } - }, - { - field: 'ailightCount', - width: 100, - align: 'center', - title: '读片量' - }, - { - field: 'recordCount', - width: 100, - align: 'center', - title: '报告量' - }, - { - field: 'beginTime', - align: 'center', - width: 120, - title: '开始日期' - }, - { - field: 'endTime', - align: 'center', - width: 120, - title: '结束日期' - }, - { - field: 'isShare', - fixed: 'right', - align: 'center', - width: 100, - templet: function (d) { - if (d.isShare == 0) - return "不共享" - else - return "共享" - }, - title: '共享' - }, - { - field: 'id', - fixed: 'right', - align: 'center', - width: 100, - toolbar: '#product-tpl-bar-temp', - title: '操作' + return ""; } + }, + { + field: 'ailightCount', + width: 100, + align: 'center', + title: '读片量' + }, + { + field: 'recordCount', + width: 100, + align: 'center', + title: '报告量' + }, + { + field: 'beginTime', + align: 'center', + width: 120, + title: '开始日期' + }, + { + field: 'endTime', + align: 'center', + width: 120, + title: '结束日期' + }, + { + field: 'isShare', + fixed: 'right', + align: 'center', + width: 100, + templet: function (d) { + if (d.isShare == 0) + return "不共享" + else + return "共享" + }, + title: '共享' + }, + { + field: 'id', + fixed: 'right', + align: 'center', + width: 100, + toolbar: '#product-tpl-bar-temp', + title: '操作' + } ] ] }); + } + //获取软件的服务周期 + var getCycleTime = function (departmentId) { + admin.req('api-opration/productorderdetail/getContractBeginEndTimeAndNum', { departmentId: departmentId }, + function (data) { + if (data.code == 0) { + if(data.data.beginTime==undefined){ + $("#contractBeginTime_not").hide(); + $("#contractEndTime_not").hide(); + $("#contractBeginTime_not_heng").hide(); + $("#contractNum_not").hide(); + form.render(); + }else{ + $("#contractBeginTime_not").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd")); + $("#contractEndTime_not").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd")); + $("#contractBeginTime").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd")); + $("#contractEndTime").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd")); + $("#custom_beginTime").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd")); + $("#custom_endTime").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd")); + contractBeginTime.config.max = { + year: layui.util.toDateString(data.data.beginTime, "yyyy"), + month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.beginTime, "dd"), + hours: layui.util.toDateString(data.data.beginTime, "HH"), + minutes: layui.util.toDateString(data.data.beginTime, "mm"), + seconds: layui.util.toDateString(data.data.beginTime, "ss") + } + contractEndTime.config.min = { + year: layui.util.toDateString(data.data.endTime, "yyyy"), + month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.endTime, "dd"), + hours: layui.util.toDateString(data.data.endTime, "HH"), + minutes: layui.util.toDateString(data.data.endTime, "mm"), + seconds: layui.util.toDateString(data.data.endTime, "ss") + } + //自定义的时间段 开始时间进行限制 + custom_beginTimes.config.min = { + year: layui.util.toDateString(data.data.beginTime, "yyyy"), + month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.beginTime, "dd"), + hours: layui.util.toDateString(data.data.beginTime, "HH"), + minutes: layui.util.toDateString(data.data.beginTime, "mm"), + seconds: layui.util.toDateString(data.data.beginTime, "ss") + } + custom_beginTimes.config.max = { + year: layui.util.toDateString(data.data.endTime, "yyyy"), + month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.endTime, "dd"), + hours: layui.util.toDateString(data.data.endTime, "HH"), + minutes: layui.util.toDateString(data.data.endTime, "mm"), + seconds: layui.util.toDateString(data.data.endTime, "ss") + } + //自定义的时间段 结束时间进行限制 + custom_endTimes.config.min = { + year: layui.util.toDateString(data.data.beginTime, "yyyy"), + month: layui.util.toDateString(data.data.beginTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.beginTime, "dd"), + hours: layui.util.toDateString(data.data.beginTime, "HH"), + minutes: layui.util.toDateString(data.data.beginTime, "mm"), + seconds: layui.util.toDateString(data.data.beginTime, "ss") + } + custom_endTimes.config.max = { + year: layui.util.toDateString(data.data.endTime, "yyyy"), + month: layui.util.toDateString(data.data.endTime, "MM") - 1,//关键 + date: layui.util.toDateString(data.data.endTime, "dd"), + hours: layui.util.toDateString(data.data.endTime, "HH"), + minutes: layui.util.toDateString(data.data.endTime, "mm"), + seconds: layui.util.toDateString(data.data.endTime, "ss") + } + $("#contractNum_not").val(data.data.count); + } + } + + }, "get") } //回显医院基本数据 @@ -281,16 +579,17 @@ if (0 === data.code) { queryData = data.data; if (queryData === true) { - admin.finishPopupCenter(); + admin.finishPopupCenter(); layer.msg("当前科室开通了单次支付功能,不能进行充值业务!", { icon: 3, time: 5000 }); } else { form.val('recharge-form', hospitalData); - $("#hospitalAreas").val(hospitalData.hospitalProvince + " " + hospitalData - .hospitalCity + " " + - hospitalData.hospitalArea); + var hospitalProvince = hospitalData.hospitalProvince != null ? hospitalData.hospitalProvince : ""; + var hospitalCity = hospitalData.hospitalCity != null ? hospitalData.hospitalCity : ""; + var hospitalArea = hospitalData.hospitalArea != null ? hospitalData.hospitalArea : ""; + $("#hospitalAreas").val(hospitalProvince + " " + hospitalCity + " " + hospitalArea); //装载产品数据 table.render({ @@ -308,87 +607,87 @@ }, cols: [ [{ - field: 'proName', - sort: true, - width: 330, - title: '产品名称', - align: 'center', - fixed: 'left' + field: 'proName', + sort: true, + width: 330, + title: '产品名称', + align: 'center', + fixed: 'left' + }, + { + field: 'proType', + sort: true, + align: 'center', + width: 80, + templet: function (d) { + if (d.proType === 0) + return "试用" + else + return "正式" }, - { - field: 'proType', - sort: true, - align: 'center', - width: 80, - templet: function (d) { - if (d.proType === 0) - return "试用" - else - return "正式" - }, - title: '类型' - }, - { - field: 'proTime', - width: 100, - title: '时长', - align: 'center', - templet: function (d) { - switch (d.proTimeUnit) { - case 0: - return d.proTime + "天"; - break; - case 1: - return d.proTime + "月"; - break; - case 2: - return d.proTime + "年"; - break; - } + title: '类型' + }, + { + field: 'proTime', + width: 100, + title: '时长', + align: 'center', + templet: function (d) { + switch (d.proTimeUnit) { + case 0: + return d.proTime + "天"; + break; + case 1: + return d.proTime + "月"; + break; + case 2: + return d.proTime + "年"; + break; } - }, - { - field: 'ailightCount', - width: 100, - align: 'center', - title: '读片量' - }, - { - field: 'recordCount', - width: 100, - align: 'center', - title: '报告量' - }, - { - field: 'beginTime', - align: 'center', - width: 120, - title: '开始日期', - event: "date" - }, - { - field: 'endTime', - align: 'center', - width: 120, - title: '结束日期', - event: "date" - }, - { - field: 'isShare', - fixed: 'right', - align: 'center', - width: 100, - templet: '#product-tpl-isShare', - title: '共享' - }, - { - field: 'id', - fixed: 'right', - align: 'center', - width: 100, - toolbar: '#product-tpl-bar', - title: '操作' } + }, + { + field: 'ailightCount', + width: 100, + align: 'center', + title: '读片量' + }, + { + field: 'recordCount', + width: 100, + align: 'center', + title: '报告量' + }, + { + field: 'beginTime', + align: 'center', + width: 120, + title: '开始日期', + event: "date" + }, + { + field: 'endTime', + align: 'center', + width: 120, + title: '结束日期', + event: "date" + }, + { + field: 'isShare', + fixed: 'right', + align: 'center', + width: 100, + templet: '#product-tpl-isShare', + title: '共享' + }, + { + field: 'id', + fixed: 'right', + align: 'center', + width: 100, + toolbar: '#product-tpl-bar', + title: '操作' + } ] ], done: function (res) { @@ -397,24 +696,98 @@ }); } } - else - { + else { admin.finishPopupCenter(); layer.msg("验证医院科室数据异常!", { - icon: 2, - time: 3000 - }); + icon: 2, + time: 3000 + }); } }, 'get'); + //报告数量事件 + $("#contractNum").blur(function () { + if ($("#contractNum").val() < 0) { + layer.msg("输入的读片量大于0"); + $("#contractNum").val(0) + return false; + } + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if(item.proType==1){ + listNum += item.ailightCount; + } + }) + } + if ($("#contractNum").val() < listNum) { + layer.msg("请先删除待充值套餐"); + $("#contractNum").val(contractNum) + return false; + } else { + contractNum = $("#contractNum").val(); + //将自定义的读片量赋值 + $("#custom_ailightCount").val($("#contractNum").val()-listNum); + } + }) + //自定义的确定 + $("#custom_submit").click(function () { + var custom_proName = $("#custom_proName").val() + var custom_ailightCount = $("#custom_ailightCount").val() + var custom_isShare = $("#custom_isShare").prop("checked") ? 1 : 0; + var termType = $("#termType").prop("checked") ? 1 : 0; + var custom_beginTime = ""; + var custom_endTime = ""; + if (termType == 1) { + custom_beginTime = $("#custom_beginTime").val(); + custom_endTime = $("#custom_endTime").val(); + } else { + custom_beginTime = $("#contractBeginTime").val(); + custom_endTime = $("#contractEndTime").val(); + } + var listData = admin.getTempData("t_tempProduct"); + //添加一个id,删除用 + var max = 0; + if (strUtil.isEmpty(listData)) { + listData = new Array(); + } + listData.forEach(element => { + if (max < element.id) { + max = element.id + } + }); + //判断待加入产品的总数是否大于合同的总数 + var msg = isthenNum(parseInt(custom_ailightCount)); + if (msg != null) { + layer.msg(msg); + return false; + } + var data = { + id: max + 1, + ailightCount: parseInt(custom_ailightCount), + beginTime: custom_beginTime, + endTime: custom_endTime, + isShare: custom_isShare, + proName: custom_proName, + proTime: "", + proType: 1, + termType: termType, + type: 1 + } + tempDataList(data); + waitRecharge(); + }) + getCycleTime(hospitalData.departmentId); } - //待充值列表功能操作 table.on('tool(product-table-temp)', function (obj) { if (obj.event === "del") { if (!strUtil.isEmpty(obj.data.id)) { delTempDataById(obj.data.id); obj.del(); + //将自定义的数量赋值 + zidingyiNum() } } }); @@ -455,11 +828,38 @@ "td[data-field='endTime'] div").text(); data.isShare = obj.tr.find("td[data-field='isShare'] em").text(); data.isShare = (data.isShare.indexOf("不") == 0) ? 0 : 1; + //判断待加入产品的总数是否大于合同的总数 + //试用产品不计算总数 + if (data.proType == 1) { + var msg = isthenNum(data.ailightCount); + if (msg != null) { + layer.msg(msg); + return false; + } + } + //将所选的时间不得大于 合同的时间 + var contractBeginTime = $("#contractBeginTime").val(); + var contractEndTime = $("#contractEndTime").val(); + if (!strUtil.isEmpty(data.beginTime)){ + if (dateUtil.compareDate( contractBeginTime,data.beginTime)) { + layer.msg("开始时间必须大于合同的开始时间!"); + return false; + } + } + if (!strUtil.isEmpty(data.endTime)){ + if (dateUtil.compareDate(data.endTime,contractEndTime)) { + layer.msg("结束时间必须小于合同的结束时间!"); + return false; + } + } + if (!strUtil.isEmpty(data.beginTime) && !strUtil.isEmpty(data.endTime)) { if (dateUtil.compareDate(data.endTime, data.beginTime)) { - data.id=data.id+''; + data.id = data.id + ''; tempDataList(data); waitRecharge(); + //将自定义的数量赋值 + zidingyiNum() } else { layer.msg("结束时间必须大于开始时间!"); return false; @@ -470,6 +870,43 @@ } } }); + //将自定义的数量重新赋值 + function zidingyiNum(){ + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if(item.proType==1){ + listNum += item.ailightCount; + } + }) + } + $("#custom_ailightCount").val($("#contractNum").val()-listNum); + } + function isthenNum(num) { + if (num <= 0) { + return "请输入合同读片充值量大于0"; + } + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if(item.proType==1){ + listNum += item.ailightCount; + } + }) + } + listNum += num; + if ($("#contractNum").val() == undefined || $("#contractNum").val() == "") { + return "请输入合同读片充值量!"; + } else { + if ($("#contractNum").val() < listNum) { + return "当前产品总数不得大于合同读片充值量"; + } else { + return null; + } + } + } //监听单元格编辑 判断日期格式 table.on('edit(product-table)', function (obj) { var value = obj.value //得到修改后的值 @@ -477,7 +914,7 @@ data = obj.data //得到所在行所有键值 , field = obj.field; //得到字段 - if (dateUtil.isDate(value)) {} else { + if (dateUtil.isDate(value)) { } else { layer.msg("输入的日期格式无效!"); } }); @@ -515,13 +952,13 @@ if (strUtil.isEmpty(listData)) { listData = new Array(); } - $.each(listData, function (index, value) { - if (value.id === data.id) { - //移除 - listData.splice(index, 1); - return false; - } - }) + // $.each(listData, function (index, value) { + // if (value.id === data.id) { + // //移除 + // listData.splice(index, 1); + // return false; + // } + // }) listData.push(data); admin.putTempData("t_tempProduct", listData); } else { @@ -546,9 +983,23 @@ if (!isRun) { layer.load(2); var listData = admin.getTempData("t_tempProduct"); - if (listData != null) { + // if (listData != null) { + var count= 0; + if(listData!=null){ + listData.forEach(element => { + if(element.proType==1){ + count+=element.ailightCount; + } + }); + } + if(count!=data.field.contractNum){ + layer.closeAll('loading'); + layer.msg("合同读片充值量与套餐充值量不一致") + return false; + } if (data.field != null) { - layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", { + var len=listData!=null&&listData.length>0 ? listData.length : 0 + layer.confirm("确定要将待充值列表中的" + len + "个产品充值给当前医院的科室吗?", { btn: ["确定", "返回"] }, function () { isRun = true; @@ -556,7 +1007,10 @@ " 00:00:00"; data.field.contractEndTime = data.field.contractEndTime + " 23:59:59"; - data.field.contractTime = data.field.contractTime + " 00:00:00"; + // data.field.contractTime = data.field.contractTime + " 00:00:00"; + delete data.field.contractNum_not + delete data.field.contractBeginTime_not + delete data.field.contractEndTime_not admin.req('api-opration/contract', JSON.stringify(data.field), function (data) { layer.closeAll('loading'); @@ -566,22 +1020,40 @@ var listDetailData = new Array(); $.each(listData, function (index, item) { var detailData = { - orderId: orderData.id+'', - proId: item.id+'', + orderId: orderData.id + '', + proId: item.termType == null ? item.id + '' : "0", proType: item.proType, proName: item.proName, isShare: item.isShare, - ailightCount: item.ailightCount, - recordCount: item.recordCount, - proBegintime: item.beginTime + - ' 00:00:00', - proEndtime: item.endTime + - ' 23:59:59' + ailightCount: item.ailightCount != null ? item.ailightCount : 0, + recordCount: item.recordCount != null ? item.recordCount : 0, + termType: item.termType, + proBegintime: item.beginTime != "" ? item.beginTime + + ' 00:00:00' : "", + proEndtime: item.endTime != "" ? item.endTime + + ' 00:00:00' : "", + orderAilightCount: item.ailightCount, + orderRecordCount: item.recordCount != null ? item.recordCount : 0, }; listDetailData.push(detailData); }) - if (listDetailData.length > 0) { + if (listDetailData.length <=0) { + var detailData = { + orderId: orderData.id + '', + proId: "0", + proType: 1, + proName: "软件服务周期", + isShare: 0, + ailightCount: 0, + recordCount: 0, + proBegintime: $("#contractBeginTime").val()+' 00:00:00' , + proEndtime: $("#contractEndTime").val()+' 00:00:00' , + orderAilightCount: 0, + orderRecordCount: 0, + }; + listDetailData.push(detailData) + } //提交订单数据 admin.req( 'api-opration/productorderdetail/saveall', @@ -608,13 +1080,9 @@ }); } }, 'POST'); - } else { - layer.msg("充值数据异常为空!", { - icon: 2, - time: 1000 - }); - isRun = false; - } + // layer.closeAll(); + // layer.msg("充值数据成功!"); + // isRun = false; } else { layer.msg(data.msg, { icon: 2, @@ -630,15 +1098,24 @@ time: 1000 }); } - } else { - layer.msg("请先将要充值的产品加入待充值!", { - icon: 2, - time: 2000 - }); - } + // } else { + // layer.msg("请先将要充值的产品加入待充值!", { + // icon: 2, + // time: 2000 + // }); + // } layer.closeAll('loading'); return false; } }); }); -</script> \ No newline at end of file +</script> +<style> + .layui-form-label { + width: 140px; + } + + .layui-input-block { + margin-left: 160px; + } +</style> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/rechargeupdate.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/rechargeupdate.html new file mode 100644 index 0000000..52ba677 --- /dev/null +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/rechargeupdate.html @@ -0,0 +1,1093 @@ +<form id="recharge-form" lay-filter="recharge-form" class="layui-form"> + <div style="overflow-y: auto; height:700px;"> + <div class="layui-tab"> + <ul class="layui-tab-title"> + <li class="layui-this">合同信息</li> + </ul> + <div class="layui-tab-content" style="margin: 0px 0px -10px 0px;"> + <div class="layui-tab-item layui-show"> + + <div class="layui-form-item" style="margin-bottom: 10px;"> + <div class="layui-row"> + <div class="layui-col-sm5"> + <label class="layui-form-label" style="padding: 0;">医院名称</label> + <div class="layui-input-block"> + <input name="hospitalName" id="hospitalName" type="text" class="layui-input" + style="border: none; margin-top:-10px" readonly /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">科室名称</label> + <div class="layui-input-block"> + <input name="departmentName" id="departmentName" + style="border: none; margin-top:-10px" readonly class="layui-input" /> + </div> + </div> + <div class="layui-col-sm2"> + <label class="layui-form-label" style="padding: 0;">服务人员</label> + <div class="layui-input-block"> + <input name="serverUserName" id="serverUserName" + style="border: none; margin-top:-10px;width: 120px;" readonly + class="layui-input" /> + </div> + </div> + </div> + </div> + + <div class="layui-form-item" style="margin-bottom: 10px;"> + <div class="layui-row"> + <div class="layui-col-sm5"> + <label class="layui-form-label" style="padding: 0;">地区</label> + <div class="layui-input-block"> + <input name="hospitalAreas" id="hospitalAreas" type="text" + style="border: none; margin-top:-10px" readonly class="layui-input" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">联系电话</label> + <div class="layui-input-block"> + <input name="hospitalTel" id="hospitalTel" type="text" class="layui-input" + style="border: none; margin-top:-10px" readonly /> + </div> + </div> + <div class="layui-col-sm2"> + <label class="layui-form-label" style="padding: 0;">联系人</label> + <div class="layui-input-block"> + <input name="hospitalLink" type="text" class="layui-input" + style="border: none; margin-top:-10px;" readonly /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin-bottom: 10px;"> + <div class="layui-row"> + <div class="layui-col-sm6"> + <label class="layui-form-label" style="padding: 0;">合同名称</label> + <div class="layui-input-block"> + <input name="contractTitle" id="contractTitle" type="text" class="layui-input" + readonly style="border: none; margin-top:-10px" /> + </div> + </div> + <div class="layui-col-sm6"> + <label class="layui-form-label" style="padding: 0;">合同编号</label> + <div class="layui-input-block"> + <input name="contractNo" id="contractNo" type="text" class="layui-input" + style="border: none; margin-top:-10px" readonly /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin-bottom: 10px;"> + <div class="layui-row"> + <div class="layui-col-sm6"> + <label class="layui-form-label" style="padding: 0;">软件服务周期:</label> + <!-- <div class="layui-col-sm3" style="margin-right: 30px;"> + <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" + type="text" placeholder="请输开始时间" class="layui-input" readonly style="border: none; margin-top:-10px"/> + </div> + <div class="layui-col-sm3"> + <input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text" + placeholder="请输入结束时间" class="layui-input" readonly style="border: none; margin-top:-10px" /> + </div> --> + <div class="layui-input-block"> + <input autocomplete="off" name="contractBeginTime" id="contractBeginTime" + type="text" placeholder="请输开始时间" disabled class="layui-input" readonly + style="border: none; margin-top:-10px;display: inline-block;width: 30%;" /> + -- + <input autocomplete="off" name="contractEndTime" disabled id="contractEndTime" + type="text" placeholder="请输入结束时间" class="layui-input" readonly + style="border: none; margin-top:-10px;margin-left: 10%;display: inline-block;width: 30%;" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">合同充值总量:</label> + <div class="layui-input-block"> + <input autocomplete="off" name="contractNum" id="contractNum" + onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" + class="layui-input" readonly style="border: none; margin-top:-10px" /> + </div> + </div> + <div class="layui-col-sm3"> + <label class="layui-form-label" style="padding: 0;">未充值量:</label> + <div class="layui-input-block"> + <span name="contractNum"></span> + <input autocomplete="off" name="contractNum_not" id="contractNum_not" + onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" + class="layui-input" readonly style="border: none; margin-top:-10px" /> + </div> + </div> + </div> + </div> + </div> + </div> + </div> + <div class="layui-tab" style="margin: 0px;"> + <ul class="layui-tab-title"> + <li class="layui-this">已充值产品</li> + </ul> + <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;"> + <div class="layui-tab-item layui-show" style="padding-top: 0px;"> + <table class="layui-table" id="product-table-now" lay-filter="product-table-now" + style="margin: 0px;"> + </table> + </div> + </div> + </div> + + <div class="layui-tab" style="margin: 0px;"> + <ul class="layui-tab-title"> + <li class="layui-this">套餐列表</li> + <li>自定义充值</li> + </ul> + <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;"> + <div class="layui-tab-item layui-show" style="padding-top: 0px;"> + <table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;"> + </table> + </div> + <div class="layui-tab-item"> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm12"> + <label class="layui-form-label">充值名称:</label> + <div class="layui-input-inline"> + <input autocomplete="off" id="custom_proName" type="text" class="layui-input" + maxlength="50" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm6"> + <label class="layui-form-label">读片充值量:</label> + <div class="layui-input-inline"> + <input autocomplete="off" id="custom_ailightCount" + onkeyup="this.value=this.value.replace(/[^\d]/g,'') " type="text" + class="layui-input" maxlength="50" /> + </div> + </div> + <div class="layui-col-sm6"> + <div class="layui-input-inline"> + <input type="checkbox" lay-skin="primary" id="custom_isShare" name="gongxiang" + value="1" title="是否共享" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item" style="margin: 10px 0px 0px 0px;"> + <div class="layui-row"> + <div class="layui-col-sm12"> + <div class="layui-input-inline" style="width: 120px;text-align: right;"> + <input type="checkbox" lay-skin="primary" id="termType" name="termType" value="true" + checked title="期限限制" /> + </div> + <div class="layui-col-sm4" style="margin-right: 30px;"> + <input autocomplete="off" id="custom_beginTime" type="text" placeholder="请输开始时间" + class="layui-input" maxlength="50" /> + </div> + <div class="layui-col-sm4 "> + <input autocomplete="off" type="text" placeholder="请输入结束时间" id="custom_endTime" + class="layui-input" maxlength="50" /> + </div> + </div> + </div> + </div> + <div class="layui-form-item"> + <div class="layui-input-block" + style="text-align: right;padding-right: 100px;padding-top: 50px;"> + <input class="layui-btn" type="button" id="custom_submit" value="确定" /> + </div> + </div> + + </div> + </div> + </div> + + <div class="layui-tab" style="margin: 0px;"> + <ul class="layui-tab-title"> + <li class="layui-this">待充值产品</li> + </ul> + <div class="layui-tab-content" style="margin: -10px 0px -10px 0px;"> + <div class="layui-tab-item layui-show" style="padding-top: 0px;"> + <table class="layui-table" id="product-table-temp" lay-filter="product-table-temp" + style="margin: 0px;"> + </table> + </div> + </div> + </div> + </div> + <div class="layui-form-item model-form-footer" style="margin-right: 20px;"> + <button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button> + <button class="layui-btn permissions" permissions="product-rechage" type="button" id="submit">确定充值</button> + </div> + <input type="hidden" value="" id="departmentId" name="departmentId" /> + <input type="hidden" value="" id="hospitalId" name="hospitalId" /> + <input type="hidden" value="" id="orgId" name="orgId" /> + <input type="hidden" value="" id="serverUserId" name="serverUserId" /> +</form> +<!-- 表格操作列 --> +<script type="text/html" id="product-tpl-bar-now"> + {{# if (d.ailightCount !=d.orderAilightCount){}} + {{# if (d.enabled && d.ailightCount>0){}} + <a class="layui-btn layui-btn-xs" lay-event="order_detail_enable">禁用</a> + {{# } else { }} + <a class="layui-btn layui-btn-disabled" >禁用</a> + {{#}}} + + {{# } else { }} + <a class="layui-btn layui-btn-xs" lay-event="order_detail_del">删除</a> + {{#}}} +</script> +<!-- 表格状态列 --> +<script type="text/html" id="product-tpl-bar-state"> + <input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="正常|锁定" disabled + {{d.enabled==true?'checked':''}} class="permissions" permissions="doctortemplete-enable"/> +</script> +<!-- 表格操作列 --> +<script type="text/html" id="product-tpl-bar"> + <a class="layui-btn layui-btn-xs" lay-event="pay">加入待充值</a> +</script> +<!-- 表格操作列 --> +<script type="text/html" id="product-tpl-bar-temp"> + <a class="layui-btn layui-btn-danger" lay-event="del">移除</a> +</script> +<!-- 表格状态列 --> +<script type="text/html" id="product-tpl-isShare"> + <input type="checkbox" lay-filter="product-tpl-isShare" value="{{d.id}}" lay-skin="switch" lay-text="共享|不共享" /> +</script> +<script> + layui.use(['form', 'table', 'util', 'config', 'laydate', 'jquery', 'admin'], function () { + var form = layui.form; + var table = layui.table; + var config = layui.config; + var layer = layui.layer; + var util = layui.util; + var admin = layui.admin; + // element=layui.element; + var $ = layui.jquery; + var laydate = layui.laydate; + + var contractNum = 0; + + //充值进行中 + var isRun = false; + var contractBeginTimeVVV = ""; + var contractEndTimeVVV = ""; + //执行一个laydate实例 + var contractBeginTime = laydate.render({ + elem: '#contractBeginTime', //指定元素 + done: function (value, date, endDate) { + var startDate = new Date(value).getTime(); + var endTime = new Date($('#contractEndTime').val()).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#contractBeginTime').val($('#contractEndTime').val()); + } else { + $('#custom_beginTime').val($("#contractBeginTime").val()) + } + } + }); + var contractEndTime = laydate.render({ + elem: '#contractEndTime', //指定元素 + done: function (value, date, endDate) { + var startDate = new Date($('#contractBeginTime').val()).getTime(); + var endTime = new Date(value).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#contractEndTime').val($('#contractBeginTime').val()); + } else { + $('#custom_endTime').val($("#contractEndTime").val()) + + + } + } + }); + laydate.render({ + elem: '#contractBeginTime_not' //指定元素 + }); + laydate.render({ + elem: '#contractEndTime_not' //指定元素 + }); + + //现将临时数据清理 + admin.putTempData("t_tempProduct", ""); + //待充值列表 + var waitRecharge = function () { + table.render({ + elem: '#product-table-temp', + data: admin.getTempData("t_tempProduct"), + page: false, + cellMinWidth: 100, + cols: [ + [{ + field: 'proName', + width: 330, + title: '产品名称', + align: 'center', + fixed: 'left' + }, + { + field: 'proType', + align: 'center', + width: 80, + templet: function (d) { + if (d.proType === 0) + return "试用" + else + return "正式" + }, + title: '类型' + }, + { + field: 'proTime', + width: 100, + title: '时长', + align: 'center', + templet: function (d) { + switch (d.proTimeUnit) { + case 0: + return d.proTime + "天"; + break; + case 1: + return d.proTime + "月"; + break; + case 2: + return d.proTime + "年"; + break; + } + return ""; + } + }, + { + field: 'ailightCount', + width: 100, + align: 'center', + title: '读片量' + }, + { + field: 'recordCount', + width: 100, + align: 'center', + title: '报告量' + }, + { + field: 'beginTime', + align: 'center', + width: 120, + title: '开始日期' + }, + { + field: 'endTime', + align: 'center', + width: 120, + title: '结束日期' + }, + { + field: 'isShare', + fixed: 'right', + align: 'center', + width: 100, + templet: function (d) { + if (d.isShare == 0) + return "不共享" + else + return "共享" + }, + title: '共享' + }, + { + field: 'id', + fixed: 'right', + align: 'center', + width: 100, + toolbar: '#product-tpl-bar-temp', + title: '操作' + } + ] + ] + }); + } + //将自定义的数量重新赋值 + function zidingyiNum() { + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if (item.proType == 1) { + listNum += item.ailightCount; + } + }) + } + $("#custom_ailightCount").val($("#contractNum_not").val() - listNum); + } + //待充值列表 + var nowContract = function () { + table.render({ + elem: '#product-table-now', + data: admin.getTempData("t_tempProduct"), + page: false, + url: config.base_server + 'api-opration/productorderdetail?orderId=' + admin.getTempData('t_hospital').id, + cellMinWidth: 100, + headers: { + 'Authorization': 'Bearer ' + config.getToken().access_token + }, + cols: [ + [{ + field: 'proName', width: 200, title: '产品名称', align: 'center', fixed: 'left' + }, + { + field: 'proType', align: 'center', width: 80, templet: function (d) { + if (d.proType === 0) + return "试用" + else + return "正式" + }, title: '类型' + }, + { + field: 'createTime', width: 180, title: '充值时间', align: 'center' + }, + { + field: 'ailightCount', width: 100, align: 'center', title: '读片剩余量' + }, + { + field: 'orderAilightCount', width: 100, align: 'center', title: '读片使用量', templet: function (d) { + // if(d.orderAilightCount==null){ + // return ""; + // } + return d.orderAilightCount - d.ailightCount; + } + }, + { + field: 'proBegintime', align: 'center', width: 180, title: '开始日期', templet: function (d) { return layui.util.toDateString(d.proBegintime, 'yyyy-MM-dd'); } + }, + { + field: 'proEndtime', align: 'center', width: 180, title: '结束日期', templet: function (d) { return layui.util.toDateString(d.proEndtime, 'yyyy-MM-dd'); } + }, + { field: 'enabled', align: 'center', width: 100, templet: '#product-tpl-bar-state', title: '状态' }, + { + field: 'isShare', fixed: 'right', align: 'center', width: 100, + templet: function (d) { + if (d.isShare == 0) + return "不共享" + else + return "共享" + }, title: '共享' + }, + { + field: 'id', fixed: 'right', align: 'center', width: 100, toolbar: '#product-tpl-bar-now', title: '操作' + } + ], + ], + done: function (res, curr, count) { + //如果是异步请求数据方式,res即为你接口返回的信息。 + //如果是直接赋值的方式,res即为:{data: [], count: 99} data为当前页数据、count为数据总长度 + var num = 0; + //已经充值的套餐 + admin.putTempData("t_nowProduct", ""); + res.data.forEach(element => { + if (element.proType == 1) { + if (element.enabled) { + num += element.orderAilightCount; + } else { + num += (element.orderAilightCount - element.ailightCount) + } + } + }); + $("#contractNum_not").val($("#contractNum").val() - num); + //将自定义的数量赋值 + zidingyiNum(); + } + }); + } + // 产品待充值数据 + var tempDataList = function (data) { + if (!strUtil.isEmpty(data)) { + var listData = admin.getTempData("t_tempProduct"); + if (strUtil.isEmpty(listData)) { + listData = new Array(); + } + listData.push(data); + admin.putTempData("t_tempProduct", listData); + } else { + admin.putTempData("t_tempProduct", ""); + } + } + //获取医院的地址 + var getHospitalAddress = function (id) { + admin.req('api-user/syshospital/' + id, {}, + function (data) { + if (data.code == 0) { + var hospitalData = data.data; + var hospitalProvince = hospitalData.hospitalProvince != null ? hospitalData.hospitalProvince : "" + var hospitalCity = hospitalData.hospitalCity != null ? hospitalData.hospitalCity : "" + var hospitalArea = hospitalData.hospitalArea != null ? hospitalData.hospitalArea : "" + $("#hospitalAreas").val(hospitalProvince + " " + hospitalCity + " " + hospitalArea); + } + + }, "get") + } + //限制自定义的时间 + function xianzhi() { + var custom_beginTimesd = laydate.render({ + elem: '#custom_beginTime', //指定元素 + min: $("#contractBeginTime").val(), + max: $("#contractEndTime").val(), + done: function (value, date, endDate) { + var startDate = new Date(value).getTime(); + var endTime = new Date($('#custom_endTime').val()).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#custom_beginTime').val($('#custom_endTime').val()); + } + } + }); + var custom_endTimes = laydate.render({ + elem: '#custom_endTime', //指定元素 + min: $("#contractBeginTime").val(), + max: $("#contractEndTime").val(), + done: function (value, date, endDate) { + var startDate = new Date($('#custom_beginTime').val()).getTime(); + var endTime = new Date(value).getTime(); + if (endTime < startDate) { + layer.msg('结束时间不能小于开始时间'); + $('#custom_endTime').val($('#custom_beginTime').val()); + } + } + }); + } + //获取软件的服务周期 + var getCycleTime = function (departmentId) { + admin.req('api-opration/productorderdetail/getContractBeginEndTimeAndNum', { departmentId: departmentId }, + function (data) { + if (data.code == 0) { + $("#contractBeginTime").val(layui.util.toDateString(data.data.beginTime, "yyyy-MM-dd")); + $("#contractEndTime").val(layui.util.toDateString(data.data.endTime, "yyyy-MM-dd")); + } + + }, "get") + } + + + //回显医院基本数据 + let hospitalData = admin.getTempData('t_hospital'); + + if (hospitalData != null) { + nowContract(); + + admin.req('api-user/sysdepartment/getPayMes?departmentId=' + hospitalData.departmentId, {}, + function (data) { + layer.closeAll('loading'); + if (0 === data.code) { + queryData = data.data; + if (queryData === true) { + admin.finishPopupCenter(); + layer.msg("当前科室开通了单次支付功能,不能进行充值业务!", { + icon: 3, + time: 5000 + }); + } else { + hospitalData.contractBeginTime = layui.util.toDateString(hospitalData.contractBeginTime, 'yyyy-MM-dd') + hospitalData.contractEndTime = layui.util.toDateString(hospitalData.contractEndTime, 'yyyy-MM-dd') + contractBeginTimeVVV = hospitalData.contractBeginTime + contractEndTimeVVV = hospitalData.contractEndTime + form.val('recharge-form', hospitalData); + $("#custom_beginTime").val(hospitalData.contractBeginTime) + $("#custom_endTime").val(hospitalData.contractEndTime) + //限制时间 + xianzhi(); + getCycleTime(hospitalData.departmentId); + getHospitalAddress(hospitalData.hospitalId); + //装载产品数据 + table.render({ + elem: '#product-table', + url: config.base_server + 'api-opration/product/all', + method: 'GET', + cellMinWidth: 50, + headers: { + 'Authorization': 'Bearer ' + config.getToken().access_token + }, + page: false, + where: { + is_del: 0, + enabled: 1 + }, + cols: [ + [{ + field: 'proName', + sort: true, + width: 330, + title: '产品名称', + align: 'center', + fixed: 'left' + }, + { + field: 'proType', + sort: true, + align: 'center', + width: 80, + templet: function (d) { + if (d.proType === 0) + return "试用" + else + return "正式" + }, + title: '类型' + }, + { + field: 'proTime', + width: 100, + title: '时长', + align: 'center', + templet: function (d) { + switch (d.proTimeUnit) { + case 0: + return d.proTime + "天"; + break; + case 1: + return d.proTime + "月"; + break; + case 2: + return d.proTime + "年"; + break; + } + } + }, + { + field: 'ailightCount', + width: 100, + align: 'center', + title: '读片量' + }, + { + field: 'recordCount', + width: 100, + align: 'center', + title: '报告量' + }, + { + field: 'beginTime', + align: 'center', + width: 120, + title: '开始日期', + event: "date" + }, + { + field: 'endTime', + align: 'center', + width: 120, + title: '结束日期', + event: "date" + }, + { + field: 'isShare', + fixed: 'right', + align: 'center', + width: 100, + templet: '#product-tpl-isShare', + title: '共享' + }, + { + field: 'id', + fixed: 'right', + align: 'center', + width: 100, + toolbar: '#product-tpl-bar', + title: '操作' + } + ] + ], + done: function (res) { + permissionsInput(res, config); + } + }); + } + } + else { + admin.finishPopupCenter(); + layer.msg("验证医院科室数据异常!", { + icon: 2, + time: 3000 + }); + } + }, 'get'); + //报告数量事件 + $("#contractNum").blur(function () { + if ($("#contractNum").val() <= 0) { + layer.msg("输入的读片量大于0"); + $("#contractNum").val("") + return false; + } + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if (item.proType == 1) { + listNum += item.ailightCount; + } + }) + } + if ($("#contractNum").val() < listNum) { + layer.msg("请先删除待充值套餐"); + $("#contractNum").val(contractNum) + return false; + } else { + contractNum = $("#contractNum").val(); + } + }) + //自定义的确定 + $("#custom_submit").click(function () { + var custom_proName = $("#custom_proName").val() + var custom_ailightCount = $("#custom_ailightCount").val() + var custom_isShare = $("#custom_isShare").prop("checked") ? 1 : 0; + var termType = $("#termType").prop("checked") ? 1 : 0; + var custom_beginTime = ""; + var custom_endTime = ""; + if (termType == 1) { + custom_beginTime = $("#custom_beginTime").val(); + custom_endTime = $("#custom_endTime").val(); + } else { + custom_beginTime = contractBeginTimeVVV + custom_endTime = contractEndTimeVVV + } + var listData = admin.getTempData("t_tempProduct"); + //添加一个id,删除用 + var max = 0; + if (strUtil.isEmpty(listData)) { + listData = new Array(); + } + listData.forEach(element => { + if (max < element.id) { + max = element.id + } + }); + //判断待加入产品的总数是否大于合同的总数 + var msg = isthenNum(parseInt(custom_ailightCount)); + if (msg != null) { + layer.msg(msg); + return false; + } + + var data = { + id: max + 1, + ailightCount: parseInt(custom_ailightCount), + beginTime: custom_beginTime, + endTime: custom_endTime, + isShare: custom_isShare, + proName: custom_proName, + proTime: "", + proType: 1, + termType: termType + } + tempDataList(data); + waitRecharge(); + }) + //确定充值按钮 + $("#submit").click(function () { + submit(); + }) + } + //已充值列表 功能操作 + table.on('tool(product-table-now)', function (obj) { + if (obj.event === "order_detail_del") { + if (!strUtil.isEmpty(obj.data.id)) { + admin.req('api-opration/productorderdetail/' + obj.data.id, {}, function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + layer.msg(data.msg, { icon: 1, time: 2000 }); + table.reload('product-table-now', {}); + } else { + layer.msg(data.msg, { icon: 2, time: 2000 }); + } + }, 'delete'); + obj.del(); + } + } else if (obj.event === "order_detail_enable") { + if (!strUtil.isEmpty(obj.data.id)) { + admin.req('api-opration/productorderdetail/updateEnabled', { + id: obj.data.id, + enabled: false + }, function (data) { + layer.closeAll('loading'); + if (data.code == 0) { + layer.msg(data.msg, { icon: 1, time: 2000 }); + table.reload('product-table-now', {}); + } else { + layer.msg(data.msg, { icon: 2, time: 2000 }); + form.render('checkbox'); + } + }, 'GET'); + obj.del(); + } + } + }); + //待充值列表功能操作 + table.on('tool(product-table-temp)', function (obj) { + if (obj.event === "del") { + if (!strUtil.isEmpty(obj.data.id)) { + delTempDataById(obj.data.id); + obj.del(); + //将自定义的数量赋值 + zidingyiNum(); + } + } + }); + //单元格点击事件 + table.on('tool(product-table)', function (obj) { + var newdata = {}; + var data = obj.data; + var selectData = {}; + if (obj.event === 'date') { + var field = $(this).data('field'); + laydate.render({ + elem: this.firstChild, + format: "yyyy-MM-dd", + show: true, + done: function (value, date) { + var nowTr = obj.tr; + if (field === "beginTime") { + var endTimes = getNowDate(data.proTime, data.proTimeUnit, + value); + newdata["beginTime"] = value; + newdata["endTime"] = endTimes; + } else if (field === "endTime") { + newdata["endTime"] = value; + var beginTimes = getNowDate((0 - parseInt(data.proTime)), + data.proTimeUnit, value); + newdata["beginTime"] = beginTimes; + } + obj.update(newdata); + } + }); + } + if (obj.event === "pay") { + data.beginTime = obj.tr.find("td[data-field='beginTime'] input").val(); + data.endTime = obj.tr.find("td[data-field='endTime'] input").val(); + data.beginTime = (!strUtil.isEmpty(data.beginTime)) ? data.beginTime : obj.tr.find( + "td[data-field='beginTime'] div").text(); + data.endTime = (!strUtil.isEmpty(data.endTime)) ? data.endTime : obj.tr.find( + "td[data-field='endTime'] div").text(); + data.isShare = obj.tr.find("td[data-field='isShare'] em").text(); + data.isShare = (data.isShare.indexOf("不") == 0) ? 0 : 1; + //判断待加入产品的总数是否大于合同的总数 + //试用产品不计算总数 + + if (data.proType == 1) { + var msg = isthenNum(parseInt(data.ailightCount)); + if (msg != null) { + layer.msg(msg); + return false; + } + } + //将所选的时间不得大于 合同的时间 + var contractBeginTime = $("#contractBeginTime").val(); + var contractEndTime = $("#contractEndTime").val(); + if (!strUtil.isEmpty(data.beginTime)) { + if (dateUtil.compareDate(contractBeginTime, data.beginTime)) { + layer.msg("开始时间必须大于合同的开始时间!"); + return false; + } + } + if (!strUtil.isEmpty(data.endTime)) { + if (dateUtil.compareDate(data.endTime, contractEndTime)) { + layer.msg("结束时间必须小于合同的结束时间!"); + return false; + } + } + if (!strUtil.isEmpty(data.beginTime) && !strUtil.isEmpty(data.endTime)) { + if (dateUtil.compareDate(data.endTime, data.beginTime)) { + data.id = data.id + ''; + tempDataList(data); + waitRecharge(); + //将自定义的数量赋值 + zidingyiNum() + } else { + layer.msg("结束时间必须大于开始时间!"); + return false; + } + } else { + layer.msg("时间格式有误!"); + return false; + } + } + }); + + // $("#contractNum_not").val($("#contractNum").val() - num); + function isthenNum(num) { + if (num <= 0) { + return "请输入合同读片充值量大于0"; + } + var listData = admin.getTempData("t_tempProduct"); + var listNum = 0; + if (!strUtil.isEmpty(listData)) { + listData.forEach(item => { + if (item.proType == 1) { + listNum += item.ailightCount; + } + }) + } + listNum += num; + if ($("#contractNum_not").val() == undefined || $("#contractNum_not").val() == "") { + return "请输入合同读片充值量!"; + } else { + if (parseInt($("#contractNum_not").val()) < listNum) { + return "当前产品总数不得大于合同读片充值量"; + } else { + return null; + } + } + } + //监听单元格编辑 判断日期格式 + table.on('edit(product-table)', function (obj) { + var value = obj.value //得到修改后的值 + , + data = obj.data //得到所在行所有键值 + , + field = obj.field; //得到字段 + if (dateUtil.isDate(value)) { } else { + layer.msg("输入的日期格式无效!"); + } + }); + //自动计算时间 + var getNowDate = function (proTime, proTimeUnit, now) { + if (strUtil.isEmpty(now)) { + now = new Date(); + } else { + now = dateUtil.strTurnDate(now); + } + if (strUtil.isEmpty(proTime) && strUtil.isEmpty(proTimeUnit)) { + return now.dateFormat("yyyy-MM-dd"); + } else { + proTime = strUtil.isEmpty(proTime) ? 0 : proTime; + proTimeUnit = strUtil.isEmpty(proTimeUnit) ? 0 : proTimeUnit; + switch (proTimeUnit) { + case 0: + return new Date(now.setDate(now.getDate() + proTime)).dateFormat("yyyy-MM-dd"); + break; + case 1: + return new Date(now.setMonth(now.getMonth() + proTime)).dateFormat( + "yyyy-MM-dd"); + break; + case 2: + return new Date(now.setFullYear(now.getFullYear() + proTime)).dateFormat( + "yyyy-MM-dd"); + break; + } + } + } + + //移除指定数据 + var delTempDataById = function (id) { + if (!strUtil.isEmpty(id)) { + var listData = admin.getTempData("t_tempProduct"); + $.each(listData, function (index, value) { + if (value.id === id) { + //移除 + listData.splice(index, 1); + return false; + } + }) + admin.putTempData("t_tempProduct", listData); + } + } + function submit() { + if (!isRun) { + layer.load(2); + var listData = admin.getTempData("t_tempProduct"); + var len = listData != null && listData.length > 0 ? listData.length : 0; + var count= 0; + if (listData != null) { + listData.forEach(element => { + if (element.proType == 1) { + count += element.ailightCount; + } + }); + } + if (count != $("#contractNum_not").val()) { + layer.closeAll('loading'); + layer.msg("合同未充值量与套餐充值量不一致") + return false; + } + if (listData != null && listData.length > 0) { + layer.confirm("确定要将待充值列表中的" + len + "个产品充值给当前医院的科室吗?", { + btn: ["确定", "返回"] + }, function () { + isRun = true; + layer.closeAll('loading'); + //处理订单明细数据 + var listDetailData = new Array(); + $.each(listData, function (index, item) { + var detailData = { + orderId: hospitalData.id + '', + proId: item.termType == null ? item.id + '' : "0", + proType: item.proType, + proName: item.proName, + isShare: item.isShare, + ailightCount: item.ailightCount != null ? item.ailightCount : 0, + recordCount: item.recordCount != null ? item.recordCount : 0, + termType: item.termType, + proBegintime: item.beginTime != "" ? item.beginTime + + ' 00:00:00' : "", + proEndtime: item.endTime != "" ? item.endTime + + ' 00:00:00' : "", + orderAilightCount: item.ailightCount, + orderRecordCount: item.recordCount != null ? item.recordCount : 0, + }; + listDetailData.push(detailData); + }) + if (listDetailData.length > 0) { + //提交订单数据 + admin.req( + 'api-opration/productorderdetail/saveall', + JSON.stringify(listDetailData), + function (data) { + isRun = false; + layer.closeAll('loading'); + if (data.code === 0) { + //现将临时数据清理 + admin.putTempData( + "t_tempProduct", + ""); + layer.msg(data.msg, { + icon: 1, + time: 2000 + }, function () { + admin + .finishPopupCenter(); + }); + } else { + layer.msg(data.msg, { + icon: 2, + time: 1000 + }); + layer.closeAll(); + layer.closeAll('loading'); + return false; + } + }, 'POST'); + } else { + layer.msg("充值数据异常为空!", { + icon: 2, + time: 1000 + }); + isRun = false; + } + }) + } else { + layer.msg("请先将要充值的产品加入待充值!", { + icon: 2, + time: 2000 + }); + layer.closeAll('loading'); + return false; + } + layer.closeAll('loading'); + return false; + } + }; + }); +</script> +<style> + .layui-form-label { + width: 100px; + } +</style> \ No newline at end of file diff --git a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html index ddfee6d..92bd631 100644 --- a/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html +++ b/kidgrow-web/kidgrow-web-manager/src/main/resources/static/pages/opration/saasClientPay.html @@ -106,7 +106,6 @@ layer.closeAll('loading'); if (0 === data.code) { let selected = false; - console.log(data.data) let id = 0; $("#departmentId").empty(); $.each(data.data, function (index, item) { @@ -143,7 +142,6 @@ layer.closeAll('loading'); if (0 === data.code) { let selected = false; - console.log(data.data) $("#doctorId").empty(); $.each(data.data, function (index, item) { //往下拉菜单里添加元素 @@ -152,7 +150,6 @@ } else { selected = false } - console.log(item) $('#doctorId').append(new Option(item.doctorName, item.id, false, selected)); form.render('select', 'doctor_clients'); diff --git a/pom.xml b/pom.xml index e62b831..b4fcfd1 100644 --- a/pom.xml +++ b/pom.xml @@ -566,17 +566,17 @@ </dependencyManagement> <repositories> -<!-- <repository>--> -<!-- <id>nexus-releases</id>--> -<!-- <name>team repository</name>--> -<!-- <url>http://192.168.2.240:8091/repository/maven-releases/</url>--> -<!-- <releases>--> -<!-- <enabled>true</enabled>--> -<!-- </releases>--> -<!-- <snapshots>--> -<!-- <enabled>false</enabled>--> -<!-- </snapshots>--> -<!-- </repository>--> + <repository> + <id>nexus-releases</id> + <name>team repository</name> + <url>http://192.168.2.240:8091/repository/maven-releases/</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> <repository> <id>alimaven</id> <name>aliyun maven</name> -- Gitblit v1.8.0