|
@@ -1,5 +1,6 @@
|
|
|
package thyyxxk.webserver.service.inpatient;
|
|
|
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DS;
|
|
@@ -59,6 +60,10 @@ public class XiangMuLuRuService {
|
|
|
this.siSettleApplyDao = siSettleApplyDao;
|
|
|
}
|
|
|
|
|
|
+ private XiangMuLuRuService getThis() {
|
|
|
+ return SpringUtil.getBean(this.getClass());
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 获取患者费用
|
|
|
* 费用 类型 1 - 医嘱 2 - 项目费用 3 - 医技 4 - 全部 5 -药品费用
|
|
@@ -189,9 +194,9 @@ public class XiangMuLuRuService {
|
|
|
return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, String.format("流水号:【%s】,中药无法退费。", item.getDetailSn()));
|
|
|
}
|
|
|
// 数据库有个 触发器 如果带了医嘱号且有篆刻那么这里就需要改成 0
|
|
|
-// if (BigUtils.bigDaYu(item.getOrderNo(), 10)) {
|
|
|
-// item.setOrderNo(new BigDecimal(0));
|
|
|
-// }
|
|
|
+ if (BigUtils.bigDaYu(item.getOrderNo(), 10)) {
|
|
|
+ item.setNewOrderNo(new BigDecimal(0));
|
|
|
+ }
|
|
|
// 00 是项目
|
|
|
if ("00".equals(item.getSerial())) {
|
|
|
maxDetailSn = setRefund(project, tuiFeiList, updateRefundFlag, maxDetailSn, item);
|
|
@@ -234,14 +239,14 @@ public class XiangMuLuRuService {
|
|
|
}
|
|
|
|
|
|
ZyActpatient patientInfo = publicServer.huoQuHuanZheXinXi(param.getInpatientNo());
|
|
|
- // 药品单号
|
|
|
- Integer pageNo = publicServer.getTheDrugListNo();
|
|
|
- // 退药单汇总
|
|
|
- dao.drugReturnForm(pageNo, userInfo.getDeptCode(), TokenUtil.getTokenUserId(), param.getGroupNo());
|
|
|
+// // 药品单号
|
|
|
+// Integer pageNo = publicServer.getTheDrugListNo();
|
|
|
+// // 退药单汇总
|
|
|
+// dao.drugReturnForm(pageNo, userInfo.getDeptCode(), TokenUtil.getTokenUserId(), param.getGroupNo());
|
|
|
// 退药明细
|
|
|
dao.detailsOfDrugReturnForm(drug, patientInfo.getInpatientNo(), patientInfo.getAdmissTimes(),
|
|
|
patientInfo.getName(), patientInfo.getBedNo(), userInfo.getDeptCode(), infantFlag,
|
|
|
- param.getGroupNo(), TokenUtil.getTokenUserId(), pageNo, ledgerSn);
|
|
|
+ param.getGroupNo(), TokenUtil.getTokenUserId(), 0, ledgerSn);
|
|
|
// 药品的退药 标准 为 -2 申请退药
|
|
|
dao.genXinZhenShuTuiFeiLiuShui(param.getInpatientNo(), param.getAdmissTimes(), ledgerSn, updateDrugLabel, -2);
|
|
|
log.info("项目录入==》药品退费,操作人:{},数据:{}", TokenUtil.getTokenUserId(), JSON.toJSONStringWithDateFormat(drug, DateUtil.DEFAULT_PATTERN));
|
|
@@ -863,17 +868,6 @@ public class XiangMuLuRuService {
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- public ResultVo<Map<String, List<DrugReturnForm>>> drugRefundForm(String groupNo, String patNo, Integer times, String refundTime) {
|
|
|
- Map<String, List<DrugReturnForm>> drugPageNoGy = dao.queryTheDrugReturnForm(groupNo, patNo, times, refundTime).stream()
|
|
|
- .collect(Collectors.groupingBy(DrugReturnForm::getPageNoTy));
|
|
|
- if (drugPageNoGy.isEmpty()) {
|
|
|
- return ResultVoUtil.fail(ExceptionEnum.LOGICAL_ERROR, "没有护士退药单。");
|
|
|
- }
|
|
|
- return ResultVoUtil.success(drugPageNoGy);
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
public ResultVo<String> rejectNotGeneratedMedicationList(String patNo, Integer times) {
|
|
|
log.info("拒绝生成的药单 ==> 住院号:{},住院次数:{},操作人:{}", patNo, times, TokenUtil.getTokenUserId());
|
|
|
Date disdate;
|
|
@@ -888,5 +882,57 @@ public class XiangMuLuRuService {
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION);
|
|
|
}
|
|
|
|
|
|
+ public ResultVo<List<DrugReturnForm>> getNoMedicineReturnOrderGenerated(String startDate, String endDate, String groupNo) {
|
|
|
+ UserInfo us = redisLikeService.getUserInfoByToken();
|
|
|
+ return ResultVoUtil.success(groupingValues(dao.selectNoMedicineReturnOrderGenerated(startDate, endDate, us.getDeptCode(), groupNo)));
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<DrugReturnForm> groupingValues(List<DrugReturnForm> list) {
|
|
|
+ if (ListUtil.isBlank(list)) {
|
|
|
+ return list;
|
|
|
+ }
|
|
|
+ Map<String, DrugReturnForm> map = new HashMap<>(list.size());
|
|
|
+ list.forEach(item -> {
|
|
|
+ if (map.containsKey(item.getChargeCode())) {
|
|
|
+ DrugReturnForm temp = map.get(item.getChargeCode());
|
|
|
+ temp.setAmount(temp.getAmount().add(item.getAmount()));
|
|
|
+ temp.setRetprice(temp.getRetprice().add(item.getRetprice()));
|
|
|
+ } else {
|
|
|
+ map.put(item.getChargeCode(), item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return new ArrayList<>(map.values());
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成药单
|
|
|
+ *
|
|
|
+ * @param startDate 开始时间
|
|
|
+ * @param endDate 结束时间
|
|
|
+ * @param groupNo 药房
|
|
|
+ * @return 返回提示
|
|
|
+ */
|
|
|
+ public ResultVo<Integer> generateMedicationList(String startDate, String endDate, String groupNo) {
|
|
|
+ UserInfo us = redisLikeService.getUserInfoByToken();
|
|
|
+ Integer pageNo = publicServer.getTheDrugListNo();
|
|
|
+ getThis().generateMedicationListFunc(startDate, endDate, groupNo, pageNo, us.getDeptCode());
|
|
|
+ return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_NOTIFICATION, "药单生成成功。", pageNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ public void generateMedicationListFunc(String startDate, String endDate, String groupNo, Integer pageNo, String dept) {
|
|
|
+ dao.drugReturnForm(pageNo, dept, TokenUtil.getTokenUserId(), groupNo);
|
|
|
+ dao.generateMedicationList(startDate, endDate, dept, groupNo, pageNo);
|
|
|
+ }
|
|
|
+
|
|
|
+ public ResultVo<List<DrugReturnForm>> getPrescription(String startDate, String endDate) {
|
|
|
+ UserInfo us = redisLikeService.getUserInfoByToken();
|
|
|
+ return ResultVoUtil.success(dao.getPrescription(startDate, endDate, us.getDeptCode()));
|
|
|
+ }
|
|
|
+
|
|
|
+ public ResultVo<List<DrugReturnForm>> getAPrescriptionByPageNo(Integer pageNo) {
|
|
|
+ return ResultVoUtil.success(groupingValues(dao.getAPrescriptionByPageNo(pageNo)));
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|