签收
This commit is contained in:
parent
da02be6aba
commit
7f2d6c5c3e
@ -4,11 +4,7 @@ import java.beans.PropertyEditorSupport;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.czlis.common.core.domain.Result;
|
||||
import com.czlis.common.core.domain.ResultT;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.web.bind.WebDataBinder;
|
||||
import org.springframework.web.bind.annotation.InitBinder;
|
||||
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();
|
||||
}
|
||||
/**获取当前登录的医疗机构**/
|
||||
String getYLJG(){
|
||||
public String getYLJG(){
|
||||
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.page.TableDataInfo;
|
||||
import com.czlis.common.enums.BusinessType;
|
||||
import com.czlis.common.utils.SecurityUtils;
|
||||
import com.czlis.interfaceCommon.constants.SysLogConstants;
|
||||
import com.czlis.liswork.service.LabResultService;
|
||||
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) {
|
||||
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")
|
||||
public ResultT<LabReqmain> querybarcode(String sqh) {
|
||||
return toResultT(lisWorkService.querybarcode(sqh),LabReqmain.class);
|
||||
public ResultT querybarcode(String sqh) {
|
||||
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 clearprintflag(Date jyrq, String yq,String ybh);
|
||||
Result querybarcode(String sqh);
|
||||
Result autosavebarcode(String sqh);
|
||||
Result savebarcode(String[] sqhlist,String yhdh);
|
||||
|
||||
}
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package com.czlis.liswork.service.impl;
|
||||
|
||||
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.lis.*;
|
||||
import com.czlis.common.enums.UserStatus;
|
||||
@ -23,6 +24,7 @@ import com.czlis.liswork.service.LisWorkService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -611,6 +613,37 @@ public class LisWorkServiceImpl implements LisWorkService {
|
||||
}
|
||||
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
|
||||
public Result querybarcode(String sqh) {
|
||||
String yhdh = SecurityUtils.getUsername();
|
||||
@ -650,27 +683,113 @@ public class LisWorkServiceImpl implements LisWorkService {
|
||||
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);
|
||||
}
|
||||
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();
|
||||
//3.调用his执行申请单
|
||||
SetReqStatus setReqStatus = new SetReqStatus();
|
||||
setReqStatus.setIp("");
|
||||
setReqStatus.setIp(lisWorkUtils.getIP());
|
||||
setReqStatus.setSqh(sqh);
|
||||
setReqStatus.setUserid(yhdh);
|
||||
setReqStatus.setStatus(LabReqmainConstants.SIGNFOR);
|
||||
Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREQSTATUS, setReqStatus);
|
||||
if (!result.getCode().equals("0")) return -1;
|
||||
return 0;
|
||||
return lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREQSTATUS, setReqStatus);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改申请单签收状态
|
||||
* @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