签收
This commit is contained in:
parent
da02be6aba
commit
7f2d6c5c3e
@ -4,11 +4,7 @@ import java.beans.PropertyEditorSupport;
|
|||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import com.czlis.common.core.domain.Result;
|
|
||||||
import com.czlis.common.core.domain.ResultT;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
import org.springframework.web.bind.WebDataBinder;
|
import org.springframework.web.bind.WebDataBinder;
|
||||||
import org.springframework.web.bind.annotation.InitBinder;
|
import org.springframework.web.bind.annotation.InitBinder;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
@ -183,20 +179,5 @@ public class BaseController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 带泛型的转换(精细化转换)
|
|
||||||
*/
|
|
||||||
public static <T> ResultT<T> toResultT(Result oldResult, Class<T> clazz) {
|
|
||||||
// 1. 空值校验:避免 oldResult 为 null 导致 NPE
|
|
||||||
if (oldResult == null) {
|
|
||||||
return ResultT.error("旧 Result 对象不能为空");
|
|
||||||
}
|
|
||||||
// 2. 调用 ResultT.fromResult(已实现类型校验+空值处理)
|
|
||||||
try {
|
|
||||||
return ResultT.fromResult(oldResult, clazz);
|
|
||||||
} catch (IllegalArgumentException e) {
|
|
||||||
// 3. 类型不匹配时的兜底:返回错误结果,避免接口直接抛异常
|
|
||||||
return ResultT.error("Result 转换失败:" + e.getMessage());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,7 @@ public class LisWorkBase {
|
|||||||
return IpUtils.getIpAddr();
|
return IpUtils.getIpAddr();
|
||||||
}
|
}
|
||||||
/**获取当前登录的医疗机构**/
|
/**获取当前登录的医疗机构**/
|
||||||
String getYLJG(){
|
public String getYLJG(){
|
||||||
return loginConfigParamUtil.getLoginConfigParam().getLoginYLJG();
|
return loginConfigParamUtil.getLoginConfigParam().getLoginYLJG();
|
||||||
}
|
}
|
||||||
/**获取当前会话循环次数**/
|
/**获取当前会话循环次数**/
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import com.czlis.common.core.domain.entity.lis.LabReqmain;
|
|||||||
import com.czlis.common.core.domain.entity.lis.LabResult;
|
import com.czlis.common.core.domain.entity.lis.LabResult;
|
||||||
import com.czlis.common.core.page.TableDataInfo;
|
import com.czlis.common.core.page.TableDataInfo;
|
||||||
import com.czlis.common.enums.BusinessType;
|
import com.czlis.common.enums.BusinessType;
|
||||||
|
import com.czlis.common.utils.SecurityUtils;
|
||||||
import com.czlis.interfaceCommon.constants.SysLogConstants;
|
import com.czlis.interfaceCommon.constants.SysLogConstants;
|
||||||
import com.czlis.liswork.service.LabResultService;
|
import com.czlis.liswork.service.LabResultService;
|
||||||
import com.czlis.liswork.service.LisWorkService;
|
import com.czlis.liswork.service.LisWorkService;
|
||||||
@ -210,9 +211,19 @@ public class LisWorkController extends BaseController {
|
|||||||
public Result setiteminter(Date jyrq, String yq, String ybh, String xmdh, String xmdh0) {
|
public Result setiteminter(Date jyrq, String yq, String ybh, String xmdh, String xmdh0) {
|
||||||
return lisWorkService.setiteminter(jyrq, yq, ybh, xmdh, xmdh0);
|
return lisWorkService.setiteminter(jyrq, yq, ybh, xmdh, xmdh0);
|
||||||
}
|
}
|
||||||
@ApiOperation("签收条码")
|
@ApiOperation("自动签收条码")
|
||||||
|
@GetMapping("/autosavebarcode")
|
||||||
|
public ResultT<LabReqmain> autosavebarcode(String sqh) {
|
||||||
|
return ResultT.fromResult(lisWorkService.autosavebarcode(sqh),LabReqmain.class);
|
||||||
|
}
|
||||||
|
@ApiOperation("手动保存签收条码")
|
||||||
|
@GetMapping("/savebarcode")
|
||||||
|
public Result savebarcode(String[] sqh,String yhdh) {
|
||||||
|
return lisWorkService.savebarcode(sqh,yhdh);
|
||||||
|
}
|
||||||
|
@ApiOperation("查询条码")
|
||||||
@GetMapping("/querybarcode")
|
@GetMapping("/querybarcode")
|
||||||
public ResultT<LabReqmain> querybarcode(String sqh) {
|
public ResultT querybarcode(String sqh) {
|
||||||
return toResultT(lisWorkService.querybarcode(sqh),LabReqmain.class);
|
return ResultT.fromResult(lisWorkService.querybarcode(sqh),LabReqmain.class);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -32,4 +32,7 @@ public interface LisWorkService {
|
|||||||
Result setiteminter(Date jyrq, String yq,String ybh,String xmdh,String xmdh0);
|
Result setiteminter(Date jyrq, String yq,String ybh,String xmdh,String xmdh0);
|
||||||
Result clearprintflag(Date jyrq, String yq,String ybh);
|
Result clearprintflag(Date jyrq, String yq,String ybh);
|
||||||
Result querybarcode(String sqh);
|
Result querybarcode(String sqh);
|
||||||
|
Result autosavebarcode(String sqh);
|
||||||
|
Result savebarcode(String[] sqhlist,String yhdh);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.czlis.liswork.service.impl;
|
package com.czlis.liswork.service.impl;
|
||||||
|
|
||||||
import com.czlis.common.core.domain.Result;
|
import com.czlis.common.core.domain.Result;
|
||||||
|
import com.czlis.common.core.domain.ResultT;
|
||||||
import com.czlis.common.core.domain.entity.*;
|
import com.czlis.common.core.domain.entity.*;
|
||||||
import com.czlis.common.core.domain.entity.lis.*;
|
import com.czlis.common.core.domain.entity.lis.*;
|
||||||
import com.czlis.common.enums.UserStatus;
|
import com.czlis.common.enums.UserStatus;
|
||||||
@ -23,6 +24,7 @@ import com.czlis.liswork.service.LisWorkService;
|
|||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@ -611,6 +613,37 @@ public class LisWorkServiceImpl implements LisWorkService {
|
|||||||
}
|
}
|
||||||
return new Result("0", "成功!");
|
return new Result("0", "成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动保存签收
|
||||||
|
* @param sqh 条码
|
||||||
|
* @return 返回申请单
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result autosavebarcode(String sqh){
|
||||||
|
String yhdh = SecurityUtils.getUsername();
|
||||||
|
//1.调用接口,获取申请单信息
|
||||||
|
Result result=querybarcode(sqh);
|
||||||
|
if(!"0".equals(result.getCode()))return result;
|
||||||
|
LabReqmain labReqmainOne =(LabReqmain)result.getData();
|
||||||
|
if (labReqmainOne == null) {
|
||||||
|
return new Result("-1",sqh+"无数据,处理失败");
|
||||||
|
}
|
||||||
|
//2.调用接口,执行申请单收费
|
||||||
|
Result result0=reqbilling(labReqmainOne, yhdh);
|
||||||
|
if (!result0.getCode().equals("0")) return result0;
|
||||||
|
//3.保存申请单状态,记录日志
|
||||||
|
if (savereqmain(labReqmainOne, yhdh) != 0) {
|
||||||
|
return new Result("-1",sqh+"保存申请单状态失败"+result0.getMsg());
|
||||||
|
}
|
||||||
|
return new Result("0","成功",labReqmainOne);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询条码
|
||||||
|
* @param sqh 条码号
|
||||||
|
* @return 返回申请单信息
|
||||||
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Result querybarcode(String sqh) {
|
public Result querybarcode(String sqh) {
|
||||||
String yhdh = SecurityUtils.getUsername();
|
String yhdh = SecurityUtils.getUsername();
|
||||||
@ -650,27 +683,113 @@ public class LisWorkServiceImpl implements LisWorkService {
|
|||||||
return new Result("-1", "当前条码已签收过了,禁止签收,上次签收时间为:"+sj);
|
return new Result("-1", "当前条码已签收过了,禁止签收,上次签收时间为:"+sj);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
int zx=reqbilling(labReqmainOne);
|
|
||||||
if(zx==-1)return new Result("-1", "申请单执行失败,禁止签收!");
|
|
||||||
if ("2".equals(zt)){
|
|
||||||
Date jssj=labReqmainOne.getJssj();
|
|
||||||
String sj= DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss",jssj);
|
|
||||||
return new Result("3", "当前条码已签收过了时间为:"+sj,labReqmainOne);
|
|
||||||
}
|
|
||||||
return new Result("0", "成功!",labReqmainOne);
|
return new Result("0", "成功!",labReqmainOne);
|
||||||
}
|
}
|
||||||
public int reqbilling(LabReqmain labReqmain){
|
|
||||||
String yhdh = SecurityUtils.getUsername();
|
/**
|
||||||
|
* 批量保存申请单信息
|
||||||
|
* @param sqhlist 申请单列表
|
||||||
|
* @param yhdh 保存者
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Result savebarcode(String[] sqhlist,String yhdh) {
|
||||||
|
String errmsg="";
|
||||||
|
// 1. 入参校验:避免空指针
|
||||||
|
if (sqhlist == null || sqhlist.length == 0) {
|
||||||
|
return new Result("0", "条码列表不能为空");
|
||||||
|
}
|
||||||
|
if (yhdh == null || yhdh.isEmpty()) {
|
||||||
|
return new Result("0", "用户编号不能为空");
|
||||||
|
}
|
||||||
|
// 2. 用List替代数组,避免空间浪费
|
||||||
|
List<String> failList = new ArrayList<>(); // 失败条码
|
||||||
|
List<String> successList = new ArrayList<>(); // 成功条码
|
||||||
|
|
||||||
|
// 3. 遍历处理每个条码
|
||||||
|
for (String sqh : sqhlist) {
|
||||||
|
// 1.跳过空条码
|
||||||
|
if (sqh == null || sqh.isEmpty()) {
|
||||||
|
failList.add("空条码");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
LabReqmain labReqmainOne = commonUtil.getLabReqmainOne(sqh);
|
||||||
|
//2.调用接口,执行申请单收费
|
||||||
|
Result result0=reqbilling(labReqmainOne, yhdh);
|
||||||
|
if (!result0.getCode().equals("0")) {
|
||||||
|
errmsg=errmsg+"\n"+sqh+result0.getMsg();
|
||||||
|
failList.add(sqh);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
//3.保存申请单状态,记录日志
|
||||||
|
if (savereqmain(labReqmainOne, yhdh) != 0) {
|
||||||
|
errmsg=errmsg+"\n"+sqh+"保存申请单状态失败";
|
||||||
|
failList.add(sqh);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (!result0.getCode().equals("0")) {
|
||||||
|
errmsg=errmsg+"\n"+sqh+result0.getMsg();
|
||||||
|
failList.add(sqh);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
successList.add(sqh);
|
||||||
|
}
|
||||||
|
// 5. 返回泛型结果
|
||||||
|
String msg = String.format("保存完毕,共成功 %d 笔,失败 %d 笔"+errmsg, successList.size(), failList.size());
|
||||||
|
if (failList.size() > 0) {
|
||||||
|
return new Result("-1", msg,failList);
|
||||||
|
}
|
||||||
|
return new Result("0", "保存成功!共处理 " + successList.size() + " 笔");
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 执行申请单收费接口
|
||||||
|
* @param labReqmain 申请单
|
||||||
|
* @param yhdh 操作人
|
||||||
|
* @return 申请单
|
||||||
|
*/
|
||||||
|
public Result reqbilling(LabReqmain labReqmain,String yhdh){
|
||||||
String sqh=labReqmain.getSqh();
|
String sqh=labReqmain.getSqh();
|
||||||
//3.调用his执行申请单
|
//3.调用his执行申请单
|
||||||
SetReqStatus setReqStatus = new SetReqStatus();
|
SetReqStatus setReqStatus = new SetReqStatus();
|
||||||
setReqStatus.setIp("");
|
setReqStatus.setIp(lisWorkUtils.getIP());
|
||||||
setReqStatus.setSqh(sqh);
|
setReqStatus.setSqh(sqh);
|
||||||
setReqStatus.setUserid(yhdh);
|
setReqStatus.setUserid(yhdh);
|
||||||
setReqStatus.setStatus(LabReqmainConstants.SIGNFOR);
|
setReqStatus.setStatus(LabReqmainConstants.SIGNFOR);
|
||||||
Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREQSTATUS, setReqStatus);
|
return lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREQSTATUS, setReqStatus);
|
||||||
if (!result.getCode().equals("0")) return -1;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改申请单签收状态
|
||||||
|
* @param labReqmain 申请单表
|
||||||
|
* @param yhdh 操作者
|
||||||
|
* @return 成功
|
||||||
|
*/
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public int savereqmain(LabReqmain labReqmain,String yhdh){
|
||||||
|
String zt=labReqmain.getZt();
|
||||||
|
if(zt==null)return -1;
|
||||||
|
if("9".equals(zt))return -1;
|
||||||
|
if("4".equals(zt))return 0;
|
||||||
|
if("2".equals(zt)) {
|
||||||
|
Date zxsj=labReqmain.getZxsj();
|
||||||
|
Date cysj=labReqmain.getCysj();
|
||||||
|
Date jssj=labReqmain.getJssj();
|
||||||
|
Date bbsjsj=labReqmain.getBbsjsj();
|
||||||
|
boolean changefalg=false;
|
||||||
|
if(jssj!=null) {
|
||||||
|
if(bbsjsj!=null&&bbsjsj.after(jssj))changefalg=true;
|
||||||
|
if(cysj!=null&&cysj.after(jssj))changefalg=true;
|
||||||
|
if(zxsj!=null&&zxsj.after(jssj))changefalg=true;
|
||||||
|
}
|
||||||
|
if(!changefalg) return 0;
|
||||||
|
}
|
||||||
|
String sqh=labReqmain.getSqh();
|
||||||
|
labReqmain.setZt(LabReqmainConstants.SIGNFOR);
|
||||||
|
labReqmain.setJsys(yhdh);
|
||||||
|
labReqmain.setQsyljg(lisWorkUtils.getYLJG());
|
||||||
|
labReqmain.setJssj(new Date());
|
||||||
|
commonUtil.updateLabReqmain(labReqmain);
|
||||||
|
lisWorkUtils.setlabReqsteplog(sqh,"2",yhdh);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user