增加字典缓存

This commit is contained in:
jiangs 2026-03-16 17:39:38 +08:00
parent e6a5f4ad48
commit 636de0d743
23 changed files with 352 additions and 350 deletions

View File

@ -43,11 +43,11 @@ public class CacheConstants
public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:"; public static final String PWD_ERR_CNT_KEY = "pwd_err_cnt:";
/** /**
* lis字典缓存 * 字典缓存
*/ */
public static final String COM_DICT_KEY = "com_dict:"; public static final String REG_DICT_KEY = "reg_dict:";
/** /**
* lis设置缓存 * 参数
*/ */
public static final String COM_OPT_KEY = "com_opt:"; public static final String COM_OPT_KEY = "com_opt:";

View File

@ -55,4 +55,5 @@ public class RegApply {
private String applyid; private String applyid;
private String reqDetailName; private String reqDetailName;
private String bz; private String bz;
private String slzq;
} }

View File

@ -302,6 +302,10 @@ public class RegTransitSample {
* 标本退回时间 * 标本退回时间
*/ */
private Date BackTime; private Date BackTime;
/**
* 生理周期
*/
private String slzq;
private String DateType; private String DateType;
private Date DateStart; private Date DateStart;

View File

@ -1,61 +0,0 @@
package com.transitPlatForm.common.utils;
import com.alibaba.fastjson2.JSONArray;
import com.transitPlatForm.common.constant.CacheConstants;
//import com.transitPlatForm.common.core.domain.entity.lis.ComDict;
import com.transitPlatForm.common.core.redis.RedisCache;
import com.transitPlatForm.common.utils.spring.SpringUtils;
import java.util.Collection;
import java.util.List;
/**
* lis字典工具类
*/
public class ComDictUtils {
/**
* 设置代码字典缓存
*
* @param zdlb 字典类别
* @param dictDatas 字典数据列表
*/
// public static void setDictCache(String zdlb, List<ComDict> dictDatas) {
// //先清除该key的所有缓存,然后再重新设置该key的缓存
// SpringUtils.getBean(RedisCache.class).deleteObject(zdlb);
// SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(zdlb), dictDatas);
// }
/**
* 清空字典缓存
*/
public static void clearDictCache() {
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.COM_DICT_KEY + "*");
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}
/**
* 获取字典缓存
*
* @param zdlb 字典类别
* @return dictDatas 字典数据列表
*/
// public static List<ComDict> getDictCache(String zdlb) {
// JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(zdlb));
// if (StringUtils.isNotNull(arrayCache)) {
// return arrayCache.toList(ComDict.class);
// }
// return null;
// }
/**
* 设置cache key
*
* @param configKey 参数键
* @return 缓存键key
*/
public static String getCacheKey(String configKey) {
return CacheConstants.COM_DICT_KEY + configKey;
}
}

View File

@ -1,90 +0,0 @@
package com.transitPlatForm.common.utils;
import cn.hutool.json.JSONUtil;
import com.transitPlatForm.common.constant.CacheConstants;
//import com.transitPlatForm.common.core.domain.entity.lis.ComOpt;
import com.transitPlatForm.common.core.redis.RedisCache;
import com.transitPlatForm.common.utils.spring.SpringUtils;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class ComOptionUtils {
/**
* 设置参数缓存
* 缓存格式:com_opt:HISOPT:SP_INTER com_opt:yq:xxdh
* @param yq 仪器
* @param xxdh 项目代码
* @param comOpt 参数数据
*/
// public static void setOptCache(String yq,String xxdh, ComOpt comOpt) {
// //先清除该key的所有缓存,然后再重新设置该key的缓存
// yq=yq.trim();
// xxdh=xxdh.toUpperCase();
// String key = yq+":"+xxdh;
// SpringUtils.getBean(RedisCache.class).deleteObject(key);
// SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), comOpt);
// }
/**
* 清空参数缓存
*/
public static void clearOptCache() {
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.COM_OPT_KEY + "*");
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}
public static void clearOptCache(String yq,String xxdh) {
xxdh=xxdh.toUpperCase();
yq=yq.trim();
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.COM_OPT_KEY + yq+":"+xxdh);
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}
/**
* 获取参数缓存
* 根据现在的参数,获取到的数据应该只有一条
* @param yq 仪器
* @param xxdh 项目代码
* @return ComOpt 参数数据
*/
// public static ComOpt getOptCache(String yq,String xxdh) {
// xxdh=xxdh.toUpperCase();
// yq=yq.trim();
// String key = yq+":"+xxdh;
// Object cacheObject = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key));
// if (StringUtils.isNotNull(cacheObject)) {
// return (ComOpt) cacheObject;
// }
// return null;
// }
/**
* 设置cache key
*
* @param configKey 参数键
* @return 缓存键key
*/
public static String getCacheKey(String configKey) {
return CacheConstants.COM_OPT_KEY + configKey;
}
/**
* 设置参数值域
* @param dddwList
* @param inputList
* @return
*/
public static String setValueRange(List<String> dddwList,List<String> inputList){
Map<String,Object> map = new HashMap<String,Object>();
map.put("dddwList",dddwList);
map.put("inputList",inputList);
return JSONUtil.toJsonStr(map);
}
}

View File

@ -4,32 +4,6 @@ package com.transitPlatForm.interfaceCommon.constants;
* 系统日志 * 系统日志
*/ */
public class SysLogConstants { public class SysLogConstants {
public static final String FEEITEMCLASS_LOG = "条码类别"; public static final String REQINPUT = "自助开单";
public static final String FEEITEMVSCLASS_LOG = "条码类别与项目对照"; public static final String DICT = "字典管理";
public static final String MZCX_LOG = "门诊采血";
public static final String RPTGETRULE_LOG = "报告领取规则";
public static final String XMFEE_LOG = "收费项目维护";
public static final String DICT_LOG = "常见字典";
public static final String INSTR_LOG = "仪器维护";
public static final String REPORTITEM_LOG = "检验项目";
public static final String XMFILTER_LOG = "光片波长对照表";
public static final String XMLOT_LOG = "试剂维护";
public static final String XMALARMDETAIL_LOG = "危急值特定判断条件";
public static final String XMBASE_LOG = "报告项目";
public static final String XMFEEINSTR_LOG = "仪器收费项目对照";
public static final String XMREQITEMVSREPORTITEM_LOG = "收费项目报告项目";
public static final String LISWORK_LOG = "主界面";
public static final String COMOPT_LOG = "后台参数";
public static final String LABINPUTMDL_LOG = "项目模板";
public static final String LABINSTRVSREQCLASS_LOG = "仪器条码类别对照";
public static final String LABTATCTRL_LOG = "TAT设定";
public static final String XMCOMP_LOG = "项目组合";
public static final String XMMED_LOG = "常用抗生素";
public static final String XMMEDGROUP_LOG = "常用抗生素组";
public static final String XMMEDINSTR_LOG = "抗生素通道号设定";
public static final String XMMEDMAIN_LOG = "细菌抗生素组对照";
public static final String XMKNOWLEDGE_LOG = "知识库";
public static final String LABCHECKRULES_LOG = "高级审核条件";
public static final String QCRULES_LOG = "质控设置";
public static final String REQINPUT = "科内开单";
} }

View File

@ -0,0 +1,67 @@
package com.transitPlatForm.interfaceCommon.utils.cache;
import com.alibaba.fastjson2.JSONArray;
import com.transitPlatForm.common.constant.CacheConstants;
import com.transitPlatForm.common.core.domain.entity.reg.RegDict;
import com.transitPlatForm.common.core.redis.RedisCache;
import com.transitPlatForm.common.utils.StringUtils;
import com.transitPlatForm.common.utils.spring.SpringUtils;
import java.util.Collection;
import java.util.List;
public class RegDictCache {
/**
* 设置字典缓存
*
* @param key 参数键
* @param regDictList 字典数据列表
*/
public static void setDictCache(String key, List<RegDict> regDictList) {
SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), regDictList);
}
/**
* 设置cache key
*
* @param configKey 参数键
* @return 缓存键key
*/
public static String getCacheKey(String configKey) {
return CacheConstants.REG_DICT_KEY + configKey;
}
/**
* 获取字典缓存
*
* @param key 参数键
* @return dictDatas 字典数据列表
*/
public static List<RegDict> getDictCache(String key) {
JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key));
if (StringUtils.isNotNull(arrayCache)) {
return arrayCache.toList(RegDict.class);
}
return null;
}
/**
* 删除指定字典缓存
*
* @param key 字典键
*/
public static void removeDictCache(String key) {
SpringUtils.getBean(RedisCache.class).deleteObject(getCacheKey(key));
}
/**
* 清空字典缓存
*/
public static void clearDictCache() {
Collection<String> keys = SpringUtils.getBean(RedisCache.class).keys(CacheConstants.REG_DICT_KEY + "*");
SpringUtils.getBean(RedisCache.class).deleteObject(keys);
}
}

