|  | @@ -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);
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |