소스 검색

Merge remote-tracking branch 'origin/ScrmStores' into ScrmStores

yjwang 1 주 전
부모
커밋
eaa7f58f63

+ 8 - 7
fs-admin/src/main/java/com/fs/hisStore/facade/impl/FsStore580FacadeServiceImpl.java

@@ -19,8 +19,10 @@ import com.fs.hospital580.vo.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 import java.util.Objects;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 @Service("fsStore580FacadeService")
@@ -79,12 +81,11 @@ public class FsStore580FacadeServiceImpl implements FsStore580FacadeService {
 
     @Override
     public List<OrderChatScrmVo> chatDetail(Long preId) {
-        Hospital580PrescriptionChatScrmEntity one = chatScrmService.getOne(new LambdaQueryWrapper<Hospital580PrescriptionChatScrmEntity>().eq(Hospital580PrescriptionChatScrmEntity::getPreId, preId));
-        String content = one.getContent();
-        JSONArray objects = JSONUtil.parseArray(content);
-        List<OrderChatScrmVo> list = objects.stream()
-                .map(obj -> JSONUtil.toBean((JSONObject) obj, OrderChatScrmVo.class))
-                .collect(Collectors.toList());
-        return list;
+        return Optional.ofNullable(chatScrmService.getOne(new LambdaQueryWrapper<Hospital580PrescriptionChatScrmEntity>()
+                        .eq(Hospital580PrescriptionChatScrmEntity::getPreId, preId)))
+                .map(entity -> JSONUtil.parseArray(entity.getContent()).stream()
+                        .map(obj -> JSONUtil.toBean((JSONObject) obj, OrderChatScrmVo.class))
+                        .collect(Collectors.toList()))
+                .orElse(Collections.emptyList());
     }
 }

+ 1 - 1
fs-common/src/main/java/com/fs/common/core/domain/PageResponse.java

@@ -46,7 +46,7 @@ public class PageResponse<T> implements Serializable {
         pageResponse.setTotal(total);
         pageResponse.setPageSize(pageSize);
         pageResponse.setCurrentPage(currentPage);
-        pageResponse.setTotalPage((pageSize + total - 1) / currentPage);
+        pageResponse.setTotalPage((pageSize + total - 1) / pageSize);
         return pageResponse;
     }
 }

+ 3 - 1
fs-common/src/main/java/com/fs/common/core/page/PageRequest.java

@@ -3,10 +3,12 @@ package com.fs.common.core.page;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
+
 
 @Setter
 @Getter
