三七 4 тижнів тому
батько
коміт
ce2914e851

+ 2 - 0
fs-service/src/main/java/com/fs/his/dto/InquiryConfigDTO.java

@@ -20,4 +20,6 @@ public class InquiryConfigDTO implements Serializable {
     private BigDecimal companyPrice;
     private BigDecimal companyPrescribePrice;
     private String inquirySubType;
+    private String followMsg;
+    private String prescribeMsg;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/mapper/FsInquiryOrderMapper.java

@@ -415,4 +415,6 @@ public interface FsInquiryOrderMapper
             "create_time," +
             "update_time FROM fs_inquiry_order_hs_log WHERE book_no = #{bookNo}")
     InquiryOrderHsLog selectHsLogByBookNo(@Param("bookNo") String bookNo);
+
+    Long countByInquirySubTypeAndCreateTime(@Param("inquirySubType")Integer inquirySubType,@Param("date") String date);
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/service/IFsInquiryOrderService.java

@@ -133,4 +133,7 @@ public interface IFsInquiryOrderService
     R getWxaCodeInquiryOrderUnLimitR(Long orderId);
 
     void closeOrder(Long orderId);
+
+    Long countByInquirySubTypeAndCreateTime(Integer inquirySubType, String date);
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderServiceImpl.java

@@ -2053,5 +2053,10 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
         fsInquiryOrderMapper.closeOrder(orderId);
     }
 
+    @Override
+    public Long countByInquirySubTypeAndCreateTime(Integer inquirySubType, String date) {
+        return fsInquiryOrderMapper.countByInquirySubTypeAndCreateTime(inquirySubType,date);
+    }
+
 
 }

+ 12 - 0
fs-service/src/main/java/com/fs/his/vo/InquirySubTypeVo.java

@@ -0,0 +1,12 @@
+package com.fs.his.vo;
+
+import lombok.Data;
+
+@Data
+public class InquirySubTypeVo {
+    private String lable;
+    private Integer value;
+    private Long num; //限制数量
+    private Long actualNum; //实际数量
+    private Integer isCanBuy; //是否可以下单 0:不可以,1:可以
+}

+ 10 - 0
fs-service/src/main/resources/mapper/his/FsInquiryOrderMapper.xml

@@ -344,4 +344,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         and type = 1
     </select>
 
+
+    <select id="countByInquirySubTypeAndCreateTime" resultType="java.lang.Long">
+        SELECT IFNULL(COUNT(1), 0)
+        FROM fs_inquiry_order
+        WHERE
+            inquiry_sub_type = #{inquirySubType}
+          AND `status` IN (2,3)
+          AND create_time >= CONCAT(#{date}, ' 00:00:00')
+          AND create_time &lt; DATE_ADD(CONCAT(#{date}, ' 00:00:00'), INTERVAL 1 DAY)
+    </select>
 </mapper>

+ 43 - 0
fs-user-app/src/main/java/com/fs/app/controller/CommonController.java

@@ -26,6 +26,7 @@ import com.fs.common.core.domain.R;
 import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.core.redis.RedisCache;
 import com.fs.common.exception.file.OssException;
+import com.fs.common.utils.DateUtils;
 import com.fs.common.utils.file.FileUploadUtils;
 import com.fs.common.utils.http.HttpUtils;
 import com.fs.common.utils.sign.Md5Utils;
@@ -44,10 +45,12 @@ import com.fs.framework.config.ServerConfig;
 import com.fs.his.config.FsSmsConfig;
 import com.fs.his.config.FsSysConfig;
 import com.fs.his.domain.*;
+import com.fs.his.dto.InquiryConfigDTO;
 import com.fs.his.param.FsInquiryOrderFinishParam;
 import com.fs.his.service.*;
 
 import com.fs.his.utils.ConfigUtil;
+import com.fs.his.vo.InquirySubTypeVo;
 import com.fs.hisStore.mapper.FsWechatTemplateScrmMapper;
 import com.fs.hisStore.service.IFsWechatTemplateScrmService;
 import com.fs.im.dto.*;
@@ -352,6 +355,46 @@ public class CommonController {
 
 	}
 
+	@GetMapping(value = "/getInquiryConfig")
+	@ApiOperation("获取问诊配置")
+	public R getInquiryConfig()
+	{
+		String json=configService.selectConfigByKey("his.inquiryConfig");
+		InquiryConfigDTO configDTO= JSONUtil.toBean(json, InquiryConfigDTO.class);
+		Map<String, Object> result = new HashMap<>();
+		result.put("prices",configDTO.getPrices());
+		result.put("isAutoPrescribeAudit",configDTO.getIsAutoPrescribeAudit());
+		result.put("unPayCancelTime",configDTO.getUnPayCancelTime());
+		result.put("unReceiveCancelTime",configDTO.getUnReceiveCancelTime());
+		result.put("companyPrice",configDTO.getCompanyPrice());
+		result.put("companyPrescribePrice",configDTO.getCompanyPrescribePrice());
+		result.put("followMsg",configDTO.getFollowMsg());
+		result.put("prescribeMsg",configDTO.getPrescribeMsg());
+		result.put("inquirySubType",configDTO.getInquirySubType());
+		String inquirySubType = configDTO.getInquirySubType();
+		if (StringUtils.isNotBlank(inquirySubType)){
+			//查询现已下单数量
+			List<InquirySubTypeVo> list = JSON.parseArray(inquirySubType, InquirySubTypeVo.class);
+			if (list!=null&& !list.isEmpty()){
+				for (InquirySubTypeVo inquiryConfigDTO : list) {
+					Long num = inquiryConfigDTO.getNum();
+					Integer value = inquiryConfigDTO.getValue();
+					inquiryConfigDTO.setIsCanBuy(1);
+					if (num!=null && num > 0 && value != null){
+						Long actualNum =
+								inquiryOrderService.countByInquirySubTypeAndCreateTime(value, DateUtils.getDate());
+						if (actualNum!=null && actualNum > 0 && actualNum >= num){
+							inquiryConfigDTO.setIsCanBuy(0);
+						}
+					}
+				}
+				result.put("inquirySubType",list);
+			}
+		}
+		return  R.ok().put("data",JSON.toJSONString(result));
+
+	}
+
 
 	@PostMapping("uploadOSS")
 	public R uploadOSS(@RequestParam("file") MultipartFile file) throws Exception