View File

@ -44,6 +44,7 @@
<if test="Status != null and Status !=''">Status,</if> <if test="Status != null and Status !=''">Status,</if>
<if test="reqDetailName != null and reqDetailName !=''">reqDetailName,</if> <if test="reqDetailName != null and reqDetailName !=''">reqDetailName,</if>
<if test="bz != null and bz !=''">bz,</if> <if test="bz != null and bz !=''">bz,</if>
<if test="slzq != null and slzq !=''">slzq,</if>
create_by,create_time create_by,create_time
) )
values ( values (
@ -87,6 +88,7 @@
<if test="Status != null and Status !=''">#{Status},</if> <if test="Status != null and Status !=''">#{Status},</if>
<if test="reqDetailName != null and reqDetailName !=''">#{reqDetailName},</if> <if test="reqDetailName != null and reqDetailName !=''">#{reqDetailName},</if>
<if test="bz != null and bz !=''">#{bz},</if> <if test="bz != null and bz !=''">#{bz},</if>
<if test="slzq != null and slzq !=''">#{slzq},</if>
#{create_by},#{create_time} #{create_by},#{create_time}
) )
</insert> </insert>
@ -141,6 +143,7 @@
<if test="Status != null and Status != ''">Status = #{Status},</if> <if test="Status != null and Status != ''">Status = #{Status},</if>
<if test="reqDetailName != null and reqDetailName != ''">reqDetailName = #{reqDetailName},</if> <if test="reqDetailName != null and reqDetailName != ''">reqDetailName = #{reqDetailName},</if>
<if test="bz != null and bz != ''">bz = #{bz},</if> <if test="bz != null and bz != ''">bz = #{bz},</if>
<if test="slzq != null and slzq != ''">slzq = #{slzq},</if>
applyid = #{applyid} applyid = #{applyid}
</set> </set>
where applyid = #{applyid} where applyid = #{applyid}

View File

