소스 검색

项目录入问题

xiaochan 2 년 전
부모
커밋
123e281f99

+ 11 - 0
src/main/java/thyyxxk/webserver/controller/inpatient/XiangMuLuRuController.java

@@ -3,6 +3,7 @@ package thyyxxk.webserver.controller.inpatient;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 import thyyxxk.webserver.aop.interfaces.NeedYbCode;
@@ -11,10 +12,12 @@ import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
+import thyyxxk.webserver.entity.projectEntry.DrugReturnForm;
 import thyyxxk.webserver.service.inpatient.XiangMuLuRuService;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -158,5 +161,13 @@ public class XiangMuLuRuController {
     public ResultVo<String> xiuGaiZiFeiBiaoZhi(@RequestBody @Validated ZyDetailCharge param) throws Exception {
         return service.xiuGaiZiFeiBiaoZhi(param);
     }
+
+    @GetMapping("/drugRefundForm")
+    public ResultVo<Map<String, Map<String, DrugReturnForm>>> drugRefundForm(@RequestParam("groupNo") String groupNo,
+                                                                             @RequestParam("patNo") String patNo,
+                                                                             @RequestParam("times") Integer times) {
+        return service.drugRefundForm(groupNo, patNo, times);
+    }
+
 }
 

+ 28 - 2
src/main/java/thyyxxk/webserver/dao/his/inpatient/XiangMuLuRuDao.java

@@ -11,6 +11,7 @@ import thyyxxk.webserver.entity.datamodify.FeiYongLeiXin;
 import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
 import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.inpatient.WeiGuiFeiYongFenXi;
+import thyyxxk.webserver.entity.projectEntry.DrugReturnForm;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -449,13 +450,13 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
     @Insert("<script>" +
             "insert into yz_yp_zy_order (inpatient_no, admiss_times, name, bed_no, dept_code, ward_code, charge_code, amount,\n" +
             "                            retprice, charge_date, infant_flag, drawer, always_flag, status_flag, drug_class, \n" +
-            "                            occ_time, act_order_no, serial, group_no, doctor_name, page_no_ty, page_class,ledger_sn,detail_sn,serail)\n" +
+            "                            occ_time, act_order_no, serial, group_no, doctor_name, page_no_ty,ledger_sn,detail_sn,serail,page_class)\n" +
             "values " +
             "<foreach collection='list' item='item' index='index' separator=','>" +
             "(#{patNo}, #{times}, #{name}, #{bedNo}, #{wardCode},  #{wardCode}, #{item.chargeCodeMx}, #{item.chargeAmount,jdbcType=REAL},\n" +
             "        #{item.chargeFee,jdbcType=REAL}, getdate(), #{infantFlag}, #{userCode}, 'a', '1',\n" +
             "       #{item.drugClass},  getdate(), ${index}, #{item.serial}, #{groupNo},\n" +
-            "       #{item.doctorCode}, #{pageNo}, null,#{ledgerSn},#{item.detailSn},0)" +
+            "       #{item.doctorCode}, #{pageNo},#{ledgerSn},#{item.detailSn},0,'HT')" +
             "</foreach>" +
             "</script>")
     void detailsOfDrugReturnForm(@Param("list") List<ZyDetailCharge> list,
@@ -1240,4 +1241,29 @@ public interface XiangMuLuRuDao extends BaseMapper<ZyDetailCharge> {
     @Update("update zy_detail_charge set yb_self_flag = 0 ${ew.customSqlSegment}")
     void xiuGaiZiFeiZhiYiBaoBiaoZhi(@Param(Constants.WRAPPER) Wrapper<?> wq);
 
+
+    @Select("select a.charge_code,\n" +
+            "       b.name         as drug_name,\n" +
+            "       b.specification,\n" +
+            "       a.amount,\n" +
+            "       a.retprice,\n" +
+            "       b.pack_retprice,\n" +
+            "       a.inpatient_no as pat_no,\n" +
+            "       a.name,\n" +
+            "       page_class,\n" +
+            "       page_no_ty\n" +
+            "from yz_yp_zy_order a,\n" +
+            "     yp_zd_dict b\n" +
+            "where a.inpatient_no = #{patNo}\n" +
+            "  and a.admiss_times = #{times}" +
+            "  and a.dept_code = #{deptCode}\n" +
+            "  and a.status_flag = 1\n" +
+            "  and page_class = 'HT'\n" +
+            "  and a.charge_code = b.code\n" +
+            "  and a.serial = b.serial")
+    List<DrugReturnForm> queryTheDrugReturnForm(@Param("deptCode") String deptCode,
+                                                @Param("groupNo") String groupNo,
+                                                @Param("patNo") String patNo,
+                                                @Param("times") Integer times);
+
 }

+ 48 - 0
src/main/java/thyyxxk/webserver/entity/projectEntry/DrugReturnForm.java

@@ -0,0 +1,48 @@
+package thyyxxk.webserver.entity.projectEntry;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class DrugReturnForm {
+    /**
+     * 项目编码
+     */
+    private String chargeCode;
+    /**
+     * 名称
+     */
+    private String drugName;
+    /**
+     * 规格
+     */
+    private String specification;
+    /**
+     * 数量
+     */
+    private BigDecimal amount;
+    /**
+     * 金额
+     */
+    private BigDecimal retprice;
+    /**
+     * 单价
+     */
+    private BigDecimal packRetprice;
+
+    /**
+     * 住院好
+     */
+    private String patNo;
+
+    /**
+     * 名称
+     */
+    private String name;
+
+    /**
+     * 退药单
+     */
+    private String pageNoTy;
+}

+ 36 - 11
src/main/java/thyyxxk/webserver/service/inpatient/XiangMuLuRuService.java

@@ -20,6 +20,7 @@ import thyyxxk.webserver.entity.datamodify.ZyDetailCharge;
 import thyyxxk.webserver.entity.inpatient.ZyActpatient;
 import thyyxxk.webserver.entity.login.UserInfo;
 import thyyxxk.webserver.entity.medicalinsurance.inpatient.ZyPatientInfo;
+import thyyxxk.webserver.entity.projectEntry.DrugReturnForm;
 import thyyxxk.webserver.service.PublicServer;
 import thyyxxk.webserver.service.medicalinsurance.SiZyService;
 import thyyxxk.webserver.service.redislike.RedisLikeService;
@@ -27,10 +28,7 @@ import thyyxxk.webserver.utils.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -207,6 +205,8 @@ public class XiangMuLuRuService {
                     item.setChargeAmount(item.getChargeAmount().negate());
                     drug.add(item);
                     updateDrugLabel.add(item.getDetailSn());
+                    // todo 要开启把这个代码注释掉
+                    return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,此药品为医技科室录入,药品无法退费。", item.getDetailSn()));
                 }
 
             }
