血液品种合并,优化
This commit is contained in:
parent
f22d0b1382
commit
55c63173e2
@ -23,6 +23,7 @@ import com.czblood.busBloodbank.pojo.VO.BloodOutQueryVO;
|
|||||||
import com.czblood.busBloodbank.service.BloodOutService;
|
import com.czblood.busBloodbank.service.BloodOutService;
|
||||||
import com.czblood.busBloodbank.utils.BloodOutUtil;
|
import com.czblood.busBloodbank.utils.BloodOutUtil;
|
||||||
import com.czblood.busBloodbank.utils.MatchBloodUtil;
|
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.Result;
|
||||||
import com.czblood.common.core.domain.entity.SysUser;
|
import com.czblood.common.core.domain.entity.SysUser;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@ -62,7 +63,6 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
ReportUtil reportUtil;
|
ReportUtil reportUtil;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Result queryOne(String applyNo, String moreSign) {
|
public Result queryOne(String applyNo, String moreSign) {
|
||||||
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(applyNo);
|
XkTransfuseApply xkTransfuseApply = xkTransfuseApplyMapper.queryOne(applyNo);
|
||||||
@ -90,7 +90,8 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
@Override
|
@Override
|
||||||
public Result queryWaitInfo() {
|
public Result queryWaitInfo() {
|
||||||
List<Map<String, Object>> queryWaitInfoList = bloodOutMapper.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
|
@Override
|
||||||
@ -186,7 +187,9 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
if (checkSign.equals("Y")) return new Result("-1", "该单据已经通过审核,不能作修改!");
|
if (checkSign.equals("Y")) return new Result("-1", "该单据已经通过审核,不能作修改!");
|
||||||
bloodOutUtil.updateBloodOutInfo(bloodOutInfoVO);
|
bloodOutUtil.updateBloodOutInfo(bloodOutInfoVO);
|
||||||
}
|
}
|
||||||
return new Result("0","保存成功!",newBillNo);
|
|
||||||
|
if(billNo.isEmpty()) billNo = newBillNo;
|
||||||
|
return new Result("0", "保存成功!", billNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -386,6 +389,7 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断血液是否已经出库
|
* 判断血液是否已经出库
|
||||||
|
*
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public Result checkOnOut(String bloodNo, String productNo) {
|
public Result checkOnOut(String bloodNo, String productNo) {
|
||||||
@ -425,7 +429,8 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
if (matchBloodList.isEmpty()) return new Result("-1", "该血液尚未配血,或者所配的血液不是给该病患,请检查!");
|
if (matchBloodList.isEmpty()) return new Result("-1", "该血液尚未配血,或者所配的血液不是给该病患,请检查!");
|
||||||
String canSend = BloodBankUtil.isBank(matchBloodList.get(0).get("can_send"));
|
String canSend = BloodBankUtil.isBank(matchBloodList.get(0).get("can_send"));
|
||||||
String result = BloodBankUtil.isBank(matchBloodList.get(0).get("result"));
|
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.setCheck_method(BloodBankUtil.isBank(matchBloodList.get(0).get("check_method")));
|
||||||
bloodOutInfoDTO.setMatch_method(BloodBankUtil.isBank(matchBloodList.get(0).get("match_method")));
|
bloodOutInfoDTO.setMatch_method(BloodBankUtil.isBank(matchBloodList.get(0).get("match_method")));
|
||||||
bloodOutInfoDTO.setResult(result);
|
bloodOutInfoDTO.setResult(result);
|
||||||
@ -454,6 +459,7 @@ public class BloodOutServiceImpl implements BloodOutService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 通知护士取血
|
* 通知护士取血
|
||||||
|
*
|
||||||
* @param billNo
|
* @param billNo
|
||||||
*/
|
*/
|
||||||
public Result notifyBloodOut(String billNo) {
|
public Result notifyBloodOut(String billNo) {
|
||||||
|
|||||||
@ -13,11 +13,14 @@ import com.czblood.busBloodbank.pojo.VO.HistoryQueryVO;
|
|||||||
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
|
import com.czblood.busBloodbank.pojo.VO.XkCheckBloodtypeVO;
|
||||||
import com.czblood.busBloodbank.service.CheckBloodTypeService;
|
import com.czblood.busBloodbank.service.CheckBloodTypeService;
|
||||||
import com.czblood.busBloodbank.utils.CheckBloodTypeUtil;
|
import com.czblood.busBloodbank.utils.CheckBloodTypeUtil;
|
||||||
|
import com.czblood.busBloodbank.utils.MergeArrayUtil;
|
||||||
import com.czblood.common.core.domain.Result;
|
import com.czblood.common.core.domain.Result;
|
||||||
import com.czblood.common.core.page.TableDataInfo;
|
import com.czblood.common.core.page.TableDataInfo;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -46,7 +49,9 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
|
|||||||
String bbjszhxxfh = bloodBankUtil.getParameterValue("BBJSZHXXFH");
|
String bbjszhxxfh = bloodBankUtil.getParameterValue("BBJSZHXXFH");
|
||||||
if (bbjszhxxfh.equals("Y")) xxfh = 1;
|
if (bbjszhxxfh.equals("Y")) xxfh = 1;
|
||||||
List<Map<String, Object>> mapList = checkBloodTypeMapper.queryWaitInfo(xxfh);
|
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
|
@Override
|
||||||
@ -64,6 +69,7 @@ public class CheckBloodTypeServiceImpl implements CheckBloodTypeService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存数据
|
* 保存数据
|
||||||
|
*
|
||||||
* @param xkCheckBloodtypeVO
|
* @param xkCheckBloodtypeVO
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
|
|||||||
@ -16,6 +16,7 @@ import com.czblood.busBloodbank.pojo.VO.MatchBloodStockQueryVO;
|
|||||||
import com.czblood.busBloodbank.pojo.VO.MatchBloodVO;
|
import com.czblood.busBloodbank.pojo.VO.MatchBloodVO;
|
||||||
import com.czblood.busBloodbank.service.MatchBloodService;
|
import com.czblood.busBloodbank.service.MatchBloodService;
|
||||||
import com.czblood.busBloodbank.utils.MatchBloodUtil;
|
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.Result;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@ -50,7 +51,8 @@ public class MatchBloodServiceImpl implements MatchBloodService {
|
|||||||
@Override
|
@Override
|
||||||
public Result queryWaitInfo() {
|
public Result queryWaitInfo() {
|
||||||
List<Map<String, Object>> mapList = matchBloodMapper.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
|
@Override
|
||||||
@ -67,11 +69,13 @@ public class MatchBloodServiceImpl implements MatchBloodService {
|
|||||||
case "S":
|
case "S":
|
||||||
return new Result("-1", "该申请单已经追加配血,可直接在临床发血中发血!");
|
return new Result("-1", "该申请单已经追加配血,可直接在临床发血中发血!");
|
||||||
case "D":
|
case "D":
|
||||||
if(matchBloodMapper.checkMatchBloodNotOut(billNo) > 0) return new Result("-1","检测到该申请单尚有配好的血液未出库,请先出库再进行配血!");
|
if (matchBloodMapper.checkMatchBloodNotOut(billNo) > 0)
|
||||||
|
return new Result("-1", "检测到该申请单尚有配好的血液未出库,请先出库再进行配血!");
|
||||||
case "BD":
|
case "BD":
|
||||||
return new Result("-1", "该申请单为补单,若要配血,请先复核血型!");
|
return new Result("-1", "该申请单为补单,若要配血,请先复核血型!");
|
||||||
case "B":
|
case "B":
|
||||||
if(matchBloodMapper.queryCheckBloodTypeCount(billNo) <= 0) return new Result("-1","该申请单尚未复核血型,请先复核血型!");
|
if (matchBloodMapper.queryCheckBloodTypeCount(billNo) <= 0)
|
||||||
|
return new Result("-1", "该申请单尚未复核血型,请先复核血型!");
|
||||||
case "A":
|
case "A":
|
||||||
return new Result("-1", "该申请单尚未审核,请先审核!");
|
return new Result("-1", "该申请单尚未审核,请先审核!");
|
||||||
}
|
}
|
||||||
@ -213,7 +217,7 @@ public class MatchBloodServiceImpl implements MatchBloodService {
|
|||||||
Result result1 = BloodInterfaceUtil.invokeBloodInterface(matchBloodTypeRequest);
|
Result result1 = BloodInterfaceUtil.invokeBloodInterface(matchBloodTypeRequest);
|
||||||
if (!result1.getCode().equals("0")) return result1;
|
if (!result1.getCode().equals("0")) return result1;
|
||||||
|
|
||||||
return new Result("0","保存成功!");
|
return new Result("0", "保存成功!", billNo);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@ -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());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.czblood.start;
|
package com.czblood.start;
|
||||||
|
|
||||||
import com.czblood.bus.mapper.XKHosInfoMapper;
|
//import com.czblood.bus.mapper.XKHosInfoMapper;
|
||||||
import com.czblood.bus.pojo.XkHosInfo;
|
//import com.czblood.bus.pojo.XkHosInfo;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
|
||||||
@ -11,13 +11,13 @@ import java.util.List;
|
|||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
public class SpringBootAllTest {
|
public class SpringBootAllTest {
|
||||||
|
|
||||||
@Resource
|
// @Resource
|
||||||
XKHosInfoMapper xkHosInfoMapper;
|
// XKHosInfoMapper xkHosInfoMapper;
|
||||||
|
|
||||||
@Test
|
// @Test
|
||||||
public void test1(){
|
// public void test1(){
|
||||||
XkHosInfo xkHosInfo = new XkHosInfo();
|
// XkHosInfo xkHosInfo = new XkHosInfo();
|
||||||
List<XkHosInfo> xkHosInfoList = xkHosInfoMapper.query(xkHosInfo);
|
// List<XkHosInfo> xkHosInfoList = xkHosInfoMapper.query(xkHosInfo);
|
||||||
System.out.println(xkHosInfoList);
|
// System.out.println(xkHosInfoList);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user