@ -1,9 +1,13 @@
package com.transitPlatForm.transitPF.controller; package com.transitPlatForm.transitPF.controller;
import com.transitPlatForm.common.annotation.Log;
import com.transitPlatForm.common.core.controller.BaseController; import com.transitPlatForm.common.core.controller.BaseController;
import com.transitPlatForm.common.core.domain.Result; import com.transitPlatForm.common.core.domain.Result;
import com.transitPlatForm.transitPF.pojo.DTO.RegRequestInfoDTO; import com.transitPlatForm.common.enums.BusinessType;
import com.transitPlatForm.interfaceCommon.constants.SysLogConstants;
import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.RegRequestInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.printDTO;
import com.transitPlatForm.transitPF.service.RegRequestInfoService; import com.transitPlatForm.transitPF.service.RegRequestInfoService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -11,6 +15,8 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List;
/** /**
* 自助开单界面 * 自助开单界面
*/ */
@ -32,21 +38,24 @@ public class RegRequestInfoController extends BaseController {
@ApiOperation("获取病人明细信息") @ApiOperation("获取病人明细信息")
@GetMapping("/queryReqDetail") @GetMapping("/queryReqDetail")
public Result queryReqDetail(String applyId){ public Result queryReqDetail(String applyId) {
return regRequestInfoService.queryReqDetail(applyId); return regRequestInfoService.queryReqDetail(applyId);
} }
@ApiOperation("开单项目信息") @ApiOperation("开单项目信息")
@GetMapping("/getItemInfo") @GetMapping("/getItemInfo")
public Result getItemInfo(){ public Result getItemInfo() {
return regRequestInfoService.getItemInfo(); return regRequestInfoService.getItemInfo();
} }
@Log(title = SysLogConstants.REQINPUT, businessType = BusinessType.INSERT)
@ApiOperation("保存申请单信息") @ApiOperation("保存申请单信息")
@PostMapping("/saveReqInfo") @PostMapping("/saveReqInfo")
public Result saveReqInfo(@RequestBody ReqApplyInfoDTO reqApplyInfoDTO){ public Result saveReqInfo(@RequestBody ReqApplyInfoDTO reqApplyInfoDTO) {
//设置操作员和登录机构 //设置操作员和登录机构
String loginYLJG = getLoginUser().getSysLoginParam().getLoginYLJG();
if (loginYLJG == null || loginYLJG.equals("")) return new Result("-1", "获取登录的医疗机构失败!");
reqApplyInfoDTO.getRegApply().setUserCode(getUsername()); reqApplyInfoDTO.getRegApply().setUserCode(getUsername());
reqApplyInfoDTO.getRegApply().setUserName(getLoginUser().getUser().getNickName()); reqApplyInfoDTO.getRegApply().setUserName(getLoginUser().getUser().getNickName());
reqApplyInfoDTO.getRegApply().setSrcHospCode(getLoginUser().getSysLoginParam().getLoginYLJG()); reqApplyInfoDTO.getRegApply().setSrcHospCode(getLoginUser().getSysLoginParam().getLoginYLJG());
@ -57,24 +66,29 @@ public class RegRequestInfoController extends BaseController {
/** /**
* 打印条码 * 打印条码
*
* @return * @return
*/ */
@Log(title = SysLogConstants.REQINPUT, businessType = BusinessType.PRINT)
@ApiOperation("打印条码") @ApiOperation("打印条码")
@GetMapping("/print") @PostMapping("/print")
public Result printBarCode(String applyId){ public Result printBarCode(@RequestBody List<printDTO> barCodeList) {
return regRequestInfoService.printBarCode(applyId,getUsername()); return regRequestInfoService.printBarCode(barCodeList, getUsername());
} }
@Log(title = SysLogConstants.REQINPUT, businessType = BusinessType.DELETE)
@ApiOperation("作废申请单") @ApiOperation("作废申请单")
@GetMapping("/cancelReq") @GetMapping("/cancelReq")
public Result cancelReq(String applyId){ public Result cancelReq(String applyId) {
return regRequestInfoService.cancelReq(applyId); return regRequestInfoService.cancelReq(applyId);
} }
@ApiOperation("打印机插件设置") @ApiOperation("打印机插件设置")
@GetMapping("/printsetup") @GetMapping("/printsetup")
public Result printsetup() { public Result printsetup() {
return regRequestInfoService.printsetup(); return regRequestInfoService.printsetup();
} }
@ApiOperation("打印机插件检查") @ApiOperation("打印机插件检查")
@GetMapping("/printcheck") @GetMapping("/printcheck")
public Result printcheck() { public Result printcheck() {

View File

@ -59,12 +59,12 @@ public class RegTransitSampleController extends BaseController {
} }
//@ApiOperation("条码退回") //@ApiOperation("条码退回")
@PostMapping("/sampleSignBack") // @PostMapping("/sampleSignBack")
public Result sampleSignBack(@RequestBody SampleSignVO sampleSignVO){ // public Result sampleSignBack(@RequestBody SampleSignVO sampleSignVO){
List<String> barcode = sampleSignVO.getBarcode(); // List<String> barcode = sampleSignVO.getBarcode();
String status = sampleSignVO.getStatus(); // String status = sampleSignVO.getStatus();
return regTransitSampleService.sampleSignBack(barcode,getUsername(),status); // return regTransitSampleService.sampleSignBack(barcode,getUsername(),status);
} // }
@ApiOperation("获取标本条码退回数据") @ApiOperation("获取标本条码退回数据")
@GetMapping("querySampleSignBack") @GetMapping("querySampleSignBack")

View File

@ -8,6 +8,7 @@ import com.transitPlatForm.common.core.page.TableDataInfo;
import com.transitPlatForm.common.enums.BusinessType; import com.transitPlatForm.common.enums.BusinessType;
import com.transitPlatForm.common.utils.poi.ExcelUtil; import com.transitPlatForm.common.utils.poi.ExcelUtil;
import com.transitPlatForm.common.core.domain.entity.reg.RegDict; import com.transitPlatForm.common.core.domain.entity.reg.RegDict;
import com.transitPlatForm.interfaceCommon.constants.SysLogConstants;
import com.transitPlatForm.transitPF.service.RegDictService; import com.transitPlatForm.transitPF.service.RegDictService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -37,7 +38,7 @@ public class RegDictController extends BaseController {
return getDataTable(list); return getDataTable(list);
} }
@ApiOperation("字典导出") @ApiOperation("字典导出")
@Log(title = "字典导出", businessType = BusinessType.EXPORT) @Log(title = SysLogConstants.DICT, businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
public void export(HttpServletResponse response, RegDict post) { public void export(HttpServletResponse response, RegDict post) {
List<RegDict> list = regDictService.selectDictList(post); List<RegDict> list = regDictService.selectDictList(post);
@ -64,7 +65,7 @@ public class RegDictController extends BaseController {
* 新增字典 * 新增字典
*/ */
@ApiOperation("新增字典") @ApiOperation("新增字典")
@Log(title = "字典管理", businessType = BusinessType.INSERT) @Log(title = SysLogConstants.DICT, businessType = BusinessType.INSERT)
@PostMapping @PostMapping
public AjaxResult add(@Validated @RequestBody RegDict post) { public AjaxResult add(@Validated @RequestBody RegDict post) {
if (!regDictService.checkDictNameUnique(post)) { if (!regDictService.checkDictNameUnique(post)) {
@ -80,7 +81,7 @@ public class RegDictController extends BaseController {
* 修改字典 * 修改字典
*/ */
@ApiOperation("修改字典") @ApiOperation("修改字典")
@Log(title = "字典管理", businessType = BusinessType.UPDATE) @Log(title = SysLogConstants.DICT, businessType = BusinessType.UPDATE)
@PutMapping @PutMapping
public AjaxResult edit(@Validated @RequestBody RegDict post) { public AjaxResult edit(@Validated @RequestBody RegDict post) {
if (!regDictService.checkDictNameUnique(post)) { if (!regDictService.checkDictNameUnique(post)) {
@ -96,7 +97,7 @@ public class RegDictController extends BaseController {
* 删除字典 * 删除字典
*/ */
@ApiOperation("删除字典") @ApiOperation("删除字典")
@Log(title = "字典管理", businessType = BusinessType.DELETE) @Log(title = SysLogConstants.DICT, businessType = BusinessType.DELETE)
@DeleteMapping("/{dictIds}") @DeleteMapping("/{dictIds}")
public AjaxResult remove(@PathVariable Long[] dictIds) { public AjaxResult remove(@PathVariable Long[] dictIds) {
return toAjax(regDictService.deleteDictByIds(dictIds)); return toAjax(regDictService.deleteDictByIds(dictIds));
@ -111,4 +112,12 @@ public class RegDictController extends BaseController {
List<RegDict> posts = regDictService.selectDictAll(); List<RegDict> posts = regDictService.selectDictAll();
return success(posts); return success(posts);
} }
@ApiOperation("获取字典最大编码")
@GetMapping("/getMaxDictCode")
public AjaxResult getMaxDictCode(String dictType) {
String loginYLJG = getLoginUser().getSysLoginParam().getLoginYLJG();
if(loginYLJG==null || loginYLJG.equals("")) return AjaxResult.error("获取登录的医疗机构失败!");
return regDictService.getMaxDictCode(dictType,loginYLJG);
}
} }

View File

@ -80,4 +80,7 @@ public interface RegDictMapper {
RegDict checkDictCodeUnique(@Param("dictCode") String DictCode,@Param("dictType") String dictType); RegDict checkDictCodeUnique(@Param("dictCode") String DictCode,@Param("dictType") String dictType);
List<RegDict> getInfoOne(String dict_type); List<RegDict> getInfoOne(String dict_type);
String getMaxDictCode(@Param("dict_type")String dict_type,@Param("hospital_id")String hospital_id);
} }

View File

@ -3,7 +3,7 @@ package com.transitPlatForm.transitPF.mapper;
import com.transitPlatForm.common.core.domain.entity.reg.RegApply; import com.transitPlatForm.common.core.domain.entity.reg.RegApply;
import com.transitPlatForm.common.core.domain.entity.reg.RegApplyDetail; import com.transitPlatForm.common.core.domain.entity.reg.RegApplyDetail;
import com.transitPlatForm.common.core.domain.entity.reg.RegTransitSampleDetail; import com.transitPlatForm.common.core.domain.entity.reg.RegTransitSampleDetail;
import com.transitPlatForm.transitPF.pojo.DTO.RegRequestInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.RegRequestInfoDTO;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;

View File

@ -1,4 +1,4 @@
package com.transitPlatForm.transitPF.pojo.DTO; package com.transitPlatForm.transitPF.pojo.DTO.reqinfo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;

View File

@ -0,0 +1,13 @@
package com.transitPlatForm.transitPF.pojo.DTO.reqinfo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class printDTO {
private String applyId;
private String barcode;
}

View File

@ -1,5 +1,6 @@
package com.transitPlatForm.transitPF.service; package com.transitPlatForm.transitPF.service;
import com.transitPlatForm.common.core.domain.AjaxResult;
import com.transitPlatForm.common.core.domain.Result; import com.transitPlatForm.common.core.domain.Result;
import com.transitPlatForm.common.core.domain.entity.reg.RegDict; import com.transitPlatForm.common.core.domain.entity.reg.RegDict;
@ -87,4 +88,7 @@ public interface RegDictService {
int updateDict(RegDict Dict); int updateDict(RegDict Dict);
Result getInfoOne(String dictType); Result getInfoOne(String dictType);
AjaxResult getMaxDictCode(String dictType,String loginYLJG);
} }

View File

@ -1,8 +1,11 @@
package com.transitPlatForm.transitPF.service; package com.transitPlatForm.transitPF.service;
import com.transitPlatForm.common.core.domain.Result; import com.transitPlatForm.common.core.domain.Result;
import com.transitPlatForm.transitPF.pojo.DTO.RegRequestInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.RegRequestInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.printDTO;
import java.util.List;
public interface RegRequestInfoService { public interface RegRequestInfoService {
Result queryRegRequestInfo(RegRequestInfoDTO regRequestInfoDTO); Result queryRegRequestInfo(RegRequestInfoDTO regRequestInfoDTO);
@ -13,7 +16,7 @@ public interface RegRequestInfoService {
Result saveReqInfo(ReqApplyInfoDTO reqApplyInfoDTO); Result saveReqInfo(ReqApplyInfoDTO reqApplyInfoDTO);
Result printBarCode(String applyId,String userName); Result printBarCode(List<printDTO> barCodeList, String userName);
Result cancelReq(String applyId); Result cancelReq(String applyId);
Result printcheck(); Result printcheck();

View File

@ -1,9 +1,12 @@
package com.transitPlatForm.transitPF.service.impl; package com.transitPlatForm.transitPF.service.impl;
import com.transitPlatForm.common.constant.UserConstants; import com.transitPlatForm.common.constant.UserConstants;
import com.transitPlatForm.common.core.domain.AjaxResult;
import com.transitPlatForm.common.core.domain.Result; import com.transitPlatForm.common.core.domain.Result;
import com.transitPlatForm.common.exception.ServiceException; import com.transitPlatForm.common.exception.ServiceException;
import com.transitPlatForm.common.utils.StringUtils; import com.transitPlatForm.common.utils.StringUtils;
import com.transitPlatForm.interfaceCommon.utils.LisUtil;
import com.transitPlatForm.interfaceCommon.utils.cache.RegDictCache;
import com.transitPlatForm.transitPF.mapper.RegDictMapper; import com.transitPlatForm.transitPF.mapper.RegDictMapper;
import com.transitPlatForm.common.core.domain.entity.reg.RegDict; import com.transitPlatForm.common.core.domain.entity.reg.RegDict;
import com.transitPlatForm.transitPF.service.RegDictService; import com.transitPlatForm.transitPF.service.RegDictService;
@ -13,6 +16,8 @@ import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
import static com.transitPlatForm.common.core.domain.AjaxResult.success;
@Service @Service
@Slf4j @Slf4j
public class RegDictServiceImpl implements RegDictService { public class RegDictServiceImpl implements RegDictService {
@ -103,7 +108,11 @@ public class RegDictServiceImpl implements RegDictService {
*/ */
@Override @Override
public int deleteDictById(Long DictId) { public int deleteDictById(Long DictId) {
return dictMapper.deleteDictById(DictId); int i = dictMapper.deleteDictById(DictId);
//设置缓存
RegDict regDict = dictMapper.selectDictById(DictId);
RegDictCache.setDictCache(regDict.getDictType(),dictMapper.getInfoOne(regDict.getDictType()));
return i;
} }
/** /**
@ -131,7 +140,11 @@ public class RegDictServiceImpl implements RegDictService {
*/ */
@Override @Override
public int insertDict(RegDict Dict) { public int insertDict(RegDict Dict) {
return dictMapper.insertDict(Dict); int i = dictMapper.insertDict(Dict);
//设置缓存
List<RegDict> regDictList = dictMapper.getInfoOne(Dict.getDictType());
RegDictCache.setDictCache(Dict.getDictType(),regDictList);
return i;
} }
/** /**
@ -142,12 +155,38 @@ public class RegDictServiceImpl implements RegDictService {
*/ */
@Override @Override
public int updateDict(RegDict Dict) { public int updateDict(RegDict Dict) {
return dictMapper.updateDict(Dict); int i = dictMapper.updateDict(Dict);
//设置缓存
List<RegDict> regDictList = dictMapper.getInfoOne(Dict.getDictType());
RegDictCache.setDictCache(Dict.getDictType(),regDictList);
return i;
} }
@Override @Override
public Result getInfoOne(String dictType) { public Result getInfoOne(String dictType) {
List<RegDict> regDictList = dictMapper.getInfoOne(dictType); List<RegDict> dictCacheList = RegDictCache.getDictCache(dictType);
return new Result("0","获取数据成功!",regDictList); if(dictCacheList == null) {
//没取到缓存,则设置缓存
dictCacheList = dictMapper.getInfoOne(dictType);
RegDictCache.setDictCache(dictType,dictCacheList);
}
return new Result("0","获取数据成功!",dictCacheList);
}
/**
* 获取字典的最大值
* @param dictType
* @return
*/
@Override
public AjaxResult getMaxDictCode(String dictType,String loginYLJG) {
String maxDictCode = getMaxNo(dictType,loginYLJG);
return success((Object) maxDictCode);
}
public synchronized String getMaxNo(String dictType,String loginYLJG){
String maxDictCode = dictMapper.getMaxDictCode(dictType,loginYLJG);
if(LisUtil.isBank(maxDictCode).equals("")) maxDictCode = "0";
return LisUtil.isBank(Integer.parseInt(maxDictCode)+1);
} }
} }

View File

@ -14,15 +14,15 @@ import com.transitPlatForm.interfaceCommon.mapper.RegApplyDetailMapper;
import com.transitPlatForm.interfaceCommon.mapper.RegApplyMapper; import com.transitPlatForm.interfaceCommon.mapper.RegApplyMapper;
import com.transitPlatForm.interfaceCommon.utils.CommonUtil; import com.transitPlatForm.interfaceCommon.utils.CommonUtil;
import com.transitPlatForm.interfaceCommon.utils.LisUtil; import com.transitPlatForm.interfaceCommon.utils.LisUtil;
import com.transitPlatForm.interfaceCommon.utils.LoginConfigParamUtil;
import com.transitPlatForm.interfaceCommon.websocket.ChatWebSocketServer; import com.transitPlatForm.interfaceCommon.websocket.ChatWebSocketServer;
import com.transitPlatForm.interfaceCommon.websocket.WebSocketMessage; import com.transitPlatForm.interfaceCommon.websocket.WebSocketMessage;
import com.transitPlatForm.interfaceCommon.websocket.WebSocketUser; import com.transitPlatForm.interfaceCommon.websocket.WebSocketUser;
import com.transitPlatForm.transitPF.mapper.LabIntersendListMapper; import com.transitPlatForm.transitPF.mapper.LabIntersendListMapper;
import com.transitPlatForm.transitPF.mapper.RegRequestInfoMapper; import com.transitPlatForm.transitPF.mapper.RegRequestInfoMapper;
import com.transitPlatForm.transitPF.mapper.RegTransitSampleMapper; import com.transitPlatForm.transitPF.mapper.RegTransitSampleMapper;
import com.transitPlatForm.transitPF.pojo.DTO.RegRequestInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.RegRequestInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO; import com.transitPlatForm.transitPF.pojo.DTO.ReqApplyInfoDTO;
import com.transitPlatForm.transitPF.pojo.DTO.reqinfo.printDTO;
import com.transitPlatForm.transitPF.service.RegRequestInfoService; import com.transitPlatForm.transitPF.service.RegRequestInfoService;
import com.transitPlatForm.transitPF.service.util.RequestInfoUtil; import com.transitPlatForm.transitPF.service.util.RequestInfoUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -34,8 +34,6 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service @Service
@Slf4j @Slf4j
@ -63,36 +61,39 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
/** /**
* 获取申请单列表 * 获取申请单列表
*
* @param regRequestInfoDTO * @param regRequestInfoDTO
* @return * @return
*/ */
@Override @Override
public Result queryRegRequestInfo(RegRequestInfoDTO regRequestInfoDTO) { public Result queryRegRequestInfo(RegRequestInfoDTO regRequestInfoDTO) {
List<RegApply> regApplyList = regRequestInfoMapper.queryRegRequestInfo(regRequestInfoDTO); List<RegApply> regApplyList = regRequestInfoMapper.queryRegRequestInfo(regRequestInfoDTO);
return new Result("0","查询成功!",regApplyList); return new Result("0", "查询成功!", regApplyList);
} }
/** /**
* 获取明细信息 * 获取明细信息
*
* @param applyId * @param applyId
* @return * @return
*/ */
@Override @Override
public Result queryReqDetail(String applyId) { public Result queryReqDetail(String applyId) {
RegApply regApply = regApplyMapper.queryOne(applyId); RegApply regApply = regApplyMapper.queryOne(applyId);
List<RegApplyDetail> regApplyDetailList = regRequestInfoMapper.queryReqDetail(applyId); List<RegApplyDetail> regApplyDetailList = regRequestInfoMapper.queryReqDetail(applyId);
ReqApplyInfoDTO reqApplyInfoDTO = new ReqApplyInfoDTO(regApply,regApplyDetailList); ReqApplyInfoDTO reqApplyInfoDTO = new ReqApplyInfoDTO(regApply, regApplyDetailList);
return new Result("0","查询成功!",reqApplyInfoDTO); return new Result("0", "查询成功!", reqApplyInfoDTO);
} }
@Override @Override
public Result getItemInfo() { public Result getItemInfo() {
List<Map<String, Object>> regItemList = regRequestInfoMapper.getItemInfo(); List<Map<String, Object>> regItemList = regRequestInfoMapper.getItemInfo();
return new Result("0","查询成功!",regItemList); return new Result("0", "查询成功!", regItemList);
} }
/** /**
* 保存申请单信息和条码信息 * 保存申请单信息和条码信息
*
* @param reqApplyInfoDTO * @param reqApplyInfoDTO
* @return * @return
*/ */
@ -101,19 +102,19 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
RegApply regApply = reqApplyInfoDTO.getRegApply(); RegApply regApply = reqApplyInfoDTO.getRegApply();
List<RegApplyDetail> regApplyDetailList = reqApplyInfoDTO.getRegApplyDetailList(); List<RegApplyDetail> regApplyDetailList = reqApplyInfoDTO.getRegApplyDetailList();
String status = regApply.getStatus(); String status = regApply.getStatus();
if(status == null) status = ""; if (status == null) status = "";
if(!status.equals("10") && !status.equals("")) return new Result("-1","不是新增状态不能修改申请单!"); if (!status.equals("10") && !status.equals("")) return new Result("-1", "不是新增状态不能修改申请单!");
//修改数据 //修改数据
if(!status.equals("")){ if (!status.equals("")) {
//修改申请单信息 //修改申请单信息
applicationContext.getBean(RegRequestInfoServiceImpl.class).updateApply(regApply,regApplyDetailList); applicationContext.getBean(RegRequestInfoServiceImpl.class).updateApply(regApply, regApplyDetailList);
//删除条码信息 //删除条码信息
applicationContext.getBean(RegRequestInfoServiceImpl.class).delSampleInfo(regApply.getApplyid()); applicationContext.getBean(RegRequestInfoServiceImpl.class).delSampleInfo(regApply.getApplyid());
//重新生成条码信息 //重新生成条码信息
createBarcode(regApply.getApplyid()); createBarcode(regApply.getApplyid());
}else{ } else {
//申请单号 //申请单号
String applyId = "PT"+regApply.getSrcHospCode()+DateUtil.format(commonUtil.getCurrentTime(),"yyyyMMdd")+commonUtil.getNextSeq_pro("applyno",4); String applyId = "PT" + regApply.getSrcHospCode() + DateUtil.format(commonUtil.getCurrentTime(), "yyyyMMdd") + commonUtil.getNextSeq_pro("applyno", 4);
regApply.setApplyid(applyId); regApply.setApplyid(applyId);
regApply.setStatus("10"); //申请单状态 regApply.setStatus("10"); //申请单状态
regApply.setCreate_by(regApply.getUserCode()); regApply.setCreate_by(regApply.getUserCode());
@ -126,63 +127,60 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
String xmmc = ""; String xmmc = "";
for (RegApplyDetail regApplyDetail : regApplyDetailList) { for (RegApplyDetail regApplyDetail : regApplyDetailList) {
regApplyDetail.setApplyid(applyId); regApplyDetail.setApplyid(applyId);
xmmc = xmmc + "," + regApplyDetail.getOrderItemName(); xmmc = xmmc + "," + regApplyDetail.getOrderItemName();
} }
regApply.setReqDetailName(xmmc.substring(1)); regApply.setReqDetailName(xmmc.substring(1));
//保存申请单信息 //保存申请单信息
applicationContext.getBean(RegRequestInfoServiceImpl.class).saveReqInfo(regApply,regApplyDetailList); applicationContext.getBean(RegRequestInfoServiceImpl.class).saveReqInfo(regApply, regApplyDetailList);
} }
//生成条码信息 //生成条码信息
Result result = createBarcode(regApply.getApplyid()); Result result = createBarcode(regApply.getApplyid());
if(!result.getCode().equals("0")) return result; if (!result.getCode().equals("0")) return result;
return new Result("0","保存成功!"); return new Result("0", "保存成功!");
} }
/** /**
* 打印条码 * 打印条码
* @param applyId *
* @param barCodeList
* @param userName
* @return * @return
*/ */
@Override @Override
public Result printBarCode(String applyId,String userName) { public Result printBarCode(List<printDTO> barCodeList, String userName) {
//产生条码信息 List<String> barcodeList1 = new ArrayList<>();
Result result1 = createBarcode(applyId); for (printDTO printDTO : barCodeList) {
if(!result1.getCode().equals("0")) return result1; String barcode = printDTO.getBarcode();
RegTransitSampleDetail regTransitSampleDetail = new RegTransitSampleDetail(); barcodeList1.add(barcode);
regTransitSampleDetail.setApplyid(applyId); String applyId = printDTO.getApplyId();
List<RegTransitSampleDetail> regTransitSampleDetailList = regTransitSampleMapper.getRegTransitSampleDetail(regTransitSampleDetail); RegTransitSample regTransitSample = new RegTransitSample();
if(regTransitSampleDetailList.size() <= 0) return new Result("-1","没有找到对应的条码信息!"); regTransitSample.setBarcode(barcode);
List<String> barcodeList = new ArrayList<>(); List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample);
for (RegTransitSampleDetail transitSampleDetail : regTransitSampleDetailList) { if (regTransitSampleList.size() <= 0) return new Result("-1", "没有查到该标本的条码信息,请先保存数据!");
if(barcodeList.contains(transitSampleDetail.getBarcode())) continue; //修改打印状态
barcodeList.add(transitSampleDetail.getBarcode()); applicationContext.getBean(RegRequestInfoServiceImpl.class).updatePrintStatus(applyId, barcode);
} }
Result result = printBar(barcodeList,userName);
if(!result.equals("0")) return result;
for (String barCode: barcodeList) {
//修改状态
applicationContext.getBean(RegRequestInfoServiceImpl.class).updatePrintStatus(applyId,barCode);
} printBar(barcodeList1, userName);
return new Result("0","打印成功!"); return new Result("0", "打印成功!");
} }
@Override @Override
public Result cancelReq(String applyId) { public Result cancelReq(String applyId) {
RegApply regApply = regApplyMapper.queryOne(applyId); RegApply regApply = regApplyMapper.queryOne(applyId);
if(regApply == null) return new Result("-1","没有找到申请单信息!"); if (regApply == null) return new Result("-1", "没有找到申请单信息!");
int status = Integer.parseInt(regApply.getStatus()); int status = Integer.parseInt(regApply.getStatus());
if(status > 40 && status != 100) return new Result("-1","条码已经签收,不允许作废!"); if (status > 40 && status != 100) return new Result("-1", "条码已经签收或者已经作废,不允许作废!");
List<String> barcodeList = getBarcodeList(applyId); List<String> barcodeList = getBarcodeList(applyId);
requestInfoUtil.cancelRequest(applyId,barcodeList); requestInfoUtil.cancelRequest(applyId, barcodeList);
return new Result("0","作废申请单成功!"); return new Result("0", "作废申请单成功!");
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveReqInfo(RegApply regApply,List<RegApplyDetail> regApplyDetailList){ public void saveReqInfo(RegApply regApply, List<RegApplyDetail> regApplyDetailList) {
regApplyMapper.insert(regApply); regApplyMapper.insert(regApply);
for (RegApplyDetail regApplyDetail : regApplyDetailList) { for (RegApplyDetail regApplyDetail : regApplyDetailList) {
regApplyDetailMapper.insert(regApplyDetail); regApplyDetailMapper.insert(regApplyDetail);
@ -192,22 +190,23 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
/** /**
* 产生条码信息 * 产生条码信息
*
* @param applyId * @param applyId
* @return * @return
*/ */
public Result createBarcode(String applyId){ public Result createBarcode(String applyId) {
String ls_nopriceitems = ""; String ls_nopriceitems = "";
if(applyId == null || applyId.equals("")) return new Result("-1","申请单号不能为空!"); if (applyId == null || applyId.equals("")) return new Result("-1", "申请单号不能为空!");
RegApply regApply = regApplyMapper.queryOne(applyId); RegApply regApply = regApplyMapper.queryOne(applyId);
if(regApply == null) return new Result("0","没有找到申请单信息!"); if (regApply == null) return new Result("0", "没有找到申请单信息!");
RegApplyDetail regApplyDetail1 = new RegApplyDetail(); RegApplyDetail regApplyDetail1 = new RegApplyDetail();
regApplyDetail1.setApplyid(applyId); regApplyDetail1.setApplyid(applyId);
List<RegApplyDetail> regApplyDetailList = regApplyDetailMapper.queryList(regApplyDetail1); List<RegApplyDetail> regApplyDetailList = regApplyDetailMapper.queryList(regApplyDetail1);
if(regApplyDetailList.size() <= 0) return new Result("0","没有找到申请单明细信息!"); if (regApplyDetailList.size() <= 0) return new Result("0", "没有找到申请单明细信息!");
List<RegTransitSample> regTransitSampleList = new ArrayList<>(); List<RegTransitSample> regTransitSampleList = new ArrayList<>();
List<RegTransitSampleDetail> regTransitSampleDetailList = new ArrayList<>(); List<RegTransitSampleDetail> regTransitSampleDetailList = new ArrayList<>();
List<Map<String,Object>> reqSqdInfoList = new ArrayList<>(); List<Map<String, Object>> reqSqdInfoList = new ArrayList<>();
//获取项目的对照信息列表 //获取项目的对照信息列表
List<Map<String, Object>> feeClassList = commonMapper.getFeeClassList(); List<Map<String, Object>> feeClassList = commonMapper.getFeeClassList();
@ -218,62 +217,62 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
//判断申请单是否已经产生条码 //判断申请单是否已经产生条码
List<RegTransitSampleDetail> regItemList = regRequestInfoMapper.existSQD(regApplyDetail.getApplyid(), String.valueOf(regApplyDetail.getUid())); List<RegTransitSampleDetail> regItemList = regRequestInfoMapper.existSQD(regApplyDetail.getApplyid(), String.valueOf(regApplyDetail.getUid()));
if(regItemList.size() > 0) continue; if (regItemList.size() > 0) continue;
//判断是否对照 //判断是否对照
Map<String, Object> feeClass = commonUtil.getFeeClass(feeClassList,orderItemCode); Map<String, Object> feeClass = commonUtil.getFeeClass(feeClassList, orderItemCode);
if(feeClass.size() <= 0) { if (feeClass.size() <= 0) {
ls_nopriceitems += "~r~n"+orderItemCode + "|" + orderItemName; ls_nopriceitems += "~r~n" + orderItemCode + "|" + orderItemName;
continue; continue;
} }
String itemClass = LisUtil.isBank(feeClass.get("itemclass")); String itemClass = LisUtil.isBank(feeClass.get("itemclass"));
Map<String,Object> reqSqdInfo = new HashMap<>(); Map<String, Object> reqSqdInfo = new HashMap<>();
reqSqdInfo.put("sample_PatId",regApply.getPatId()); reqSqdInfo.put("sample_PatId", regApply.getPatId());
reqSqdInfo.put("sample_PatCardType",regApply.getPatCardType()); reqSqdInfo.put("sample_PatCardType", regApply.getPatCardType());
reqSqdInfo.put("sample_PatCardNo",regApply.getPatCardNo()); reqSqdInfo.put("sample_PatCardNo", regApply.getPatCardNo());
reqSqdInfo.put("sample_PatType",regApply.getPatType()); reqSqdInfo.put("sample_PatType", regApply.getPatType());
reqSqdInfo.put("sample_RegNo",regApply.getRegNo()); reqSqdInfo.put("sample_RegNo", regApply.getRegNo());
reqSqdInfo.put("sample_PatName",regApply.getPatName()); reqSqdInfo.put("sample_PatName", regApply.getPatName());
reqSqdInfo.put("sample_PatSex",regApply.getPatSex()); reqSqdInfo.put("sample_PatSex", regApply.getPatSex());
reqSqdInfo.put("sample_PatAge",regApply.getPatAge()); reqSqdInfo.put("sample_PatAge", regApply.getPatAge());
reqSqdInfo.put("sample_AgeUnit",regApply.getAgeUnit()); reqSqdInfo.put("sample_AgeUnit", regApply.getAgeUnit());
reqSqdInfo.put("sample_PatAgeShow",regApply.getPatAgeShow()); reqSqdInfo.put("sample_PatAgeShow", regApply.getPatAgeShow());
reqSqdInfo.put("sample_PatBirthday",DateUtil.format(regApply.getPatBirthday(),"yyyy-MM-dd")); reqSqdInfo.put("sample_PatBirthday", DateUtil.format(regApply.getPatBirthday(), "yyyy-MM-dd"));
reqSqdInfo.put("sample_PatIdentity",regApply.getPatIdentity()); reqSqdInfo.put("sample_PatIdentity", regApply.getPatIdentity());
reqSqdInfo.put("sample_Phone",regApply.getPhone()); reqSqdInfo.put("sample_Phone", regApply.getPhone());
reqSqdInfo.put("sample_Address",regApply.getAddress()); reqSqdInfo.put("sample_Address", regApply.getAddress());
reqSqdInfo.put("sample_PatFeeType",regApply.getPatFeeType()); reqSqdInfo.put("sample_PatFeeType", regApply.getPatFeeType());
reqSqdInfo.put("sample_DepartCode",regApply.getDepartCode()); reqSqdInfo.put("sample_DepartCode", regApply.getDepartCode());
reqSqdInfo.put("sample_DepartName",regApply.getDepartName()); reqSqdInfo.put("sample_DepartName", regApply.getDepartName());
reqSqdInfo.put("sample_AreaCode",regApply.getAreaCode()); reqSqdInfo.put("sample_AreaCode", regApply.getAreaCode());
reqSqdInfo.put("sample_AreaName",regApply.getAreaName()); reqSqdInfo.put("sample_AreaName", regApply.getAreaName());
reqSqdInfo.put("sample_PatBed",regApply.getPatBed()); reqSqdInfo.put("sample_PatBed", regApply.getPatBed());
reqSqdInfo.put("sample_DiagnosisCode",regApply.getDiagnosisCode()); reqSqdInfo.put("sample_DiagnosisCode", regApply.getDiagnosisCode());
reqSqdInfo.put("sample_DiagnosisName",regApply.getDiagnosisName()); reqSqdInfo.put("sample_DiagnosisName", regApply.getDiagnosisName());
reqSqdInfo.put("sample_OrderUserCode",regApply.getDoctorCode()); reqSqdInfo.put("sample_OrderUserCode", regApply.getDoctorCode());
reqSqdInfo.put("sample_OrderUserName",regApply.getDoctorName()); reqSqdInfo.put("sample_OrderUserName", regApply.getDoctorName());
reqSqdInfo.put("sample_OrderTime",DateUtil.format(regApply.getOrderTime(),"yyyy-MM-dd HH:mm:ss")); reqSqdInfo.put("sample_OrderTime", DateUtil.format(regApply.getOrderTime(), "yyyy-MM-dd HH:mm:ss"));
reqSqdInfo.put("sample_SrcHospCode",regApply.getSrcHospCode()); reqSqdInfo.put("sample_SrcHospCode", regApply.getSrcHospCode());
reqSqdInfo.put("sample_SrcHospName",regApply.getSrcHospName()); reqSqdInfo.put("sample_SrcHospName", regApply.getSrcHospName());
reqSqdInfo.put("sample_SampleTypeCode",regApplyDetail.getSampleTypeCode()); reqSqdInfo.put("sample_SampleTypeCode", regApplyDetail.getSampleTypeCode());
reqSqdInfo.put("sample_SampleTypeName",regApplyDetail.getSampleTypeName()); reqSqdInfo.put("sample_SampleTypeName", regApplyDetail.getSampleTypeName());
reqSqdInfo.put("sample_IsER","0"); //是否急查 reqSqdInfo.put("sample_IsER", "0"); //是否急查
reqSqdInfo.put("sample_Status","10"); //开单状态 reqSqdInfo.put("sample_Status", "10"); //开单状态
reqSqdInfo.put("sample_SrcHospBarcode",itemClass); //条码类别 reqSqdInfo.put("sample_SrcHospBarcode", itemClass); //条码类别
reqSqdInfo.put("sample_UserCode",regApply.getUserCode()); reqSqdInfo.put("sample_UserCode", regApply.getUserCode());
reqSqdInfo.put("sample_UserName",regApply.getUserName()); reqSqdInfo.put("sample_UserName", regApply.getUserName());
reqSqdInfo.put("sample_bz",regApply.getBz()); reqSqdInfo.put("sample_bz", regApply.getBz());
reqSqdInfo.put("detail_OrderItemCode",regApplyDetail.getOrderItemCode()); reqSqdInfo.put("detail_OrderItemCode", regApplyDetail.getOrderItemCode());
reqSqdInfo.put("detail_OrderItemName",regApplyDetail.getOrderItemName()); reqSqdInfo.put("detail_OrderItemName", regApplyDetail.getOrderItemName());
reqSqdInfo.put("detail_SrcOrderItemCode",regApplyDetail.getOrderItemCode()); reqSqdInfo.put("detail_SrcOrderItemCode", regApplyDetail.getOrderItemCode());
reqSqdInfo.put("detail_SrcOrderItemName",regApplyDetail.getOrderItemName()); reqSqdInfo.put("detail_SrcOrderItemName", regApplyDetail.getOrderItemName());
reqSqdInfo.put("detail_cost",regApplyDetail.getAmount()); reqSqdInfo.put("detail_cost", regApplyDetail.getAmount());
reqSqdInfo.put("detail_DataSource","1"); reqSqdInfo.put("detail_DataSource", "1");
reqSqdInfo.put("detail_applyid",regApply.getApplyid()); reqSqdInfo.put("detail_applyid", regApply.getApplyid());
reqSqdInfo.put("detail_applyDetailId",regApplyDetail.getUid()); reqSqdInfo.put("detail_applyDetailId", regApplyDetail.getUid());
reqSqdInfoList.add(reqSqdInfo); reqSqdInfoList.add(reqSqdInfo);
} }
@ -288,11 +287,11 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
} }
}); });
String itemClassOne = "" ; String itemClassOne = "";
int xh = 0,k = -1; int xh = 0, k = -1;
String barcode = ""; String barcode = "";
String jymd = ""; String jymd = "";
RegTransitSample regTransitSample = null; RegTransitSample regTransitSample = null;
for (Map<String, Object> stringObjectMap : reqSqdInfoList) { for (Map<String, Object> stringObjectMap : reqSqdInfoList) {
String itemClass = LisUtil.isBank(stringObjectMap.get("sample_SrcHospBarcode")); String itemClass = LisUtil.isBank(stringObjectMap.get("sample_SrcHospBarcode"));
@ -318,7 +317,11 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
} else { } else {
xh = 1; xh = 1;
//条码号 //条码号
barcode = regApply.getSrcHospCode() + DateUtil.format(commonUtil.getCurrentTime(), "yyyyMMdd") + commonUtil.getNextSeq_pro("barcode", 4); String srcHospCode = regApply.getSrcHospCode();
if (srcHospCode.length() == 1) {
srcHospCode = String.format("%02d", Integer.valueOf(srcHospCode));
}
barcode = DateUtil.format(commonUtil.getCurrentTime(), "yyyyMMdd") + srcHospCode + commonUtil.getNextSeq_pro("barcode", 4);
itemClassOne = itemClass; itemClassOne = itemClass;
} }
@ -376,18 +379,18 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
regTransitSample.setCreate_by(LisUtil.isBank(stringObjectMap.get("sample_UserCode"))); regTransitSample.setCreate_by(LisUtil.isBank(stringObjectMap.get("sample_UserCode")));
regTransitSample.setCreate_time(commonUtil.getCurrentTime()); regTransitSample.setCreate_time(commonUtil.getCurrentTime());
regTransitSample.setExpressNum(LisUtil.isBank(stringObjectMap.get("sample_bz"))); regTransitSample.setExpressNum(LisUtil.isBank(stringObjectMap.get("sample_bz")));
regTransitSampleList.add(k,regTransitSample); regTransitSampleList.add(k, regTransitSample);
} }
//保存数据 //保存数据
applicationContext.getBean(RegRequestInfoServiceImpl.class).saveTransitSample(regTransitSampleList, regTransitSampleDetailList); applicationContext.getBean(RegRequestInfoServiceImpl.class).saveTransitSample(regTransitSampleList, regTransitSampleDetailList);
if(!ls_nopriceitems.equals("")){ if (!ls_nopriceitems.equals("")) {
return new Result("-1","有如下项目未分类无法生成条码,请先分类:"+ls_nopriceitems); return new Result("-1", "有如下项目未分类无法生成条码,请先分类:" + ls_nopriceitems);
} }
return new Result("0","生成条码成功!"); return new Result("0", "生成条码成功!");
} }
@ -403,7 +406,7 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updateApply(RegApply regApply, List<RegApplyDetail> regApplyDetailList){ public void updateApply(RegApply regApply, List<RegApplyDetail> regApplyDetailList) {
RegApplyDetail regApplyDetail1 = new RegApplyDetail(); RegApplyDetail regApplyDetail1 = new RegApplyDetail();
regApplyDetail1.setApplyid(regApply.getApplyid()); regApplyDetail1.setApplyid(regApply.getApplyid());
String xmmc = ""; String xmmc = "";
@ -420,10 +423,11 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
/** /**
* 删除条码信息 * 删除条码信息
*
* @param applyId * @param applyId
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void delSampleInfo(String applyId){ public void delSampleInfo(String applyId) {
RegTransitSampleDetail regTransitSampleDetail = new RegTransitSampleDetail(); RegTransitSampleDetail regTransitSampleDetail = new RegTransitSampleDetail();
regTransitSampleDetail.setApplyid(applyId); regTransitSampleDetail.setApplyid(applyId);
List<RegTransitSampleDetail> regTransitSampleDetailList = regTransitSampleMapper.getRegTransitSampleDetail(regTransitSampleDetail); List<RegTransitSampleDetail> regTransitSampleDetailList = regTransitSampleMapper.getRegTransitSampleDetail(regTransitSampleDetail);
@ -435,9 +439,10 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
/** /**
* 打印条码 * 打印条码
*
* @param barcode * @param barcode
*/ */
public Result printBar(List<String> barcode,String userName){ public Result printBar(List<String> barcode, String userName) {
String sqhStr = StrUtil.join(",", barcode); String sqhStr = StrUtil.join(",", barcode);
LabIntersendList labIntersendList = new LabIntersendList(); LabIntersendList labIntersendList = new LabIntersendList();
String guid = UUID.randomUUID().toString(); String guid = UUID.randomUUID().toString();
@ -447,16 +452,16 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
labIntersendList.setUserid(userName); labIntersendList.setUserid(userName);
labIntersendList.setCreatedate(commonUtil.getCurrentTime()); labIntersendList.setCreatedate(commonUtil.getCurrentTime());
labIntersendListMapper.insert(labIntersendList); labIntersendListMapper.insert(labIntersendList);
WebSocketMessage wsMessage=new WebSocketMessage(); WebSocketMessage wsMessage = new WebSocketMessage();
wsMessage.setMsgType("lisbarprint"); wsMessage.setMsgType("lisbarprint");
wsMessage.setData("lisbarprint://"+guid); wsMessage.setData("lisbarprint://" + guid);
wsMessage.setSenderId(SecurityUtils.getUsername()); wsMessage.setSenderId(SecurityUtils.getUsername());
return sendprintmsg(JSONUtil.toJsonStr(wsMessage)); return sendprintmsg(JSONUtil.toJsonStr(wsMessage));
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void updatePrintStatus(String applyId,String barCode){ public void updatePrintStatus(String applyId, String barCode) {
//修改申请单状态 //修改申请单状态
RegApply regApply = new RegApply(); RegApply regApply = new RegApply();
regApply.setStatus("20"); regApply.setStatus("20");
@ -471,63 +476,66 @@ public class RegRequestInfoServiceImpl implements RegRequestInfoService {
} }
public List<String> getBarcodeList(String applyId){ public List<String> getBarcodeList(String applyId) {
List<String> barcodeList = new ArrayList<>(); List<String> barcodeList = new ArrayList<>();
if(applyId == null || applyId.equals("")) return barcodeList; if (applyId == null || applyId.equals("")) return barcodeList;
RegTransitSampleDetail regTransitSampleDetail = new RegTransitSampleDetail(); RegTransitSampleDetail regTransitSampleDetail = new RegTransitSampleDetail();
regTransitSampleDetail.setApplyid(applyId); regTransitSampleDetail.setApplyid(applyId);
List<RegTransitSampleDetail> regTransitSampleDetailList = regTransitSampleMapper.getRegTransitSampleDetail(regTransitSampleDetail); List<RegTransitSampleDetail> regTransitSampleDetailList = regTransitSampleMapper.getRegTransitSampleDetail(regTransitSampleDetail);
if(regTransitSampleDetailList.size() <= 0) return barcodeList; if (regTransitSampleDetailList.size() <= 0) return barcodeList;
for (RegTransitSampleDetail transitSampleDetail : regTransitSampleDetailList) { for (RegTransitSampleDetail transitSampleDetail : regTransitSampleDetailList) {
if(barcodeList.contains(transitSampleDetail.getBarcode())) continue; if (barcodeList.contains(transitSampleDetail.getBarcode())) continue;
barcodeList.add(transitSampleDetail.getBarcode()); barcodeList.add(transitSampleDetail.getBarcode());
} }
return barcodeList; return barcodeList;
} }
public Result sendprintmsg(String msg){ public Result sendprintmsg(String msg) {
String ip= IpUtils.getIpAddr(); String ip = IpUtils.getIpAddr();
System.out.println("请求业务的IP:"+ip); System.out.println("请求业务的IP:" + ip);
List<WebSocketUser> printUsers = ChatWebSocketServer.getOnlineUsersByLoginIp(ip); List<WebSocketUser> printUsers = ChatWebSocketServer.getOnlineUsersByLoginIp(ip);
if (printUsers.isEmpty()) { if (printUsers.isEmpty()) {
String webid=getLocalid(); String webid = getLocalid();
printUsers= ChatWebSocketServer.getOnlineUsersByWebId(webid); printUsers = ChatWebSocketServer.getOnlineUsersByWebId(webid);
} }
if (printUsers.isEmpty()) { if (printUsers.isEmpty()) {
System.out.println("当前客户端打印插件不在线"); System.out.println("当前客户端打印插件不在线");
return new Result("-1","当前客户端打印插件不在线"); return new Result("-1", "当前客户端打印插件不在线");
} }
WebSocketUser webSocketUser=printUsers.get(0); WebSocketUser webSocketUser = printUsers.get(0);
ChatWebSocketServer.sendToUser(webSocketUser.getUserId(), msg); ChatWebSocketServer.sendToUser(webSocketUser.getUserId(), msg);
System.out.println("已给客户端[" + webSocketUser.getUsername() + "]推送打印通知,IP:" + webSocketUser.getLoginIp()); System.out.println("已给客户端[" + webSocketUser.getUsername() + "]推送打印通知,IP:" + webSocketUser.getLoginIp());
return new Result("0","打印成功"); return new Result("0", "打印成功");
} }
@Override @Override
public Result printcheck(){ public Result printcheck() {
String ip= IpUtils.getIpAddr(); String ip = IpUtils.getIpAddr();
String UserId = ChatWebSocketServer.getUserIdByIp(ip); String UserId = ChatWebSocketServer.getUserIdByIp(ip);
if(UserId==null||"".equals(UserId)){ if (UserId == null || "".equals(UserId)) {
String webid=getLocalid(); String webid = getLocalid();
UserId=ChatWebSocketServer.getUsersByWebId(webid); UserId = ChatWebSocketServer.getUsersByWebId(webid);
if(UserId!=null&&!"".equals(UserId)){ if (UserId != null && !"".equals(UserId)) {
return new Result("0","客户端插件正常"); return new Result("0", "客户端插件正常");
} }
return new Result("-1","当前客户端打印插件不在线或未安装"); return new Result("-1", "当前客户端打印插件不在线或未安装");
} }
return new Result("0","客户端插件正常"); return new Result("0", "客户端插件正常");
} }
@Override @Override
public Result printsetup(){ public Result printsetup() {
WebSocketMessage wsMessage=new WebSocketMessage(); WebSocketMessage wsMessage = new WebSocketMessage();
wsMessage.setMsgType("lisbarprint"); wsMessage.setMsgType("lisbarprint");
wsMessage.setData("lisbarprint://setup"); wsMessage.setData("lisbarprint://setup");
wsMessage.setSenderId(SecurityUtils.getUsername()); wsMessage.setSenderId(SecurityUtils.getUsername());
return sendprintmsg(JSONUtil.toJsonStr(wsMessage)); return sendprintmsg(JSONUtil.toJsonStr(wsMessage));
} }
private String getLocalid() { private String getLocalid() {
SysLoginParam user= SecurityUtils.getLoginUser().getSysLoginParam(); SysLoginParam user = SecurityUtils.getLoginUser().getSysLoginParam();
if(user!=null) { if (user != null) {
return user.getLocalid(); return user.getLocalid();
} }
return null; return null;

View File

@ -94,9 +94,11 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
SysUser sysUserOne = commonUtil.getSysUserOne(userId); SysUser sysUserOne = commonUtil.getSysUserOne(userId);
if(sysUserOne == null) return new Result("-1","未查询到员工信息!"); if(sysUserOne == null) return new Result("-1","未查询到员工信息!");
String nickName = sysUserOne.getNickName(); String nickName = sysUserOne.getNickName();
String statusSample = regTransitSample.getStatus();
switch (status){ switch (status){
case "20": //标本采集 case "20": //标本采集
if(affirmTime == null) return new Result("-1","affirmTime标本采集时间不能为空!"); if(affirmTime == null) return new Result("-1","affirmTime标本采集时间不能为空!");
if(statusSample.equals("20")) return new Result("0","该标本已经采集!");
if(affirmUserName == null || affirmUserName.equals("")) return new Result("-1","affirmUserName标本采集人姓名不能为空!"); if(affirmUserName == null || affirmUserName.equals("")) return new Result("-1","affirmUserName标本采集人姓名不能为空!");
regTransitSample.setAffirmTime(affirmTime); regTransitSample.setAffirmTime(affirmTime);
regTransitSample.setAffirmUserCode(affirmUserCode); regTransitSample.setAffirmUserCode(affirmUserCode);
@ -105,6 +107,7 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
if(dstHospName == null || dstHospName.equals("")) return new Result("-1","dstHospName不能为空!"); if(dstHospName == null || dstHospName.equals("")) return new Result("-1","dstHospName不能为空!");
if(sendPackTime == null) return new Result("-1","sendPackTime不能为空!"); if(sendPackTime == null) return new Result("-1","sendPackTime不能为空!");
if(sendUserName == null || sendUserName.equals("")) return new Result("-1","sendUserName不能为空!"); if(sendUserName == null || sendUserName.equals("")) return new Result("-1","sendUserName不能为空!");
if(statusSample.equals("30")) return new Result("0","该标本已经送检!");
regTransitSample.setDstHospCode(dstHospCode); regTransitSample.setDstHospCode(dstHospCode);
regTransitSample.setDstHospName(dstHospName); regTransitSample.setDstHospName(dstHospName);
regTransitSample.setSendPackTime(sendPackTime); regTransitSample.setSendPackTime(sendPackTime);
@ -112,12 +115,13 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
regTransitSample.setSendUserName(sendUserName); regTransitSample.setSendUserName(sendUserName);
break; break;
case "50": //标本签收 case "50": //标本签收
if(statusSample.equals("50")) return new Result("0","该标本已经签收!");
regTransitSample.setSignInTime(commonUtil.getCurrentTime()); regTransitSample.setSignInTime(commonUtil.getCurrentTime());
regTransitSample.setSignInUserCode(userId); regTransitSample.setSignInUserCode(userId);
regTransitSample.setSignInUserName(nickName); regTransitSample.setSignInUserName(nickName);
break; break;
case "100": //标本退回 case "100": //标本退回
regTransitSample.setBackReasons(backReasons); if(statusSample.equals("100")) return new Result("0","该标本已经退回!");
regTransitSample.setBackUserCode(userId); regTransitSample.setBackUserCode(userId);
regTransitSample.setBackUserName(nickName); regTransitSample.setBackUserName(nickName);
regTransitSample.setBackTime(commonUtil.getCurrentTime()); regTransitSample.setBackTime(commonUtil.getCurrentTime());

View File

@ -122,5 +122,9 @@
select * from reg_dict where dict_type = #{dict_type} select * from reg_dict where dict_type = #{dict_type}
</select> </select>
<select id="getMaxDictCode">
select max(dict_code) from reg_dict where dict_type = #{dict_type} and hospital_id = #{hospital_id}
</select>
</mapper> </mapper>

View File

@ -11,12 +11,12 @@
</select> </select>
<select id="queryReqDetail" resultType="com.transitPlatForm.common.core.domain.entity.reg.RegApplyDetail"> <select id="queryReqDetail" resultType="com.transitPlatForm.common.core.domain.entity.reg.RegApplyDetail">
select a.*,b.itemclass, c.classid,d.barcode from reg_apply_detail a left join reg_TransitSample_detail d on (d.applyid = a.applyid and d.applyDetailId = a.uid),reg_item b,reg_itemclass c select a.*,b.itemclass, c.classid,d.barcode,c.itemclass_bkcolor,c.itemclass_tips from reg_apply_detail a left join reg_TransitSample_detail d on (d.applyid = a.applyid and d.applyDetailId = a.uid),reg_item b,reg_itemclass c
where a.applyid = #{applyid} and a.OrderItemCode = b.itemcode and c.itemclass_code = b.itemclass where a.applyid = #{applyid} and a.OrderItemCode = b.itemcode and c.itemclass_code = b.itemclass
</select> </select>
<select id="getItemInfo" resultType="map"> <select id="getItemInfo" resultType="map">
select b.classid,(case when isnull(a.yblx,'') = '' then b.itemclass_yblx else a.yblx end) as itemclass_yblx, a.* from reg_item a,reg_itemclass b where a.itemclass = b.itemclass_code and a.status = '0' select b.itemclass_tips, b.classid,(case when isnull(a.yblx,'') = '' then b.itemclass_yblx else a.yblx end) as itemclass_yblx, a.* from reg_item a,reg_itemclass b where a.itemclass = b.itemclass_code and a.status = '0'
</select> </select>
<select id="existSQD" resultType="com.transitPlatForm.common.core.domain.entity.reg.RegTransitSampleDetail"> <select id="existSQD" resultType="com.transitPlatForm.common.core.domain.entity.reg.RegTransitSampleDetail">

View File

@ -88,6 +88,7 @@
<if test="ExpressComName != null and ExpressComName != ''">ExpressComName,</if> <if test="ExpressComName != null and ExpressComName != ''">ExpressComName,</if>
<if test="PackSerial != null and PackSerial != ''">PackSerial,</if> <if test="PackSerial != null and PackSerial != ''">PackSerial,</if>
<if test="ExpressNum != null and ExpressNum != ''">ExpressNum,</if> <if test="ExpressNum != null and ExpressNum != ''">ExpressNum,</if>
<if test="slzq != null and slzq != ''">slzq,</if>
create_by,create_time,update_by,update_time create_by,create_time,update_by,update_time
)values( )values(
<if test="PatId != null and PatId != ''">#{PatId},</if> <if test="PatId != null and PatId != ''">#{PatId},</if>
@ -144,6 +145,7 @@
<if test="ExpressComName != null and ExpressComName != ''">#{ExpressComName},</if> <if test="ExpressComName != null and ExpressComName != ''">#{ExpressComName},</if>
<if test="PackSerial != null and PackSerial != ''">#{PackSerial},</if> <if test="PackSerial != null and PackSerial != ''">#{PackSerial},</if>
<if test="ExpressNum != null and ExpressNum != ''">#{ExpressNum},</if> <if test="ExpressNum != null and ExpressNum != ''">#{ExpressNum},</if>
<if test="slzq != null and slzq != ''">#{slzq},</if>
#{create_by},#{create_time},#{update_by},#{update_time} #{create_by},#{create_time},#{update_by},#{update_time}
) )
</insert> </insert>
@ -251,6 +253,7 @@
<if test="BackUserCode != null and BackUserCode != ''">BackUserCode = #{BackUserCode},</if> <if test="BackUserCode != null and BackUserCode != ''">BackUserCode = #{BackUserCode},</if>
<if test="BackUserName != null and BackUserName != ''">BackUserName = #{BackUserName},</if> <if test="BackUserName != null and BackUserName != ''">BackUserName = #{BackUserName},</if>
<if test="BackTime != null">BackTime = #{BackTime},</if> <if test="BackTime != null">BackTime = #{BackTime},</if>
<if test="slzq != null and slzq != ''">slzq,</if>
update_by = #{update_by},update_time = #{update_time} update_by = #{update_by},update_time = #{update_time}
</set> </set>
where barcode = #{barcode} where barcode = #{barcode}