血液品种合并,优化

This commit is contained in:
wuyy 2026-09-16 17:38:09 +08:00
parent f22d0b1382
commit 55c63173e2
6 changed files with 280 additions and 226 deletions

View File

@ -23,6 +23,7 @@ import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
import com.czblood.busBloodbank.service.BloodOutService;
import com.czblood.busBloodbank.utils.BloodOutUtil;
import com.czblood.busBloodbank.utils.MatchBloodUtil;
import com.czblood.busBloodbank.utils.MergeArrayUtil;
import com.czblood.common.core.domain.Result;
import com.czblood.common.core.domain.entity.SysUser;
import org.springframework.stereotype.Service;
@ -62,7 +63,6 @@ public class BloodOutServiceImpl implements BloodOutService {
ReportUtil reportUtil;
@Override
public Result queryOne(String applyNo, String moreSign) {
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(applyNo);
@ -90,7 +90,8 @@ public class BloodOutServiceImpl implements BloodOutService {
@Override
public Result queryWaitInfo() {
List<Map<String, Object>> queryWaitInfoList = bloodOutMapper.queryWaitInfo();
return new Result("0","操作成功",queryWaitInfoList);
List<Map<String, Object>> finalList = MergeArrayUtil.mergeArray(queryWaitInfoList, "bill_no", "blood_breed");
return new Result("0", "操作成功", finalList);
}
@Override
@ -186,7 +187,9 @@ public class BloodOutServiceImpl implements BloodOutService {
if (checkSign.equals("Y")) return new Result("-1", "该单据已经通过审核,不能作修改!");
bloodOutUtil.updateBloodOutInfo(bloodOutInfoVO);
}
return new Result("0","保存成功!",newBillNo);
if(billNo.isEmpty()) billNo = newBillNo;
return new Result("0", "保存成功!", billNo);
}
@Override
@ -386,6 +389,7 @@ public class BloodOutServiceImpl implements BloodOutService {
/**
* 判断血液是否已经出库
*
* @return
*/
public Result checkOnOut(String bloodNo, String productNo) {
@ -425,7 +429,8 @@ public class BloodOutServiceImpl implements BloodOutService {
if (matchBloodList.isEmpty()) return new Result("-1", "该血液尚未配血,或者所配的血液不是给该病患,请检查!");
String canSend = BloodBankUtil.isBank(matchBloodList.get(0).get("can_send"));
String result = BloodBankUtil.isBank(matchBloodList.get(0).get("result"));
if(canSend.equals("") || canSend.equals("N")) return new Result("-1","该血液的配血结果为:"+result+",不能发血!");
if (canSend.equals("") || canSend.equals("N"))
return new Result("-1", "该血液的配血结果为:" + result + ",不能发血!");
bloodOutInfoDTO.setCheck_method(BloodBankUtil.isBank(matchBloodList.get(0).get("check_method")));
bloodOutInfoDTO.setMatch_method(BloodBankUtil.isBank(matchBloodList.get(0).get("match_method")));
bloodOutInfoDTO.setResult(result);
@ -454,6 +459,7 @@ public class BloodOutServiceImpl implements BloodOutService {
/**
* 通知护士取血
*
* @param billNo
*/
public Result notifyBloodOut(String billNo) {

View File

@ -13,11 +13,14 @@ import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
import com.czblood.busBloodbank.service.CheckBloodTypeService;
import com.czblood.busBloodbank.utils.CheckBloodTypeUtil;
import com.czblood.busBloodbank.utils.MergeArrayUtil;
import com.czblood.common.core.domain.Result;
import com.czblood.common.core.page.TableDataInfo;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -46,7 +49,9 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
String bbjszhxxfh = bloodBankUtil.getParameterValue("BBJSZHXXFH");
if (bbjszhxxfh.equals("Y")) xxfh = 1;
List<Map<String, Object>> mapList = checkBloodTypeMapper.queryWaitInfo(xxfh);
return new Result("0","获取数据成功!",mapList);
//根据单据编号合并血液品种
List<Map<String, Object>> finalList = MergeArrayUtil.mergeArray(mapList, "bill_no", "blood_breed");
return new Result("0", "获取数据成功!", finalList);
}
@Override
@ -64,6 +69,7 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
/**
* 保存数据
*
* @param xkCheckBloodtypeVO
* @return
*/

View File

@ -16,6 +16,7 @@ import com.czblood.busBloodbank.pojo.VO.MatchBloodStockQueryVO;
import com.czblood.busBloodbank.pojo.VO.MatchBloodVO;
import com.czblood.busBloodbank.service.MatchBloodService;
import com.czblood.busBloodbank.utils.MatchBloodUtil;
import com.czblood.busBloodbank.utils.MergeArrayUtil;
import com.czblood.common.core.domain.Result;
import org.springframework.stereotype.Service;
@ -50,7 +51,8 @@ public class MatchBloodServiceImpl implements MatchBloodService {
@Override
public Result queryWaitInfo() {
List<Map<String, Object>> mapList = matchBloodMapper.queryWaitInfo();
return new Result("0","获取数据成功!",mapList);
List<Map<String, Object>> finalList = MergeArrayUtil.mergeArray(mapList, "bill_no", "blood_breed");
return new Result("0", "获取数据成功!", finalList);
}
@Override
@ -67,11 +69,13 @@ public class MatchBloodServiceImpl implements MatchBloodService {
case "S":
return new Result("-1", "该申请单已经追加配血,可直接在临床发血中发血!");
case "D":
if(matchBloodMapper.checkMatchBloodNotOut(billNo) > 0) return new Result("-1","检测到该申请单尚有配好的血液未出库,请先出库再进行配血!");
if (matchBloodMapper.checkMatchBloodNotOut(billNo) > 0)
return new Result("-1", "检测到该申请单尚有配好的血液未出库,请先出库再进行配血!");
case "BD":
return new Result("-1", "该申请单为补单,若要配血,请先复核血型!");
case "B":
if(matchBloodMapper.queryCheckBloodTypeCount(billNo) <= 0) return new Result("-1","该申请单尚未复核血型,请先复核血型!");
if (matchBloodMapper.queryCheckBloodTypeCount(billNo) <= 0)
return new Result("-1", "该申请单尚未复核血型,请先复核血型!");
case "A":
return new Result("-1", "该申请单尚未审核,请先审核!");
}
@ -213,7 +217,7 @@ public class MatchBloodServiceImpl implements MatchBloodService {
Result result1 = BloodInterfaceUtil.invokeBloodInterface(matchBloodTypeRequest);
if (!result1.getCode().equals("0")) return result1;
return new Result("0","保存成功!");
return new Result("0", "保存成功!", billNo);
}
@Override

View File

@ -0,0 +1,38 @@
package com.czblood.busBloodbank.utils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
* 根据字段去重合并数据
* @param list 数据源
* @param field 去重字段
* @param mergeField 合并字段
* */
public class MergeArrayUtil {
public static List<Map<String, Object>> mergeArray(List<Map<String, Object>> list, String field, String mergeField) {
Map<String, Map<String, Object>> resultMap = new HashMap<>();
for (Map<String, Object> item : list) {
String billNo = (String) item.get(field);
// 如果该数据还不存在,直接存入
if (!resultMap.containsKey(billNo)) {
List<String> breedList = new ArrayList<>();
breedList.add((String) item.get(mergeField));
item.put(mergeField, breedList);
resultMap.put(billNo, new HashMap<>(item));
} else {
// 已经存在,取出旧对象
Map<String, Object> existMap = resultMap.get(billNo);
@SuppressWarnings("unchecked")
List<String> breedList = (List<String>) existMap.get(mergeField);
breedList.add((String) item.get(mergeField));
existMap.put(mergeField, breedList);
}
}
return new ArrayList<>(resultMap.values());
}
}

View File

@ -1,7 +1,7 @@
package com.czblood.start;
import com.czblood.bus.mapper.XKHosInfoMapper;
import com.czblood.bus.pojo.XkHosInfo;
//import com.czblood.bus.mapper.XKHosInfoMapper;
//import com.czblood.bus.pojo.XkHosInfo;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@ -11,13 +11,13 @@ import java.util.List;
@SpringBootTest
public class SpringBootAllTest {
@Resource
XKHosInfoMapper xkHosInfoMapper;
// @Resource
// XKHosInfoMapper xkHosInfoMapper;
@Test
public void test1(){
XkHosInfo xkHosInfo = new XkHosInfo();
List<XkHosInfo> xkHosInfoList = xkHosInfoMapper.query(xkHosInfo);
System.out.println(xkHosInfoList);
}
// @Test
// public void test1(){
// XkHosInfo xkHosInfo = new XkHosInfo();
// List<XkHosInfo> xkHosInfoList = xkHosInfoMapper.query(xkHosInfo);
// System.out.println(xkHosInfoList);
// }
}