-public class PageRequest {
+public class PageRequest implements Serializable {
     /**
      * 当前页
      */

+ 21 - 0
fs-service/src/main/java/com/fs/hospital580/config/Hospital580Config.java

@@ -0,0 +1,21 @@
+package com.fs.hospital580.config;
+
+import lombok.Getter;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+@Getter
+@Setter
+@ConfigurationProperties(prefix = "hospital580")
+public class Hospital580Config {
+
+    private String url;
+
+    private String clientId;
+
+    private String secretKey;
+
+    private String storeId;
+
+    private String callbackUrl;
+}

+ 9 - 0
fs-service/src/main/java/com/fs/hospital580/config/Hospital580Configuration.java

@@ -0,0 +1,9 @@
+package com.fs.hospital580.config;
+
+import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@EnableConfigurationProperties({Hospital580Config.class})
+public class Hospital580Configuration {
+}

+ 17 - 16
fs-service/src/main/java/com/fs/hospital580/service/impl/Hospital580ServiceImpl.java

@@ -3,28 +3,25 @@ package com.fs.hospital580.service.impl;
 
 import cn.hutool.http.HttpRequest;
 import cn.hutool.json.JSONUtil;
+import com.fs.hospital580.config.Hospital580Config;
 import com.fs.hospital580.dto.*;
 import com.fs.hospital580.entity.Hospital580ScrmEntity;
 import com.fs.hospital580.service.Hospital580Service;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Value;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 
 @Service
 @Slf4j
 public class Hospital580ServiceImpl implements Hospital580Service {
-    @Value("${hospital580.url:''}")
-    private String HOSPITAL_580_URL;
-    @Value("${hospital580.clientId:''}")
-    private String CLIENTID;
-    @Value("${hospital580.secretKey:''}")
-    private String SECRETKEY;
-    @Value("${hospital580.storeId:''}")
-    private String storeId;
-    @Value("${hospital580.callbackUrl:''}")
-    private String CALLBACKURL;
+    
+    @Autowired
+    private Hospital580Config hospital580Config;
+    
     /**
      * 4.7 同步药品信息接口-580提供
      */
@@ -41,32 +38,36 @@ public class Hospital580ServiceImpl implements Hospital580Service {
     private static final String TEXTRECORD_PATH = "/v1_0/ehospital/openapi/kz/textRecord/list";
 
     @Override
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public Result580 syncMedicine(MedicineDto dto) {
-        dto.setCallbackUrl(CALLBACKURL);
+        dto.setCallbackUrl(hospital580Config.getCallbackUrl());
         return requestResult580(dto, MEDICINE_PATH);
 
     }
 
 
     @Override
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public Result580 initPreDemand(PreDemandDto dto) {
-        dto.setStoreId(storeId);
+        dto.setStoreId(hospital580Config.getStoreId());
         return requestResult580(dto, PREDEMAND_PATH);
     }
 
     @Override
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public Result580 disease(DiseaseDto dto) {
         return requestResult580(dto, DISEASE_PATH);
     }
 
     @Override
+    @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public Result580 textRecord(TextRecordDto dto) {
         return requestResult580(dto, TEXTRECORD_PATH);
     }
 
     private <T extends CommonDto> Result580 requestResult580(T t, String path) {
-        t.initCommonDto(CLIENTID, SECRETKEY);
-        String url = HOSPITAL_580_URL + path;
+        t.initCommonDto(hospital580Config.getClientId(), hospital580Config.getSecretKey());
+        String url = hospital580Config.getUrl() + path;
         String body = JSONUtil.toJsonStr(t);
         String result;
         Result580 result580;
@@ -143,4 +144,4 @@ public class Hospital580ServiceImpl implements Hospital580Service {
         System.out.println("测试完成");
     }*/
 
-}
+}

+ 13 - 0
fs-service/src/main/java/com/fs/hospital580/vo/req/PrescriptionListReq.java

@@ -0,0 +1,13 @@
+package com.fs.hospital580.vo.req;
+
+import com.fs.common.core.page.PageRequest;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class PrescriptionListReq extends PageRequest  {
+    private Byte status;
+}

+ 13 - 9
fs-user-app/src/main/java/com/fs/app/controller/Hospital580CallbackController.java

@@ -1,5 +1,6 @@
 package com.fs.app.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.fs.app.facade.Hospital580FacadeService;
 import com.fs.hospital580.vo.MedicineSyncVo;
 import com.fs.hospital580.vo.RefusePrescriptionVo;
@@ -27,31 +28,34 @@ public class Hospital580CallbackController {
      * 4.14 同步药品信息接口回调
      */
     @PostMapping("/medicine")
-    public void medicineSync(@RequestBody MedicineSyncVo map) {
-        hospital580FacadeService.medicineSync(map);
+    public void medicineSync(@RequestBody Object vo) {
+        MedicineSyncVo req = BeanUtil.toBean(vo, MedicineSyncVo.class);
+        hospital580FacadeService.medicineSync(req);
     }
 
     /**
      * 4.10 处方推送接口
      */
     @PostMapping("/prescription")
-    public void prescription(@RequestBody Prescription580Req vo) {
-        hospital580FacadeService.prescription(vo);
+    public void prescription(@RequestBody Object vo) {
+        Prescription580Req req = BeanUtil.toBean(vo, Prescription580Req.class);
+        hospital580FacadeService.prescription(req);
     }
-
     /**
      * 4.15 医生拒绝开方推送接口
      */
     @PostMapping("/refusePrescription")
-    public void refusePrescription(@RequestBody RefusePrescriptionVo vo) {
-        hospital580FacadeService.refusePrescription(vo);
+    public void refusePrescription(@RequestBody Object vo) {
+        RefusePrescriptionVo req = BeanUtil.toBean(vo, RefusePrescriptionVo.class);
+        hospital580FacadeService.refusePrescription(req);
     }
 
     /**
      * 4.13 处方药师审核
      */
     @PostMapping("/reviewPrescription")
-    public void reviewPrescription(@RequestBody ReviewPrescriptionVo vo) {
-        hospital580FacadeService.reviewPrescription(vo);
+    public void reviewPrescription(@RequestBody Object vo) {
+        ReviewPrescriptionVo req = BeanUtil.toBean(vo, ReviewPrescriptionVo.class);
+        hospital580FacadeService.reviewPrescription(req);
     }
 }

+ 2 - 1
fs-user-app/src/main/java/com/fs/app/controller/Hospital580Controller.java

@@ -6,6 +6,7 @@ import com.fs.common.core.domain.PageResponse;
 import com.fs.common.core.domain.Result;
 import com.fs.common.core.page.PageRequest;
 import com.fs.hospital580.vo.req.DiseaseReq;
+import com.fs.hospital580.vo.req.PrescriptionListReq;
 import com.fs.hospital580.vo.req.SaveOrderScrmReq;
 import com.fs.hospital580.vo.res.DiseaseQueryRes;
 import com.fs.hospital580.vo.res.PrescriptionDetailRes;
@@ -45,7 +46,7 @@ public class Hospital580Controller extends AppBaseController {
     @ApiOperation(value = "处方订单列表")
     @Login
     @PostMapping("/prescriptionList")
-    public PageResponse<PrescriptionListRes> prescriptionList(@RequestBody PageRequest pageRequest) {
+    public PageResponse<PrescriptionListRes> prescriptionList(@RequestBody PrescriptionListReq pageRequest) {
         return hospital580FacadeService.prescriptionList(getUserId(), pageRequest);
     }
 

+ 2 - 1
fs-user-app/src/main/java/com/fs/app/facade/Hospital580FacadeService.java

@@ -4,6 +4,7 @@ import com.fs.common.core.domain.PageResponse;
 import com.fs.common.core.page.PageRequest;
 import com.fs.hospital580.vo.req.DiseaseReq;
 import com.fs.hospital580.vo.req.Prescription580Req;
+import com.fs.hospital580.vo.req.PrescriptionListReq;
 import com.fs.hospital580.vo.req.SaveOrderScrmReq;
 import com.fs.hospital580.vo.res.DiseaseQueryRes;
 import com.fs.common.core.domain.Result;
@@ -24,7 +25,7 @@ public interface Hospital580FacadeService {
 
     void medicineSync(MedicineSyncVo vo);
 
-    PageResponse<PrescriptionListRes> prescriptionList(String userId, PageRequest pageRequest);
+    PageResponse<PrescriptionListRes> prescriptionList(String userId, PrescriptionListReq pageRequest);
 
     Result<PrescriptionDetailRes> prescriptionDetail(String userId, Long orderId);
 }

+ 12 - 9
fs-user-app/src/main/java/com/fs/app/facade/impl/Hospital580FacadeServiceImpl.java

@@ -35,6 +35,7 @@ import com.fs.hospital580.vo.RefusePrescriptionVo;
 import com.fs.hospital580.vo.ReviewPrescriptionVo;
 import com.fs.hospital580.vo.req.DiseaseReq;
 import com.fs.hospital580.vo.req.Prescription580Req;
+import com.fs.hospital580.vo.req.PrescriptionListReq;
 import com.fs.hospital580.vo.req.SaveOrderScrmReq;
 import com.fs.hospital580.vo.res.DiseaseQueryRes;
 import com.fs.hospital580.vo.res.PrescriptionDetailRes;
@@ -87,6 +88,8 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
         order.setUserFamilyName(fsPatient.getPatientName());
         order.setUserFamilyGender(fsPatient.getSex().byteValue());
         order.setUserFamilyAge(Period.between(fsPatient.getBirthday().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), LocalDate.now()).getYears());
+        order.setCreateTime(LocalDateTime.now());
+        order.setStatus((byte) 0);
         order.insert();
 
         // 保存问诊答案
@@ -149,19 +152,19 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
 
         ThreadUtil.execute(() -> {
             // 同步聊天记录
-            TextRecordDto build = TextRecordDto.builder().diagnosisId(prescription.getDiagnosisId()).pageSize(1).pageNum(100).build();
+            TextRecordDto build = TextRecordDto.builder().diagnosisId(prescription.getDiagnosisId()).pageSize(100).pageNum(1).build();
             Result580 result580 = hospital580Service.textRecord(build);
             JSONObject jsonObject = JSONUtil.parseObj(result580.getData());
             if (jsonObject.getInt("rowCount") > build.getPageSize()) {
                 build.setPageSize(jsonObject.getInt("rowCount"));
                 result580 = hospital580Service.textRecord(build);
                 jsonObject = JSONUtil.parseObj(result580.getData());
-                JSONArray data = jsonObject.getJSONArray("data");
-                Hospital580PrescriptionChatScrmEntity chatScrmEntity = new Hospital580PrescriptionChatScrmEntity();
-                chatScrmEntity.setContent(data.toString());
-                chatScrmEntity.setPreId(prescription.getPreId());
-                chatScrmEntity.insert();
             }
+            JSONArray data = jsonObject.getJSONArray("list");
+            Hospital580PrescriptionChatScrmEntity chatScrmEntity = new Hospital580PrescriptionChatScrmEntity();
+            chatScrmEntity.setContent(data.toString());
+            chatScrmEntity.setPreId(prescription.getPreId());
+            chatScrmEntity.insert();
         });
     }
 
@@ -206,13 +209,13 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
     }
 
     @Override
-    public PageResponse<PrescriptionListRes> prescriptionList(String userId, PageRequest pageRequest) {
+    public PageResponse<PrescriptionListRes> prescriptionList(String userId, PrescriptionListReq pageRequest) {
         // 问诊列表
         IPage<Hospital580PrescriptionScrmEntity> page = orderScrmService.page(
                 new Page<Hospital580PrescriptionScrmEntity>(pageRequest.getPageNum(), pageRequest.getPageSize())
                 , new LambdaQueryWrapper<Hospital580PrescriptionScrmEntity>()
-                        //.eq(Hospital580PrescriptionScrmEntity::getUserId, userId)
-                        .orderByDesc(Hospital580PrescriptionScrmEntity::getCreatedTime)
+                        .eq(ObjectUtil.isNotEmpty(pageRequest.getStatus()),Hospital580PrescriptionScrmEntity::getStatus, pageRequest.getStatus())
+                        .orderByDesc(Hospital580PrescriptionScrmEntity::getCreateTime)
         );
         List<Hospital580PrescriptionScrmEntity> orderRecords = page.getRecords();
         // 构建返回结果

+ 8 - 6
fs-user-app/src/main/java/com/fs/framework/aspectj/Hospital580Aspect.java

@@ -2,12 +2,14 @@ package com.fs.framework.aspectj;
 
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
+import com.fs.hospital580.config.Hospital580Config;
 import com.fs.hospital580.util.ObjectApiSignUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.aspectj.lang.JoinPoint;
 import org.aspectj.lang.annotation.Aspect;
 import org.aspectj.lang.annotation.Before;
 import org.aspectj.lang.annotation.Pointcut;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
@@ -17,8 +19,8 @@ import org.springframework.stereotype.Component;
 public class Hospital580Aspect {
 
 
-    @Value("${hospital580.secretKey:''}")
-    private String SECRETKEY;
+    @Autowired
+    private Hospital580Config hospital580Config;
 
 
     @Pointcut("execution(* com.fs.app.controller.Hospital580CallbackController.*(..))")
@@ -35,13 +37,13 @@ public class Hospital580Aspect {
         String methodName = joinPoint.getSignature().getName();
         Object[] args = joinPoint.getArgs();
         Object parm = args[0];
-        log.info("580医院请求:{} {}", methodName,JSONUtil.toJsonStr(parm));
         JSONObject entries = JSONUtil.parseObj(parm);
+        log.info("580医院请求:{} {}", methodName,entries);
         String sign1 = entries.getStr("sign");
-        String sign = ObjectApiSignUtil.getSign(parm, SECRETKEY);
-/*        if (!sign1.equals(sign)) {
+        String sign = ObjectApiSignUtil.getSign(parm, hospital580Config.getSecretKey());
+        if (!sign1.equals(sign)) {
             log.info("验签失败");
             throw new RuntimeException("验签失败");
-        }*/
+        }
     }
 }