zhangqin преди 3 дни
родител
ревизия
1cee4bfd34

+ 9 - 1
fs-common/src/main/java/com/fs/common/utils/ThumbnailatorWatermark.java

@@ -33,6 +33,14 @@ public class ThumbnailatorWatermark {
             URL watermarkURL = new URL(watermarkImageUrl);
             InputStream watermarkInputStream = watermarkURL.openStream();
             BufferedImage watermarkImage = ImageIO.read(watermarkInputStream);
+            // 缩放水印
+            // 2. 计算并缩放水印图尺寸 (例如:缩放到原图宽度的1/4)
+            int newWatermarkWidth = watermarkImage.getWidth() / 4;
+            // 按水印图原比例计算高度
+            int newWatermarkHeight = (int) ((double) newWatermarkWidth / watermarkImage.getWidth() * watermarkImage.getHeight());
+            BufferedImage scaledWatermark = Thumbnails.of(watermarkImage)
+                    .size(newWatermarkWidth, newWatermarkHeight)
+                    .asBufferedImage();
 
             // 创建签名图片
             BufferedImage signatureImage = createTextImageWithBorder(doctorName, Color.RED, 36,2);
@@ -41,7 +49,7 @@ public class ThumbnailatorWatermark {
             ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
             Thumbnails.of(inputStream)
                     .scale(1)
-                    .watermark(Positions.TOP_RIGHT, watermarkImage, 0.5f)
+                    .watermark(Positions.TOP_RIGHT, scaledWatermark, 0.5f)
                     .watermark(
                             new AbsolutePosition(860, 1340), // 使用自定义坐标位置
                             signatureImage,

+ 16 - 1
fs-doctor-app/src/main/java/com/fs/app/controller/PrescribeController.java

@@ -1,6 +1,7 @@
 package com.fs.app.controller;
 
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
@@ -19,6 +20,8 @@ import com.fs.his.service.*;
 import com.fs.his.vo.FsDoctorPrescribeListDVO;
 import com.fs.his.vo.FsPrescribeListDVO;
 import com.fs.hisStore.config.MedicalMallConfig;
+import com.fs.hisStore.domain.FsStoreProductScrm;
+import com.fs.hisStore.service.IFsStoreProductScrmService;
 import com.fs.hospital580.entity.Hospital580PrescriptionMedicineScrmEntity;
 import com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity;
 import com.fs.hospital580.service.Hospital580PrescriptionMedicineScrmService;
@@ -75,6 +78,9 @@ public class PrescribeController extends  AppBaseController {
     private Hospital580PrescriptionScrmService orderScrmService;
     @Autowired
     private Hospital580PrescriptionMedicineScrmService medicineScrmService;
+
+    @Autowired
+    private IFsStoreProductScrmService productScrmService;
     @Login
     @GetMapping("/getDoctorPrescribeList")
     public R getDoctorPrescribeList(FsDoctorPrescribeListDParam param)
@@ -100,6 +106,7 @@ public class PrescribeController extends  AppBaseController {
                     new Page<Hospital580PrescriptionScrmEntity>(param.getPageNum(), param.getPageSize())
                     , new LambdaQueryWrapper<Hospital580PrescriptionScrmEntity>()
                             .eq(Hospital580PrescriptionScrmEntity::getAuditApothecaryId,param.getDoctorId())
+                            .eq(ObjectUtil.isNotEmpty(param.getStatus()),Hospital580PrescriptionScrmEntity::getAuditStatus,param.getStatus())
                             .orderByDesc(Hospital580PrescriptionScrmEntity::getCreateTime)
             );
             List<FsPrescribeListDVO> list = page.getRecords().stream()
@@ -114,6 +121,7 @@ public class PrescribeController extends  AppBaseController {
                         vo.setPrescribeImgUrl(order.getDstFilePath());
                         vo.setAuditReason(order.getReason());
                         vo.setDiagnose(order.getTags());
+                        vo.setAuditStatus(order.getAuditStatus());
                         vo.setAuditTime(Date.from(order.getAuditTime().atZone(ZoneId.of("Asia/Shanghai")).toInstant()));
                         vo.setCreateTime(Date.from(order.getCreateTime().atZone(ZoneId.of("Asia/Shanghai")).toInstant()));
 
@@ -122,16 +130,18 @@ public class PrescribeController extends  AppBaseController {
                         vo.setDrugs(list1.stream()
                                 .map(medicine -> {
                                     FsPrescribeDrug drug = new FsPrescribeDrug();
+                                    FsStoreProductScrm fsStoreProductScrm = productScrmService.selectFsStoreProductById(Long.valueOf(medicine.getCommodityCode()));
+                                    BeanUtil.copyProperties(fsStoreProductScrm, drug);
                                     drug.setDrugName(medicine.getDrugName());
                                     drug.setDrugNum(Long.valueOf(medicine.getAmount()));
                                     drug.setUsageMethod(medicine.getInstructions());
                                     drug.setDrugSpec(medicine.getSpec());
+                                    drug.setDrugImgUrl(fsStoreProductScrm.getImage());
                                     return drug;
                                 })
                                 .collect(Collectors.toList()));
                         return vo;
                     })
-                    .filter(Objects::nonNull)
                     .collect(Collectors.toList());
             PageInfo<FsPrescribeListDVO> listPageInfo=new PageInfo<>(list);
             return R.ok().put("data",listPageInfo);
@@ -180,6 +190,11 @@ public class PrescribeController extends  AppBaseController {
     @Synchronized
     public R audit(@Validated @RequestBody FsPrescribeAuditParam param, HttpServletRequest request){
         param.setDoctorId(Long.parseLong(getDoctorId()));
+        if (getPrescribeType()){
+            param.setType(2);
+            prescribeService.audit580(param);
+            return R.ok("操作成功");
+        }
         return prescribeService.audit(param);
     }
 

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

@@ -220,4 +220,7 @@ public interface FsDoctorMapper
      * 根据医生id集合查询列表
      */
     List<FsDoctorListUVO> getFsDoctorListUVOListByIds(@Param("doctorIds") List<Long> doctorIds);
+
+    @Select("SELECT * FROM fs_doctor WHERE store_id=#{storeId} and doctor_type = 2 and  `status`=1 and is_audit=1  ORDER BY RAND() LIMIT 1; ")
+    FsDoctor findByStoreId(@Param("storeId") Long storeId);
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/param/FsPrescribeAuditParam.java

@@ -11,4 +11,6 @@ public class FsPrescribeAuditParam extends BaseParam implements Serializable {
     Integer status;//1通过 2不通过
     String auditReason;//拒绝原因
 
+    Integer type = 1;//1自动2手动
+
 }

+ 7 - 0
fs-service/src/main/java/com/fs/his/service/IFsDoctorService.java

@@ -115,4 +115,11 @@ public interface IFsDoctorService
      * 查询医生选择列表
      */
     List<FsDoctorChooseVO> getChooseDoctorListByMap(Map<String, Object> params);
+
+    /**
+     * 随机获取一个药师
+     * @param storeId
+     * @return
+     */
+    FsDoctor findByStoreId(Long storeId);
 }

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

@@ -504,4 +504,9 @@ public class FsDoctorServiceImpl implements IFsDoctorService
         return fsDoctorMapper.getChooseDoctorListByMap(params);
     }
 
+    @Override
+    public FsDoctor findByStoreId(Long storeId) {
+        return fsDoctorMapper.findByStoreId(storeId);
+    }
+
 }

+ 11 - 2
fs-service/src/main/java/com/fs/his/service/impl/FsPrescribeServiceImpl.java

@@ -1,6 +1,7 @@
 package com.fs.his.service.impl;
 
 import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -25,6 +26,8 @@ import com.fs.his.service.IFsStoreOrderService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.utils.qrcode.QRCodeUtils;
 import com.fs.his.vo.*;
+import com.fs.hisStore.domain.FsStoreProductScrm;
+import com.fs.hisStore.service.IFsStoreProductScrmService;
 import com.fs.hospital580.entity.Hospital580PrescriptionScrmEntity;
 import com.fs.hospital580.service.Hospital580PrescriptionScrmService;
 import com.fs.im.dto.MsgCustomDTO;
@@ -92,6 +95,9 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
 
     @Autowired
     private ISysConfigService configService;
+
+    @Autowired
+    private IFsStoreProductScrmService productScrmService;
     /**
      * 查询处方
      *
@@ -796,10 +802,13 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
                 .eq(Hospital580PrescriptionScrmEntity::getPrescriptionStatus, 1)
                 .eq(Hospital580PrescriptionScrmEntity::getAuditStatus, 1));
         for (Hospital580PrescriptionScrmEntity fsPrescribe : prescriptionScrmEntities) {
+
+            // 查询商品信息
+            FsStoreProductScrm fsStoreProductScrm = productScrmService.selectFsStoreProductById(fsPrescribe.getStoreOrderId());
             // 西药
-            Long id = doctorMapper.selectFsDoctorType2Ids(1);
+            FsDoctor id = doctorMapper.findByStoreId(fsStoreProductScrm.getStoreId());
             FsPrescribeAuditParam param=new FsPrescribeAuditParam();
-            param.setDoctorId(id);
+            param.setDoctorId(id.getDoctorId());
             param.setPrescribeId(fsPrescribe.getPreId());
             param.setStatus(1);
             audit580(param);

+ 2 - 1
fs-service/src/main/java/com/fs/his/vo/FsPrescribeListDVO.java

@@ -56,7 +56,8 @@ public class FsPrescribeListDVO implements Serializable {
     private Integer recipeType;
 
     List<FsPrescribeDrug> drugs;
-
+    // 处方审核状态:1为待审核,2为审核通过,3为审核不通过
+    private Integer auditStatus;
 
 
 }

+ 17 - 3
fs-user-app/src/main/java/com/fs/app/facade/impl/Hospital580FacadeServiceImpl.java

@@ -14,9 +14,10 @@ import com.fs.app.exception.FSException;
 import com.fs.app.facade.Hospital580FacadeService;
 import com.fs.common.core.domain.PageResponse;
 import com.fs.common.core.domain.Result;
-import com.fs.common.core.page.PageRequest;
 import com.fs.framework.aspectj.lock.DistributeLock;
+import com.fs.his.domain.FsDoctor;
 import com.fs.his.domain.FsPatient;
+import com.fs.his.service.IFsDoctorService;
 import com.fs.his.service.IFsPatientService;
 import com.fs.his.utils.PhoneUtil;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
@@ -73,12 +74,16 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
 
     @Autowired
     private IFsStoreOrderScrmService orderService;
+
+    @Autowired
+    private IFsDoctorService doctorService;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     @DistributeLock(key = "#vo.userId", scene = "savePreDemand", waitTime = 5000, errorMsg = "新增问诊信息失败")
     public Result<String> savePreDemand(SaveOrderScrmReq vo) {
         // 校验是否存在问诊单
-        if (orderScrmService.isByStoreOrder(vo.getStoreOrderId())){
+        if (orderScrmService.isByStoreOrder(vo.getStoreOrderId())) {
             throw new FSException("您已存在未处理的问诊单");
         }
 
@@ -143,6 +148,15 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
         BeanUtil.copyProperties(vo, prescription);
         prescription.setPrescriptionStatus(vo.getStatus());
         prescription.setAuditStatus(1);
+        // 查询订单信息
+        FsStoreOrderScrm fsStoreOrderScrm = orderService.selectFsStoreOrderById(prescription.getStoreOrderId());
+        // 查询药剂师
+        FsDoctor fsDoctor = doctorService.findByStoreId(fsStoreOrderScrm.getStoreId());
+        if (ObjectUtil.isNotEmpty(fsDoctor)){
+            prescription.setAuditApothecaryName(fsDoctor.getDoctorName());
+            prescription.setAuditApothecaryId(fsDoctor.getDoctorId());
+        }
+
         // 更新处方记录
         prescription.updateById();
         List<PrescriptionMedicineScrmVo> drugRspList = vo.getDrugRspList();
@@ -223,7 +237,7 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
         IPage<Hospital580PrescriptionScrmEntity> page = orderScrmService.page(
                 new Page<Hospital580PrescriptionScrmEntity>(pageRequest.getPageNum(), pageRequest.getPageSize())
                 , new LambdaQueryWrapper<Hospital580PrescriptionScrmEntity>()
-                        .eq(ObjectUtil.isNotEmpty(pageRequest.getStatus()),Hospital580PrescriptionScrmEntity::getStatus, pageRequest.getStatus()).eq(Hospital580PrescriptionScrmEntity::getUserId,userId)
+                        .eq(ObjectUtil.isNotEmpty(pageRequest.getStatus()), Hospital580PrescriptionScrmEntity::getStatus, pageRequest.getStatus()).eq(Hospital580PrescriptionScrmEntity::getUserId, userId)
                         .orderByDesc(Hospital580PrescriptionScrmEntity::getCreateTime)
         );
         List<Hospital580PrescriptionScrmEntity> orderRecords = page.getRecords();