@@ -229,19 +229,17 @@ public class XiangMuLuRuService {
                     }
                     item.setDrugClass(a.getDrugClass());
                 }
-
             }
 
             ZyActpatient patientInfo = publicServer.huoQuHuanZheXinXi(param.getInpatientNo());
-            Integer pageNo = publicServer.getTheDrugListNo();
             // 药品单号
-            String groupNo = publicServer.getGroupNo();
+            Integer pageNo = publicServer.getTheDrugListNo();
             // 退药单汇总
-            dao.drugReturnForm(pageNo, patientInfo.getWard(), TokenUtil.getTokenUserId(), groupNo);
+            dao.drugReturnForm(pageNo, userInfo.getDeptCode(), TokenUtil.getTokenUserId(), param.getGroupNo());
             // 退药明细
             dao.detailsOfDrugReturnForm(drug, patientInfo.getInpatientNo(), patientInfo.getAdmissTimes(),
-                    patientInfo.getName(), patientInfo.getBedNo(), patientInfo.getWard(),
-                    infantFlag, groupNo, TokenUtil.getTokenUserId(), pageNo, ledgerSn);
+                    patientInfo.getName(), patientInfo.getBedNo(), userInfo.getDeptCode(), infantFlag,
+                    param.getGroupNo(), TokenUtil.getTokenUserId(), pageNo, ledgerSn);
             // 药品的退药 标准 为 -2 申请退药
             dao.genXinZhenShuTuiFeiLiuShui(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn, updateDrugLabel, -2);
             log.info("项目录入==》药品退费,操作人:{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(drug, DateUtil.DEFAULT_PATTERN));
@@ -260,7 +258,6 @@ public class XiangMuLuRuService {
         }
 
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "退费成功。");
-
     }
 
     /**
@@ -862,5 +859,33 @@ public class XiangMuLuRuService {
         siZyService.revokeUploadFees(p);
         return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
     }
+
+
+    public ResultVo<Map<String, Map<String, DrugReturnForm>>> drugRefundForm(String groupNo, String patNo, Integer times) {
+        Map<String, Map<String, DrugReturnForm>> map = new HashMap<>();
+        UserInfo info = redisLikeService.getUserInfoByToken();
+        Map<String, List<DrugReturnForm>> drugPageNoGy = dao.queryTheDrugReturnForm(info.getDeptCode(), groupNo, patNo, times).stream()
+                .collect(Collectors.groupingBy(DrugReturnForm::getPageNoTy));
+        if (drugPageNoGy.isEmpty()) {
+            return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有护士退药单。");
+        }
+
+        for (Map.Entry<String, List<DrugReturnForm>> drugList : drugPageNoGy.entrySet()) {
+            Map<String, DrugReturnForm> tempMap = new HashMap<>();
+            for (DrugReturnForm item : drugList.getValue()) {
+                String key = item.getChargeCode();
+                if (tempMap.containsKey(key)) {
+                    DrugReturnForm drug = tempMap.get(key);
+                    drug.setAmount(drug.getAmount().add(item.getAmount()));
+                    drug.setRetprice(drug.getRetprice().add(item.getRetprice()));
+                } else {
+                    tempMap.put(key, item);
+                }
+            }
+            map.put(drugList.getKey(), tempMap);
+        }
+        return ResultVoUtil.success(map);
+    }
+
 }