package com.ltkj.web.controller.system; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ltkj.common.annotation.RepeatSubmit; import com.ltkj.common.core.domain.AjaxResult; import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.enums.DataSourceType; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; import com.ltkj.framework.config.UserHoder; import com.ltkj.framework.datasource.DynamicDataSourceContextHolder; import com.ltkj.hosp.domain.*; import com.ltkj.hosp.mapper.TestMapper; import com.ltkj.hosp.service.*; import com.ltkj.hosp.sqlDomain.*; import com.ltkj.hosp.vodomain.CsProVo; import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo; import com.ltkj.mall.mallOrderUtils.TjConstants; import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDeptService; import com.ltkj.system.service.ISysUserService; import com.ltkj.web.controller.his.HisApiGetMethodService; import com.ltkj.web.controller.his.HisApiMethodService; import com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import jodd.util.StringUtil; import lombok.extern.slf4j.Slf4j; import lombok.var; import org.aspectj.weaver.AjAttribute; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.text.Collator; import java.util.*; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import static com.ltkj.framework.datasource.DynamicDataSourceContextHolder.log; import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.save; import static org.apache.poi.hemf.record.emfplus.HemfPlusRecordType.setClipRect; import static org.jeecg.modules.jmreport.dyndb.util.b.a; import static org.jeecg.modules.jmreport.dyndb.util.b.e; /** * @Author: 西安路泰科技有限公司/赵佳豪 * @Date: 2022/12/6 14:29 */ @RestController @RequestMapping("/check") @Api(tags = "AAAAAAAAAAAA总检医师相关接口") @Slf4j public class TjCheckController { @Resource private ITjOrderService orderService; @Resource private ITjOrderDetailService detailService; @Resource private ITjCustomerService customerService; @Resource private ITjProjectService projectService; @Resource private IDictCompService compService; @Resource private ITjStandardService tjStandardService; @Resource private ITjAdviceService tjAdviceService; @Resource private ITjOrderRemarkService orderRemarkService; @Resource private ITbTransitionService transitionService; @Resource private ISysUserService userService; @Resource private RedisCache redisCache; @Resource private TjAsyncService asyncService; @Resource private ITjConfirmLogService confirmLogService; @Autowired private ISysConfigService configService; @Resource private ISysDeptService deptService; @Resource private TestMapper testMapper; @Resource private TjvLtkjvtjpatService tjvLtkjvtjpatService; @Resource private LtkjMiddleDetailService middleDetailService; @Resource private LtkjMiddleHeadService headService; @Resource private LtkjExamJcbgdService jcbgdService; @Resource private LtkjExamJcsqdService jcsqdService; @Resource private LtkjHybgdService ltkjHybgdService; @Resource private LtkjHysqdService ltkjHysqdService; @Autowired private HisApiMethodService controller; @Autowired private HisApiGetMethodService service; @Autowired private HisApiConfigService hisApiConfigService; @Autowired private RedissonClient redissonClient; @Autowired private ITjRulesService rulesService; @Autowired private ITjProAdvicerulesService tjProAdvicerulesService; @Autowired private TjOrderYcxmService ycxmService; @GetMapping("/ceshicc") @ApiOperation(value = "测试调用存储过程耗时接口") @RepeatSubmit // @Transactional public AjaxResult ceshicc() { List jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd1("8003241206085556"); if (null != jcsqdList && !jcsqdList.isEmpty()) { jcsqdService.deletedLtkjJcsqdByTjhAndTmh("8003241206085556"); jcbgdService.deletedLtkjJcbgdByTjhAndTmh("8003241206085556"); jcsqdService.saveBatch(jcsqdList); List jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd1("8003241206085556"); if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList); DynamicDataSourceContextHolder.clearDataSourceType(); } return AjaxResult.success(); } // @GetMapping ("/ceshi") // @ApiOperation (value = "测试调用lis视图数据接口") // @RepeatSubmit //// @Transactional // public AjaxResult ceshi() { // List> ccXZxYyLisJgSt = testMapper.getCcXZxYyLisJgSt(); // return AjaxResult.success(ccXZxYyLisJgSt); // } // @GetMapping ("/pacs") // @ApiOperation (value = "测试调用pacs视图数据接口") // @RepeatSubmit // public AjaxResult pacs() { // List> ccXZxYyPacsJgSt = testMapper.getCcXZxYyPacsJgSt(); // // List list = testMapper.getCcXZxYyPacsLtkjExamJcsqd(""); // // log.info(list.toString()); // // List list1 = testMapper.getCcXZxYyPacsLtkjExamJcbgd(""); // // log.info(list1.toString()); // // return AjaxResult.success(ccXZxYyPacsJgSt); // } @GetMapping("/getOperationPermissionsByTjNum") @ApiOperation(value = "(初审页面 和 医生页面)根据体检号获取是否可操作权限接口 true可操作 反之不可") public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "体检号") @RequestParam String tjNumber) { TjOrder order = orderService.getOrderByTjNum(tjNumber); if (null != order) { Integer status = order.getStatus(); if (status < 300) { return AjaxResult.success(true); } if (status > 300) { return AjaxResult.success(false); } } return AjaxResult.success(false); } @GetMapping("/getCsList") @ApiOperation(value = "初审查询体检记录客户列表")//0待1已 @Transactional public AjaxResult getCsList(@ApiParam(value = "审核状态 0待审核 1已审核") @RequestParam(required = false) Integer checkStatus, @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page, @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize, @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber, @ApiParam(value = "单位") @RequestParam(required = false) Long compId, @ApiParam(value = "姓名)") @RequestParam(required = false) String name, @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime, @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) { // DateTime beginTimes = null; // DateTime endTimes = null; // if (null != beginTime && null != endTime) { // beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime)); // endTimes = DateUtil.endOfDay(DateUtil.parse(endTime)); // } // //初始化体检订单表 // List orderList = null; // List customerList = new ArrayList<>(); // Map map = new HashMap<>(); // // if (checkStatus == 0) // asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes)); // if (checkStatus == 1) // asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes)); // // //根据姓名查询 // if (null != name && !"".equals(name)) { // List list = customerService.getTjCustomerList(name); // if (null != list && list.size() > 0) { // List lists = new ArrayList<>(); // for (TjCustomer customer : list) { // orderList = orderService.getCsTjOrderListByCusId(customer.getCusId()); // if (null != orderList && orderList.size() > 0) { // for (TjOrder tjOrder : orderList) { // customer.setTjNumber(tjOrder.getTjNumber()); // customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus())); // customer.setOrderId(tjOrder.getOrderId()); // customer.setTjTime(tjOrder.getCreateTime()); // customer.setFinishTime(tjOrder.getFinishTime()); // customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); // customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); // customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); // customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); // if (tjOrder.getFirmId().equals("0")) { // customer.setTjCompName(null); // } else { // customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName()); // } // lists.add(customer); // } // } // } // List customers = null; // if (lists.size() > 0) { // customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // } // map.put("customers", customers); // map.put("total", lists.size()); // return AjaxResult.success(map); // } // return AjaxResult.success("暂无数据"); // } // // //条件查询 // if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) { // orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); // return getResult(page, pageSize, orderList, customerList, map); // } // // List customers = null; // if (checkStatus == 0) { // customers = redisCache.getCacheMapValue("cScheck", "ws"); // } // if (checkStatus == 1) { // customers = redisCache.getCacheMapValue("cScheck", "ys"); // } // if (customers != null && customers.size() > 0) { // List customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // map.put("customers", customerLists); // map.put("total", customers.size()); // return AjaxResult.success(map); // } else { // orderList = orderService.getCsTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); // return getResult(page, pageSize, orderList, customerList, map); // } String value = String.valueOf(compId); if (tjNumber == null) tjNumber = ""; if (compId == null) value = ""; if (name == null) name = ""; if (beginTime == null) beginTime = ""; if (endTime == null) endTime = ""; return AjaxResult.success(orderService.getCsCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name)); } /** * 初审 */ @GetMapping("/cSWebGetProByTjNumAndOrderId") @ApiOperation(value = "(初审页面)点击体检人员展示体检项目接口") public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam(value = "体检号") @RequestParam String tjNumber) { // List orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber); // List list = new ArrayList<>(); // if (null != orderRemarkList && orderRemarkList.size() > 0) { // for (TjOrderRemark remark : orderRemarkList) { // CsProVo vo = new CsProVo(); // vo.setDeptName(deptService.getById(remark.getDeptId()).getDeptName()); // vo.setProName(projectService.getById(remark.getProId()).getProName()); // vo.setType(remark.getType()); // if (null != remark.getDoctorName()) { // vo.setDoctorName(userService.getById(remark.getDoctorName()).getNickName()); // vo.setBcdoctorName(userService.getById(remark.getDoctorName()).getNickName()); // } // vo.setSffs("统收"); // vo.setIsPay("已收费"); // vo.setQdcreateTime(remark.getCreateTime()); // vo.setBcupdateTime(remark.getUpdateTime()); // vo.setZhupdateTime(remark.getUpdateTime()); // list.add(vo); // } // List list1 = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber); // Collections.sort(list, new Comparator() { // @Override // public int compare(CsProVo o1, CsProVo o2) { // return o1.getType() - o2.getType(); // } // }); // } List list = getCsProVos(tjNumber, false); return AjaxResult.success(list); } public List getCsProVos(String tjNumber, boolean sfzpacs) { List list = orderRemarkService.cSWebGetProByTjNumAndOrderId(tjNumber, sfzpacs); if (null != list && !list.isEmpty()) { list.sort(new Comparator() { @Override public int compare(CsProVo o1, CsProVo o2) { return o1.getType() - o2.getType(); } }); } return list; } /** * 初审 */ @GetMapping("/confirmOrder") @ApiOperation(value = "初审(并修改状态)接口") @Transactional public AjaxResult confirmOrder(@ApiParam(value = "tjNumber") @RequestParam String tjNumber, @ApiParam(value = "状态 0同意 1拒绝 默认同意") @RequestParam(defaultValue = "0") Integer status, @ApiParam(value = "驳回理由") @RequestParam(required = false) String remark) { int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); if (num > 0) return AjaxResult.error("请检查是否存在未检或延期项目"); if (null != tjNumber) { Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId()); SysUser sysUser = userService.getById(userId); TjOrder tjOrder = orderService.getOrderByTjNum(tjNumber); if (null != tjOrder) { tjOrder.setConfirmTime(new DateTime()); tjOrder.setConfirmDoctor(sysUser.getNickName()); tjOrder.setConfirmStatus(String.valueOf(status)); if (status == 0) { tjOrder.setStatus(TjConstants.TJ_CHECK); // asyncService.updateCheckType(tjNumber); } else { tjOrder.setStatus(TjConstants.TJ_REFUSED); } if (orderService.updateById(tjOrder)) { TjConfirmLog confirmLog = new TjConfirmLog(); confirmLog.setOrderId(String.valueOf(tjOrder.getOrderId())); confirmLog.setTjNum(tjNumber); confirmLog.setStatus(status); confirmLogService.save(confirmLog); // asyncService.wCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 0, null, null, null)); // asyncService.yCScheckSetCustomerLisByRedis(orderService.getCsTjOrderList(tjNumber, 1, null, null, null)); return AjaxResult.success("操作成功"); } return AjaxResult.error("操作失败"); } return AjaxResult.success("数据不存在"); } return AjaxResult.error(); } /** * 同步sql server数据到本地数据库数据接口 */ @GetMapping("/dataSynchronization") @ApiOperation(value = "同步sql server数据到本地数据库数据接口") @RepeatSubmit // @Transactional public AjaxResult dataSynchronization(@RequestParam String tjNumber, HttpServletRequest request) { String hospId = request.getHeader("hospId"); RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); try { boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); if (tryLock) { //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); final String sfkqdshitulianjie = configService.selectConfigByKey("sfkqdshitulianjie"); TjOrder order = orderService.getOrderByTjNum(tjNumber); if (null != order) { //开启字典弹窗 if ("Y".equals(getInfoFromSqlData)) { tbhyxm(order); // List one2 = testMapper.getExamJcsqdTmh(tjNumber); // if (one2 != null && one2.size() > 0) { // DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); // ltkjExamJcsqdService.saveBatch(one2); // DynamicDataSourceContextHolder.clearDataSourceType(); // for (LtkjExamJcsqd ltkjExamJcsqd : one2) { // List one3 = testMapper.getExamJcbgdByTjh(ltkjExamJcsqd.getTmh()); // if (one3 != null && one3.size() > 0) { // DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); // ltkjExamJcbgdService.saveBatch(one3); // DynamicDataSourceContextHolder.clearDataSourceType(); // } // } // } //同步化验项目 testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); //同步检查项目 testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); asyncService.updateCheckType(order.getTjNumber()); } //开启和his对接 if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { List baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); List jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); //同步检验 if (null != baoGaoDans && baoGaoDans.size() > 0) { Date dates = new Date(); Map map = new HashMap<>(); map.put("his_registration_id", order.getCardId()); map.put("ksbm", ""); map.put("pationid", ""); map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); map.put("pagecount", 10); map.put("page", 1); AjaxResult result = controller.Getlabreportinfo(map); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); if (null == code || !code.equals("0")) { return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); } JSONArray data = object.getJSONArray("ResultData"); for (Object datum : data) { JSONObject jsonObject = (JSONObject) datum; LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); if (null != jybgid) { ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(order.getCardId(), jsonObject.getStr("JYBGID")); ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jybgid.getTmh()); } LtkjHysqd hysqd = new LtkjHysqd(); hysqd.setTjh(order.getCardId()); hysqd.setTmh(jsonObject.getStr("JYBGID")); hysqd.setBbbh(jsonObject.getStr("BBDM")); hysqd.setBbmc(jsonObject.getStr("BBMC")); hysqd.setXmid(jsonObject.getStr("JYXMDM")); hysqd.setXmmc(jsonObject.getStr("JYXMMC")); hysqd.setSqsj(jsonObject.getStr("SQRQ")); hysqd.setSqys(jsonObject.getStr("SQRBH")); hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); hysqd.setSqrxm(jsonObject.getStr("SQRXM")); hysqd.setSqdh(jsonObject.getStr("SQDBH")); hysqd.setShrdm(jsonObject.getStr("JYYSBH")); hysqd.setShrxm(jsonObject.getStr("JYYSQM")); hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); if (ltkjHysqdService.save(hysqd)) { Map hashMap = new HashMap<>(); hashMap.put("jybgid", hysqd.getTmh()); AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); String result2 = getAjaxResult(bgdres); JSONObject object1 = getJSONObject(result2); String code1 = object1.getStr("ResultCode"); if (null != code1 && code1.equals("0")) { JSONArray datas = object1.getJSONArray("ResultData"); for (Object o : datas) { JSONObject js = (JSONObject) o; // ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jsonObject.getStr("JYBGID")); LtkjHybgd bgd = new LtkjHybgd(); bgd.setTmh(hysqd.getTmh()); bgd.setJcxmid(js.getStr("JCZBDM")); bgd.setJcxm(js.getStr("JCZBMC")); bgd.setTdh(js.getStr("")); bgd.setJyjg(js.getStr("JCZBJG")); bgd.setJgdw(js.getStr("JLDW")); bgd.setFwzdz(js.getStr("")); bgd.setFwzgz(js.getStr("")); bgd.setFwz(js.getStr("CKZFW")); bgd.setJysj(js.getStr("BGRQ")); bgd.setJyys(js.getStr("JCRBH")); bgd.setShsj(js.getStr("BGRQ")); bgd.setShsj(js.getStr("BGRQ")); bgd.setShys(js.getStr("SHRBH")); bgd.setShysmc(js.getStr("SHRXM")); bgd.setYcbz(js.getStr("YCTS")); // bgd.setTpurl(js.getStr("")); ltkjHybgdService.save(bgd); } } Map fbhashMap = new HashMap<>(); fbhashMap.put("jybgid", hysqd.getTmh()); AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); String ajaxResult = getAjaxResult(fbres); JSONObject fbobject = getJSONObject(ajaxResult); String fbcode = fbobject.getStr("ResultCode"); if (null != fbcode && fbcode.equals("0")) { JSONArray datas = fbobject.getJSONArray("ResultData"); for (Object o : datas) { JSONObject js = (JSONObject) o; LtkjHybgd bgd = new LtkjHybgd(); bgd.setTmh(hysqd.getTmh()); bgd.setJcxmid(hysqd.getXmid()); bgd.setJcxm(hysqd.getXmmc()); bgd.setTdh(js.getStr("")); bgd.setJyjg(js.getStr("JCJG")); bgd.setJgdw("/"); bgd.setFwzdz("/"); bgd.setFwzgz("/"); bgd.setFwz("/"); bgd.setJysj(js.getStr("BGRQ")); bgd.setJyys(hysqd.getSqrxm()); bgd.setShsj(js.getStr("BGRQ")); bgd.setShys(hysqd.getShrdm()); bgd.setShysmc(hysqd.getShrxm()); ltkjHybgdService.save(bgd); } } } } //同步化验项目 testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); } /*同步检查 his接口*/ if (null != jianChaBaoGaoDan && jianChaBaoGaoDan.size() > 0) { Map maps = new HashMap<>(); maps.put("his_registration_id", order.getCardId()); maps.put("ksbm", "体检中心"); maps.put("pagecount", 100); maps.put("page", 1); // AjaxResult results = service.getHISDataNew("Getexamreportinfo", maps); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); /*同步检查 his存储过程*/ AjaxResult results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); DynamicDataSourceContextHolder.clearDataSourceType(); log.info("检查项目查询返回值: " + results.toString()); if (Integer.parseInt(results.get("code").toString()) == 200) { List> datas = (List>) results.get("data"); if (null != datas && datas.size() > 0) { jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); for (Map objectMap : datas) { //保存入参出参 // service.save((JSONObject)objectMap,"Getexamreportinfo",hisApiConfig,JSONUtil.toJsonStr(maps)); service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); jcbgd.setTjh(order.getCardId()); if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) jcbgd.setTmh(objectMap.get("JCBGID").toString()); if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) jcbgd.setBgUrl(objectMap.get("reporturl").toString()); if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) jcbgd.setYxzd(objectMap.get("YXZD").toString()); if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { if (objectMap.get("YXBX").toString().equals("null")) { jcbgd.setYxbx("未检异常"); } else { jcbgd.setYxbx(objectMap.get("YXBX").toString()); } } if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) jcbgd.setJcbw(objectMap.get("JCBW").toString()); if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); jcbgdService.save(jcbgd); } jcsqdService.saveLtkjExamJcsqd(order.getCardId()); int maxRetries = 3; for (int attempt = 0; attempt < maxRetries; attempt++) { try { testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); break; } catch (Exception e) { if (attempt == maxRetries - 1) { throw e; } try { Thread.sleep(1000); } catch (InterruptedException ignored) { } } } } else { return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); } } } return AjaxResult.success("同步成功"); } else if (null != sfkqdshitulianjie && sfkqdshitulianjie.equalsIgnoreCase("Y")) { List hysqdList = testMapper.getCcXZxYyLtkjHysqdByLisVi(order.getTjNumber(), hospId); if (null != hysqdList && !hysqdList.isEmpty()) { for (LtkjHysqd hysqd : hysqdList) { LtkjHysqd jybgid = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh()); if (null != jybgid) { ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(hysqd.getTjh(), hysqd.getTmh()); ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(hysqd.getTmh()); } if (ltkjHysqdService.save(hysqd)) { List hybgdList = testMapper.getCcXZxYyLtkjHybgdByLisVi(hysqd.getTmh()); ltkjHybgdService.saveBatch(hybgdList); } } DynamicDataSourceContextHolder.clearDataSourceType(); } List jcsqdList = testMapper.getCcXZxYyPacsLtkjExamJcsqd(order.getTjNumber(), hospId); if (null != jcsqdList && !jcsqdList.isEmpty()) { jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); jcsqdService.saveBatch(jcsqdList); List jcbgdList = testMapper.getCcXZxYyPacsLtkjExamJcbgd(order.getCardId(), hospId); if (null != jcbgdList && !jcbgdList.isEmpty()) jcbgdService.saveBatch(jcbgdList); DynamicDataSourceContextHolder.clearDataSourceType(); } // String tjNumber1 = order.getTjNumber(); // log.info("查询出来的体检号是: " + tjNumber1); // log.info("传过来的的体检号是: "+tjNumber); Map map = new HashMap<>(); map.put("tjnum", tjNumber); testMapper.tjUpdateDetatilByVi(map); } else { //化验 testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), UserHoder.getLoginUser().getUserId()); } //检查 orderService.tjLispacstongbujianyi(null, null, null, null); return AjaxResult.success("同步成功"); } return AjaxResult.error("未查到该人员体检记录"); } return AjaxResult.error("该人员数据正在同步中,请稍等"); } catch (InterruptedException e) { e.printStackTrace(); return AjaxResult.error("该人员数据正在同步中,请稍等"); } finally { lock.unlock(); } } /** * 同步sql server数据到本地数据库数据接口 */ @GetMapping("/dataSynchronizationApi") @ApiOperation(value = "同步sql server数据到本地数据库数据接口") @RepeatSubmit // @Transactional public AjaxResult dataSynchronizationApi(@RequestParam String tjNumber) { RLock lock = redissonClient.getLock("lock:check:dataSynchronization:" + tjNumber); try { boolean tryLock = lock.tryLock(3L, TimeUnit.SECONDS); if (tryLock) { String doctorId = configService.selectConfigByKey("request_default_check_doctorId"); //根据配置调取存储过程 将临时表数据存入预约表2023.12.12 final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis"); TjOrder order = orderService.getOrderByTjNum(tjNumber); if (null != order) { //开启字典弹窗 if ("Y".equals(getInfoFromSqlData)) { tbhyxm(order); //同步化验项目 // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); //同步检查项目 // testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); asyncService.updateCheckType(order.getTjNumber()); } //开启和his对接 if (null != sfkqdyhis && sfkqdyhis.equals("Y")) { List baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId()); List jianChaBaoGaoDan = ltkjHybgdService.getJianChaBaoGaoDan(order.getCardId()); //同步检验 String resultMsg = ""; if (null != baoGaoDans && !baoGaoDans.isEmpty()) { Date dates = new Date(); Map map = new HashMap<>(); map.put("his_registration_id", order.getCardId()); map.put("ksbm", ""); map.put("pationid", ""); map.put("ksrq", DateUtil.format(DateUtil.beginOfDay(order.getCreateTime()), "yyyy-MM-dd HH:mm:ss")); map.put("jsrq", DateUtil.format(DateUtil.endOfDay(dates), "yyyy-MM-dd HH:mm:ss")); map.put("pagecount", 10); map.put("page", 1); AjaxResult result = controller.Getlabreportinfo(map); String result1 = getAjaxResult(result); JSONObject object = getJSONObject(result1); String code = object.getStr("ResultCode"); // if (null == code || !code.equals("0")) { // return AjaxResult.error("化验项目暂时未出结果,请稍后同步!!!"); // } if (null != code && code.equals("0")) { JSONArray data = object.getJSONArray("ResultData"); for (Object datum : data) { JSONObject jsonObject = (JSONObject) datum; boolean isInsertHysqd = false; LtkjHysqd hysqd = new LtkjHysqd(); hysqd.setTjh(order.getCardId()); hysqd.setTmh(jsonObject.getStr("JYBGID")); hysqd.setBbbh(jsonObject.getStr("BBDM")); hysqd.setBbmc(jsonObject.getStr("BBMC")); hysqd.setXmid(jsonObject.getStr("JYXMDM")); hysqd.setXmmc(jsonObject.getStr("JYXMMC")); hysqd.setSqsj(jsonObject.getStr("SQRQ")); hysqd.setSqys(jsonObject.getStr("SQRBH")); hysqd.setJgsj(jsonObject.getStr("JYBGRQ")); hysqd.setSqrxm(jsonObject.getStr("SQRXM")); hysqd.setSqdh(jsonObject.getStr("SQDBH")); hysqd.setShrdm(jsonObject.getStr("JYYSBH")); hysqd.setShrxm(jsonObject.getStr("JYYSQM")); hysqd.setJybgjg(jsonObject.getStr("JYBGJG")); hysqd.setCreateTime(new Date()); QueryWrapper queryWrapper = new QueryWrapper<>(hysqd); List list = ltkjHysqdService.list(queryWrapper); if (list.isEmpty()) isInsertHysqd = true; if (isInsertHysqd) { saveHysqd(hysqd); } else { saveHybgd(hysqd); } } } else { resultMsg = "化验项目暂时未出结果,请稍后同步!!!"; } //同步化验项目 // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); } /*同步检查 his接口*/ if (null != jianChaBaoGaoDan && !jianChaBaoGaoDan.isEmpty()) { Map maps = new HashMap<>(); maps.put("his_registration_id", order.getCardId()); maps.put("ksbm", "体检中心"); maps.put("pagecount", 100); maps.put("page", 1); LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Getexamreportinfo"); HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper); /*同步检查 his存储过程*/ AjaxResult results = jcsqdService.getTjJcProByHisCall("体检中心", order.getCardId(), "''", 100, 1, "'1'"); DynamicDataSourceContextHolder.clearDataSourceType(); log.info("检查项目查询返回值: " + results.toString()); if (Integer.parseInt(results.get("code").toString()) == 200) { List> datas = (List>) results.get("data"); if (null != datas && !datas.isEmpty()) { jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId()); jcbgdService.deletedLtkjJcbgdByTjhAndTmh(order.getCardId()); for (Map objectMap : datas) { //保存入参出参 service.save(JSONUtil.parseObj(objectMap), "Getexamreportinfo", hisApiConfig, JSONUtil.toJsonStr(maps)); LtkjExamJcbgd jcbgd = new LtkjExamJcbgd(); jcbgd.setTjh(order.getCardId()); if (null != objectMap.get("JCBGID") || !objectMap.get("JCBGID").equals("")) jcbgd.setTmh(objectMap.get("JCBGID").toString()); if (null != objectMap.get("JCXMDM") || !objectMap.get("JCXMDM").equals("")) jcbgd.setXmdm(objectMap.get("JCXMDM").toString()); if (null != objectMap.get("JCXMMC") || !objectMap.get("JCXMMC").equals("")) jcbgd.setXmmc(objectMap.get("JCXMMC").toString()); if (null != objectMap.get("JCXMJG") || !objectMap.get("JCXMJG").equals("")) jcbgd.setBgNr(objectMap.get("JCXMJG").toString()); if (null != objectMap.get("reporturl") || !objectMap.get("reporturl").equals("")) jcbgd.setBgUrl(objectMap.get("reporturl").toString()); if (null != objectMap.get("SHYSQM") || !objectMap.get("SHYSQM").equals("")) jcbgd.setShysxm(objectMap.get("SHYSQM").toString()); if (null != objectMap.get("SHYSBH") || !objectMap.get("SHYSBH").equals("")) jcbgd.setShysdm(objectMap.get("SHYSBH").toString()); if (null != objectMap.get("YXZD") || !objectMap.get("YXZD").equals("")) jcbgd.setYxzd(objectMap.get("YXZD").toString()); if (null != objectMap.get("YXBX") || !objectMap.get("YXBX").equals("")) { if (objectMap.get("YXBX").toString().equals("null")) { jcbgd.setYxbx("未检异常"); } else { jcbgd.setYxbx(objectMap.get("YXBX").toString()); } } if (null != objectMap.get("SJJLSJ") || !objectMap.get("SJJLSJ").equals("")) jcbgd.setZdsj(objectMap.get("SJJLSJ").toString()); if (null != objectMap.get("JCBW") || !objectMap.get("JCBW").equals("")) jcbgd.setJcbw(objectMap.get("JCBW").toString()); if (null != objectMap.get("SQRQSJ") || !objectMap.get("SQRQSJ").equals("")) jcbgd.setSqsj(objectMap.get("SQRQSJ").toString()); jcbgd.setCreateTime(new Date()); jcbgdService.save(jcbgd); } jcsqdService.saveLtkjExamJcsqd(order.getCardId()); // testMapper.updateDetailByTjJcCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); } else { resultMsg = "检查项目暂时未出结果,请稍后同步!!!"; // return AjaxResult.error("检查项目暂时未出结果,请稍后同步!!!"); } } } if (StrUtil.isBlank(resultMsg)) return AjaxResult.success("同步成功"); else return AjaxResult.error(resultMsg); } //化验 // testMapper.updateDetailByCall(order.getCardId(), String.valueOf(order.getOrderId()), order.getTjNumber(), doctorId); //检查 jcsqdService.saveLtkjExamJcsqd(order.getCardId()); return AjaxResult.success("同步成功"); } return AjaxResult.error("未查到该人员体检记录"); } return AjaxResult.error("该人员数据正在同步中,请稍等"); } catch (InterruptedException e) { e.printStackTrace(); return AjaxResult.error("该人员数据正在同步中,请稍等"); } finally { lock.unlock(); } } private void saveHysqd(LtkjHysqd hysqd) { if (ltkjHysqdService.save(hysqd)) { saveHybgd(hysqd); } } private void saveHybgd(LtkjHysqd hysqd) { Map hashMap = new HashMap<>(); hashMap.put("jybgid", hysqd.getTmh()); AjaxResult bgdres = controller.Getlabdetailinfo(hashMap); String result2 = getAjaxResult(bgdres); JSONObject object1 = getJSONObject(result2); String code1 = object1.getStr("ResultCode"); if (null != code1 && code1.equals("0")) { JSONArray datas = object1.getJSONArray("ResultData"); for (Object o : datas) { JSONObject js = (JSONObject) o; // ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(jsonObject.getStr("JYBGID")); LtkjHybgd bgd = new LtkjHybgd(); bgd.setTmh(hysqd.getTmh()); bgd.setJcxmid(js.getStr("JCZBDM")); bgd.setJcxm(js.getStr("JCZBMC")); bgd.setTdh(js.getStr("")); bgd.setJyjg(js.getStr("JCZBJG")); bgd.setJgdw(js.getStr("JLDW")); bgd.setFwzdz(js.getStr("")); bgd.setFwzgz(js.getStr("")); bgd.setFwz(js.getStr("CKZFW")); bgd.setJysj(js.getStr("BGRQ")); bgd.setJyys(js.getStr("JCRBH")); bgd.setShsj(js.getStr("BGRQ")); bgd.setShsj(js.getStr("BGRQ")); bgd.setShys(js.getStr("SHRBH")); bgd.setShysmc(js.getStr("SHRXM")); bgd.setYcbz(js.getStr("YCTS")); bgd.setCreateTime(new Date()); // bgd.setTpurl(js.getStr("")); QueryWrapper queryWrapper = new QueryWrapper<>(bgd); List list = ltkjHybgdService.list(queryWrapper); if (list.isEmpty()) ltkjHybgdService.save(bgd); } } Map fbhashMap = new HashMap<>(); fbhashMap.put("jybgid", hysqd.getTmh()); AjaxResult fbres = controller.Getlabgermrepinfo(fbhashMap); String ajaxResult = getAjaxResult(fbres); JSONObject fbobject = getJSONObject(ajaxResult); String fbcode = fbobject.getStr("ResultCode"); if (null != fbcode && fbcode.equals("0")) { JSONArray datas = fbobject.getJSONArray("ResultData"); for (Object o : datas) { JSONObject js = (JSONObject) o; LtkjHybgd bgd = new LtkjHybgd(); bgd.setTmh(hysqd.getTmh()); bgd.setJcxmid(hysqd.getXmid()); bgd.setJcxm(hysqd.getXmmc()); bgd.setTdh(js.getStr("")); bgd.setJyjg(js.getStr("JCJG")); bgd.setJgdw("/"); bgd.setFwzdz("/"); bgd.setFwzgz("/"); bgd.setFwz("/"); bgd.setJysj(js.getStr("BGRQ")); bgd.setJyys(hysqd.getSqrxm()); bgd.setShsj(js.getStr("BGRQ")); bgd.setShys(hysqd.getShrdm()); bgd.setShysmc(hysqd.getShrxm()); QueryWrapper queryWrapper = new QueryWrapper<>(bgd); List list = ltkjHybgdService.list(queryWrapper); if (list.isEmpty()) ltkjHybgdService.save(bgd); } } } //将方法返回值解析成json格式 public JSONObject getJSONObject(String builder) { String Response = JSONUtil.parseObj(builder).getStr("Response"); return JSONUtil.parseObj(Response); } //获取方法返回值信息 public String getAjaxResult(AjaxResult result) { return result.get("data").toString(); } private void tbhyxm(TjOrder order) { List one = testMapper.getHysqdByTmh(order.getCardId()); if (one != null && !one.isEmpty()) { for (LtkjHysqd ltkjHysqd : one) { ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh()); ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(ltkjHysqd.getTmh()); LtkjHysqd hysqd = ltkjHysqdService.getLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh()); if (hysqd == null) { ltkjHysqdService.save(ltkjHysqd); DynamicDataSourceContextHolder.clearDataSourceType(); List one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh()); if (one1 != null && !one1.isEmpty()) { DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name()); ltkjHybgdService.saveBatch(one1); DynamicDataSourceContextHolder.clearDataSourceType(); } } } } } /** * 查询体检记录客户列表 */ @GetMapping("/getList") @ApiOperation(value = "查询体检记录客户列表")//0待1已 // @PreAuthorize("@ss.hasPermi('check:check:getList')") public AjaxResult getList(@ApiParam(value = "审核状态0待审核1已审核") @RequestParam(required = false) Integer checkStatus, @ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page, @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize, @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber, @ApiParam(value = "单位") @RequestParam(required = false) Long compId, @ApiParam(value = "姓名)") @RequestParam(required = false) String name, @ApiParam(value = "审核医生)") @RequestParam(required = false) String shys, @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime, @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) { String value = String.valueOf(compId); if (tjNumber == null) tjNumber = ""; if (compId == null) value = ""; if (name == null) name = ""; if (shys == null) shys = ""; if (beginTime == null) beginTime = ""; if (endTime == null) endTime = ""; return AjaxResult.success(orderService.getCunChuGuoChengCustomerList(tjNumber, page, pageSize, checkStatus, value, beginTime, endTime, name,shys)); } @GetMapping("/getBghsList") @ApiOperation(value = "报告核收页面查询接口")//0待1已 // @PreAuthorize("@ss.hasPermi('check:check:getList')") public AjaxResult getBghsList(@ApiParam(value = "页码数(默认1)") @RequestParam(defaultValue = "1") Integer page, @ApiParam(value = "显示条数(默认10)") @RequestParam(defaultValue = "10") Integer pageSize, @ApiParam(value = "体检单号") @RequestParam(required = false) String tjNumber, @ApiParam(value = "单位") @RequestParam(required = false) Long compId, @ApiParam(value = "姓名)") @RequestParam(required = false) String name, @ApiParam(value = "开始时间") @RequestParam(required = false) String beginTime, @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) { // String config = configService.selectConfigByKey("tj_confirm"); // DateTime beginTimes = null; // DateTime endTimes = null; // if (null != beginTime && null != endTime) { // beginTimes = DateUtil.beginOfDay(DateUtil.parse(beginTime)); // endTimes = DateUtil.endOfDay(DateUtil.parse(endTime)); // } // asyncService.checkSetCustomerLisByRedis(config); // //初始化体检订单表 // List orderList = null; // List customerList = new ArrayList<>(); // Map map = new HashMap<>(); // // //姓名查询 // if (null != name && !"".equals(name)) { // List list = customerService.getTjCustomerList(name); // if (null != list && list.size() > 0) { // List lists = new ArrayList<>(); // for (TjCustomer customer : list) { // if ("Y".equals(config)) { // orderList = orderService.getCsTjOrderListByCusId1(customer.getCusId()); // } else { // orderList = orderService.getTjOrderListByCusId(customer.getCusId()); // } // if (null != orderList && orderList.size() > 0) { // for (TjOrder tjOrder : orderList) { // customer.setTjNumber(tjOrder.getTjNumber()); // customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus())); // customer.setOrderId(tjOrder.getOrderId()); // customer.setTjTime(tjOrder.getFinishTime()); // customer.setFinishTime(tjOrder.getFinishTime()); // customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); // customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); // customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); // customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); // customer.setTjCategory(tjOrder.getTjCategory()); // if (tjOrder.getFirmId().equals("0")) { // customer.setTjCompName(null); // } else { // customer.setTjCompName(compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()).getCnName()); // } // lists.add(customer); // } // } // } // List customers = null; // if (lists.size() > 0) { // customers = lists.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // } // map.put("customers", customers); // map.put("total", lists.size()); // return AjaxResult.success(map); // } // return AjaxResult.success("暂无数据"); // } // // //条件查询 // if (null != tjNumber || null != compId || (null != beginTime && null != endTime)) { // //判断是否开启初审 // if ("Y".equals(config)) { // orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes); // } else { // orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); // } // return getResult(page, pageSize, orderList, customerList, map); // } // // List customers = null; // if (null != checkStatus && checkStatus == 0) { // customers = redisCache.getCacheMapValue("check", "ws"); // } // if (null != checkStatus && checkStatus == 1) { // customers = redisCache.getCacheMapValue("check", "ys"); // } // if (customers != null && customers.size() > 0) { //// asyncService.addRedis(customers); // List customerLists = customers.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); // map.put("customers", customerLists); // map.put("total", customers.size()); // return AjaxResult.success(map); // } else { // //判断是否开启初审 // if ("Y".equals(config)) { // orderList = orderService.getCsTjOrderList1(tjNumber, checkStatus, compId, beginTimes, endTimes); // } else { // orderList = orderService.getTjOrderList(tjNumber, checkStatus, compId, beginTimes, endTimes); // } // return getResult(page, pageSize, orderList, customerList, map); // } String value = String.valueOf(compId); if (tjNumber == null) tjNumber = ""; if (compId == null) value = ""; if (name == null) name = ""; if (beginTime == null) beginTime = ""; if (endTime == null) endTime = ""; return AjaxResult.success(orderService.getgetBghsList(tjNumber, page, pageSize, value, beginTime, endTime, name)); } /** * 根据体检订单号获取体检详情信息接口 * * @param tjNumber * @param advice * @param checkStatus * @return */ @PutMapping("/getTjdetailList") @ApiOperation(value = "根据体检订单号获取体检详情信息(并修改状态)接口") // @PreAuthorize("@ss.hasPermi('check:check:getTjdetailList')") public AjaxResult getTjdetailList(@ApiParam(value = "体检tjNumber") @RequestParam String tjNumber, @ApiParam(value = "总检建议") @RequestParam(required = false) String advice, @ApiParam(value = "审核状态0待审核1已审核") @RequestParam Integer checkStatus) { String config = configService.selectConfigByKey("sfjcwjhyqxm"); if (null != config && config.equalsIgnoreCase("Y")) { int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber); if (num > 0) return AjaxResult.error("存在未检或延期项目暂不能生成报告!!!"); } Date date = new Date(); if (null != tjNumber) { Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId()); SysUser sysUser = userService.getById(userId); LambdaQueryWrapper wq1 = new LambdaQueryWrapper<>(); wq1.eq(TjOrder::getTjNumber, tjNumber); TjOrder tjOrder = orderService.getOne(wq1); if (null != tjOrder) { tjOrder.setCheckAdvice(advice); tjOrder.setCheckStatus(checkStatus); tjOrder.setStatus(TjConstants.TJ_CHECK); tjOrder.setCheckDoctor(sysUser.getNickName()); tjOrder.setCheckTime(date); tjOrder.setStatus(401); tjOrder.setFinishTime(date); if (orderService.updateById(tjOrder)) { TjCustomer customer = customerService.getById(tjOrder.getUserId()); if (null != customer) { customer.setCusNumber(customer.getCusNumber() + 1); customer.setCardId("0"); if (customerService.updateById(customer)) { asyncService.updateCheckType(tjNumber); return AjaxResult.success("操作成功"); } return AjaxResult.error("操作失败"); } } return AjaxResult.error("操作失败"); } return AjaxResult.success("数据不存在"); } return AjaxResult.error(); } /** * 总检点击体检信息详情————非化验项目 * * @param tjNumber * @return */ @GetMapping("/updateCheckType") @ApiOperation(value = "总检点击体检信息详情————非化验项目") public AjaxResult updateCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) { // if (redisCache.hasKey("updateCheckType" + tjNumber)) { // List> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber); // return AjaxResult.success(cacheMapValue); // } // return getAjaxResult(tjNumber); return getResult(tjNumber); } private AjaxResult getAjaxResult(String tjNumber) { asyncService.updateCheckType(tjNumber); List> list = new ArrayList<>(); TjOrder one = orderService.getOrderByTjNum(tjNumber); if (one == null) { return AjaxResult.error("暂无数据!!"); } TjCustomer customer = customerService.getById(one.getUserId()); List remarkList = orderRemarkService.getRemarkListByTjNumAndType(tjNumber); if (null != remarkList && remarkList.size() > 0) { for (TjOrderRemark remark : remarkList) { Map parent = new HashMap<>(); parent.put("checkAdvice", one.getCheckAdvice()); TjProject project = projectService.selectTjProjectByProId(remark.getProId()); //判断该项目是否需要打印报告 if ("N".equals(project.getNeedReport())) { continue; } //判断该项目是否检验科项目 2024/2/28g if (project.getDeptId() == 241) { continue; } if (null != project) { parent.put("parent", project.getProName()); parent.put("parentId", project.getProId().toString()); } List tjOrderDetails = detailService.getDetailByOrderIdAndParId(one.getOrderId(), remark.getProId()); if (null != tjOrderDetails && tjOrderDetails.size() > 0) { for (TjOrderDetail tjOrderDetail : tjOrderDetails) { final TjProject byId = projectService.selectTjProjectByProId(tjOrderDetail.getProId()); String metering = null; if (null == byId) { detailService.removeById(tjOrderDetail.getOrderDetailId()); } else { metering = byId.getProMetering(); tjOrderDetail.setProject(byId); } List list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId())); if (list2.size() == 0) { TjStandard standard = new TjStandard(); if (StrUtil.isNotBlank(metering)) standard.setCompany(metering); tjOrderDetail.setStandard(standard); } else if (list2.size() == 1) { TjStandard standard = list2.get(0); if (StrUtil.isNotBlank(metering) && StrUtil.isBlank(standard.getCompany())) standard.setCompany(metering); tjOrderDetail.setStandard(standard); } else { final int ageType = StringUtils.getAgeType(DateUtil.ageOfNow(customer.getCusBrithday())); TjStandard tjStandard1 = tjStandardService.getListBySexAndType(customer.getCusSex(), ageType, String.valueOf(tjOrderDetail.getProId())); if (StrUtil.isNotBlank(metering) && StrUtil.isBlank(tjStandard1.getCompany())) tjStandard1.setCompany(metering); tjOrderDetail.setStandard(tjStandard1); } } String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); // List longList = new ArrayList<>(); // for (String str : split) { // if(!"".equals(str)){ // longList.add(Long.valueOf(str)); // } // } parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split)); } else { parent.put("parentAdvice", null); } parent.put("sons", tjOrderDetails); parent.put("remark", remark.getRemark()); if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) { parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName()); } list.add(parent); } else { return AjaxResult.success("该客户没有体检项目数据"); } } return AjaxResult.success(list); } return AjaxResult.success("该客户没有体检项目数据!"); } /** * 总检点击体检信息详情————化验项目 * * @param tjNumber * @return */ @GetMapping("/updateCheckTypeHuaYan") @ApiOperation(value = "总检点击体检信息详情————化验项目") public AjaxResult updateCheckTypeHuaYan(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) { // asyncService.updateCheckType(tjNumber); List> list = new ArrayList<>(); TjOrder one = orderService.getOrderByTjNum(tjNumber); if (one == null) { return AjaxResult.error("暂无数据!!"); } // final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); // if(null !=getInfoFromSqlData && getInfoFromSqlData.equals("Y")) // tbhyxm(one); // TjCustomer customer = customerService.getById(one.getUserId()); List remarkList = orderRemarkService.addHuaYanTable(tjNumber); List tjOrderDetails = detailService.addHuaYanTable(tjNumber); if (null != remarkList && !remarkList.isEmpty()) { for (TjOrderRemark remark : remarkList) { Map parent = new HashMap<>(); parent.put("checkAdvice", one.getCheckAdvice()); parent.put("parent", remark.getProName()); parent.put("parentId", remark.getProId().toString()); List dels = new ArrayList<>(); if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { for (TjOrderDetail tjOrderDetail : tjOrderDetails) { if (remark.getProId().equals(tjOrderDetail.getProId())) { String ckfw = tjOrderDetail.getStanId(); if (StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) { ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), ""); } if (StrUtil.isNotBlank(ckfw)) { try { Integer.parseInt(tjOrderDetail.getYcbz()); String[] split = ckfw.split("-"); BigDecimal min = new BigDecimal(split[0]); BigDecimal max = new BigDecimal(split[1]); String proResult = tjOrderDetail.getProResult(); BigDecimal jyjgval = new BigDecimal(proResult); if (jyjgval.compareTo(min) < 0) { tjOrderDetail.setYcbz("↓"); } else if (jyjgval.compareTo(max) > 0) { tjOrderDetail.setYcbz("↑"); } else { tjOrderDetail.setYcbz(""); } } catch (NumberFormatException ignored) { ignored.printStackTrace(); } } if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")) { tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); } dels.add(tjOrderDetail); } } String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split)); } else { parent.put("parentAdvice", null); } if (dels.size() == 0) { continue; } parent.put("sons", dels); parent.put("remark", remark.getRemark()); if (remark.getDoctorName() != null && null != userService.getById(remark.getDoctorName())) { parent.put("doctorName", userService.getById(remark.getDoctorName()).getNickName()); } list.add(parent); } else { return AjaxResult.success("该客户没有体检项目数据"); } } return AjaxResult.success(list); } return AjaxResult.success("该客户没有体检项目数据!"); } @GetMapping("/updateHYANDCGCheckType") @ApiOperation(value = "总检点击体检信息详情————常规和化验项目") public AjaxResult updateHYANDCGCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) { return getResult(tjNumber); } private AjaxResult getResult(String tjNumber) { asyncService.updateCheckType(tjNumber); List> list = new ArrayList<>(); TjOrder one = orderService.getOrderByTjNum(tjNumber); if (one == null) { return AjaxResult.error("暂无数据!!"); } // final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData"); // if(null !=getInfoFromSqlData && getInfoFromSqlData.equals("Y")) // tbhyxm(one); // TjCustomer customer = customerService.getById(one.getUserId()); List remarkList = orderRemarkService.addHuaYanAndCgTable(tjNumber); List tjOrderDetails = detailService.addHuaYanAndCgTable(tjNumber); if (null != remarkList && !remarkList.isEmpty()) { for (TjOrderRemark remark : remarkList) { Map parent = new HashMap<>(); parent.put("checkAdvice", one.getCheckAdvice()); parent.put("parent", remark.getProName()); parent.put("parentId", remark.getProsId()); parent.put("xmlb", remark.getXmlb()); parent.put("", remark.getXmlb()); List dels = new ArrayList<>(); if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { for (TjOrderDetail tjOrderDetail : tjOrderDetails) { if (remark.getProsId().equals(tjOrderDetail.getProsId())) { String ckfw = tjOrderDetail.getStanId(); if (null != ckfw && StrUtil.isNotBlank(tjOrderDetail.getProAdvice())) { ckfw = ckfw.replace(tjOrderDetail.getProAdvice().trim(), ""); } if (StrUtil.isNotBlank(ckfw)) { try { if (ckfw != null && ckfw.contains("-")) { Integer.parseInt(tjOrderDetail.getYcbz()); String[] split = ckfw.split("-"); BigDecimal min = new BigDecimal(split[0]); BigDecimal max = new BigDecimal(split[1]); String proResult = tjOrderDetail.getProResult(); if (null != proResult) { BigDecimal jyjgval = new BigDecimal(proResult); if (jyjgval.compareTo(min) < 0) { tjOrderDetail.setYcbz("↓"); } else if (jyjgval.compareTo(max) > 0) { tjOrderDetail.setYcbz("↑"); } else if (proResult.contains("阴")) { tjOrderDetail.setYcbz(""); } else { tjOrderDetail.setYcbz(""); } if (null != tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().isEmpty()) { tjOrderDetail.setProResult(tjOrderDetail.getProResult() + " [" + tjOrderDetail.getYcbz() + "]"); } } else { tjOrderDetail.setYcbz(""); } } else { if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阴")) tjOrderDetail.setYcbz(""); if (tjOrderDetail.getProResult() != null && tjOrderDetail.getProResult().contains("阳")) tjOrderDetail.setYcbz("↑"); } } catch (NumberFormatException ignored) { } } else { tjOrderDetail.setYcbz(""); tjOrderDetail.setProResult(tjOrderDetail.getProResult()); } if (remark.getOrgType().equals(tjOrderDetail.getOrgType())) { dels.add(tjOrderDetail); } } } String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(split)); } else { parent.put("parentAdvice", null); } if (dels.isEmpty()) { continue; } // dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getProName, Collator.getInstance(Locale.CHINA))).collect(Collectors.toList()); // dels = dels.stream() // .sorted(Comparator.comparingInt( // tjPdfVO -> tjPdfVO.getProName().length() // 根据名字的长度排序 // )) // .collect(Collectors.toList()); dels = dels.stream().sorted(Comparator.comparing(TjOrderDetail::getXh)).collect(Collectors.toList()); parent.put("sons", dels); parent.put("remark", remark.getRemark()); parent.put("jgbx", remark.getJgbx()); if (remark.getDoctorName() != null) { parent.put("doctorName", remark.getDoctorName()); } list.add(parent); } else { return AjaxResult.success("该客户没有体检项目数据"); } } return AjaxResult.success(list); } return AjaxResult.success("该客户没有体检项目数据!"); } @GetMapping("/getTm") @ApiOperation(value = "获取条码") // @PreAuthorize("@ss.hasPermi('check:check:getTm')") public AjaxResult getTm(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) { return AjaxResult.success(tjNumber); } /** * 总检修改备注 * * @return */ @PostMapping("/checkUpdateOrderRemark") @ApiOperation(value = "总检修改备注接口") public AjaxResult checkUpdateOrderRemark(@RequestBody List updateOrderRemarkVos) { if (null != updateOrderRemarkVos && !updateOrderRemarkVos.isEmpty()) { for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) { LambdaQueryWrapper wqm = new LambdaQueryWrapper<>(); wqm.eq(TjOrderRemark::getTjNumber, remarkVo.getTjNumber()); wqm.eq(TjOrderRemark::getProId, remarkVo.getProId()); TjOrderRemark remark = orderRemarkService.getOne(wqm); if (null != remark) { remark.setRemark(remarkVo.getRemarks()); orderRemarkService.updateById(remark); } } } return AjaxResult.success(); } private AjaxResult getResult(Integer page, Integer pageSize, List orderList, List customerList, Map map) { for (TjOrder tjOrder : orderList) { if (null != tjOrder) { TjCustomer customer = customerService.selectTjCustomerByCusId(tjOrder.getUserId()); if (customer == null) { continue; } customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); customer.setTjNumber(tjOrder.getTjNumber()); customer.setTjStatus(Long.valueOf(tjOrder.getCheckStatus())); customer.setOrderId(tjOrder.getOrderId()); customer.setTjTime(tjOrder.getCreateTime()); customer.setFinishTime(tjOrder.getFinishTime()); customer.setConfirmStatus(String.valueOf(tjOrder.getStatus())); customer.setTjCategory(tjOrder.getTjCategory()); if (tjOrder.getFirmId() == null) { customer.setTjCompName("无"); } else { DictComp byId = compService.selectDictCompByDrugManufacturerId(tjOrder.getFirmId()); if (byId != null) { customer.setTjCompName(byId.getCnName()); } } customerList.add(customer); } } List customers = customerList.stream().skip((long) (page - 1) * pageSize).limit(pageSize).collect(Collectors.toList()); map.put("customers", customers); map.put("total", customerList.size()); return AjaxResult.success(map); } @GetMapping("/getzongjianyishengchakanyichangxiangmu") @ApiOperation(value = "总检查看异常项目接口") public AjaxResult getzongjianyishengchakanyichangxiangmu(@RequestParam String tjNum) { try { if (StrUtil.isNotBlank(tjNum)) { TjOrder one = orderService.getOrderByTjNum(tjNum); if (one == null) { return AjaxResult.error("暂无数据!!"); } yichangxiangmu(tjNum); LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjOrderYcxm::getTjh, tjNum); List list = ycxmService.list(wq); if (null != list && !list.isEmpty()) { Collections.reverse(list); return getOrderYcxmList(list); } else { return zongjianyishengchakanyichangxiangmu(tjNum); } } return AjaxResult.error(); } catch (Exception ex) { //throw new RuntimeException(ex); log.error(ex.getMessage()); return AjaxResult.error(); } } private static AjaxResult getOrderYcxmList(List list) { try { List> maps = getYcxmMapList(list); if (!maps.isEmpty()) { List> collect1 = maps.stream() .sorted((map1, map2) -> map2.get("proName").toString().compareTo(map1.get("proName").toString())) .collect(Collectors.toList()); return AjaxResult.success(collect1); } return AjaxResult.success(maps); } catch (Exception ex) { // throw new RuntimeException(ex); log.error(ex.getMessage()); return AjaxResult.error(); } } private static List> getYcxmMapList(List list) { try { Map> map = list.stream().collect(Collectors.groupingBy(TjOrderYcxm::getParentName)); List> maps = new ArrayList<>(); for (Map.Entry> entry : map.entrySet()) { Map parent = new HashMap<>(); List dels = new ArrayList<>(); for (TjOrderYcxm ycxm : entry.getValue()) { TjOrderDetail detail = new TjOrderDetail(); detail.setOrderDetailId(Long.valueOf(ycxm.getId())); detail.setProName(ycxm.getJcxm()); detail.setProResult(ycxm.getJcjg()); detail.setStanId(ycxm.getCkfw()); detail.setProAdvice(ycxm.getDw()); List> btnrlist = new ArrayList<>(); String jynr = ycxm.getJynr(); JSONArray array = JSONUtil.parseArray(jynr); for (Object object : array) { Map objectMap = new HashMap<>(); JSONObject jsonObject = (JSONObject) object; String bt = jsonObject.getStr("bt"); String nr = jsonObject.getStr("nr"); objectMap.put("bt", bt); objectMap.put("nr", nr); if (null != bt || null != nr) btnrlist.add(objectMap); } detail.setAdvices(btnrlist); dels.add(detail); } parent.put("proName", entry.getKey()); parent.put("jyjc", entry.getValue().get(0).getJyjc()); parent.put("sone", dels); maps.add(parent); } return maps; } catch (NumberFormatException ex) { // throw new RuntimeException(ex); log.error(ex.getMessage()); return null; } } private AjaxResult zongjianyishengchakanyichangxiangmu(String tjNumber) { List> list = new ArrayList<>(); try { List tjOrderYcxms = new ArrayList<>(); TjOrder order = orderService.getOrderByTjNum(tjNumber); if (null != order) { String xb= customerService.getSexByTjh(order.getTjNumber()); List remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); List tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.eq(TjOrderYcxm::getTjh, tjNumber); List ycxmList = ycxmService.list(wq); if (null != remarkList && !remarkList.isEmpty()) { for (TjOrderRemark remark : remarkList) { Map parent = new HashMap<>(); if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { List dels = new ArrayList<>(); for (TjOrderDetail tjOrderDetail : tjOrderDetails) { if (remark.getProsId().equals(tjOrderDetail.getProsId())) { if (null != tjOrderDetail.getYcbz()) { if (!tjOrderDetail.getDeptId().equals("2")) { String replacedAll = tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "").replaceAll("[((][^))]*[))]", "") .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "").replaceAll("◆", ""); List> maps = rulesService.getyichangxiangmujianyiguize(replacedAll,replacedAll, tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber,replacedAll, tjOrderDetail.getProResult()); if (null != maps && !maps.isEmpty()) { tjOrderDetail.setAdvices(maps); } } else { String[] split = tjOrderDetail.getProResult().split("[。,,::.\\s]+"); List> mapList = new ArrayList<>(); for (String s : split) { s = s.replaceAll("\n", "").replaceAll("[((][^))]*[))]", "").replaceAll(" ","") .replaceAll("症","").replaceAll("[0-9]", ""); Map maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s.replaceAll(" ",""), "0",xb); if (null != maps && !maps.isEmpty()) { Object bt = maps.get("bt"); Object nr = maps.get("nr"); if (null != bt || null != nr) mapList.add(maps); } } tjOrderDetail.setAdvices(mapList); } } if (null == ycxmList || ycxmList.isEmpty()) { TjOrderYcxm ycxm = new TjOrderYcxm(); ycxm.setTjh(tjNumber); ycxm.setParentName(remark.getProName()); ycxm.setJcxm(tjOrderDetail.getProName()); ycxm.setJcjg(tjOrderDetail.getProResult()); ycxm.setCkfw(tjOrderDetail.getStanId()); ycxm.setDw(tjOrderDetail.getProAdvice()); ycxm.setJynr(JSONUtil.toJsonStr(tjOrderDetail.getAdvices())); ycxm.setJyjc(remark.getJyjc()); if (ycxmService.save(ycxm)) { tjOrderYcxms.add(ycxm); } } dels.add(tjOrderDetail); } } if (!dels.isEmpty()) { parent.put("proName", remark.getProName()); parent.put("jyjc", remark.getJyjc()); parent.put("sone", dels); list.add(parent); } } } if (!tjOrderYcxms.isEmpty()) { Collections.reverse(tjOrderYcxms); return getOrderYcxmList(tjOrderYcxms); } } } return AjaxResult.success(list); } catch (Exception ex) { // throw new RuntimeException(ex); log.error(ex.getMessage()); return AjaxResult.success(list); } } private void yichangxiangmu(String tjNumber) { try { List tjOrderYcxmList= ycxmService.selectListByTjh(tjNumber); if(null !=tjOrderYcxmList && !tjOrderYcxmList.isEmpty()){ List> list = new ArrayList<>(); TjOrder order = orderService.getOrderByTjNum(tjNumber); if (null != order) { String xb= customerService.getSexByTjh(order.getTjNumber()); List remarkList = orderRemarkService.getzongjianyishengchakanyichangxiangmu(tjNumber); List tjOrderDetails = detailService.getzongjianyishengchakanyichangxiangmu(tjNumber); if (null != remarkList && !remarkList.isEmpty()) { for (TjOrderRemark remark : remarkList) { Map parent = new HashMap<>(); if (null != tjOrderDetails && !tjOrderDetails.isEmpty()) { List dels = new ArrayList<>(); for (TjOrderDetail tjOrderDetail : tjOrderDetails) { if (remark.getProsId().equals(tjOrderDetail.getProsId())) { if (null != tjOrderDetail.getProId() && null != tjOrderDetail.getYcbz()) { if (!tjOrderDetail.getDeptId().equals("2")) { String replacedAll = tjOrderDetail.getProName().replaceAll("[((][^))]*[\u4e00-\u9fa5]+[^))]*[))]", "").replaceAll("[((][^))]*[))]", "") .replaceAll("[ 测定检测]", "").replaceAll("\\[.*?\\]", "").replaceAll("◆", ""); List> maps = rulesService.getyichangxiangmujianyiguize(tjOrderDetail.getProId().toString() ,replacedAll,tjOrderDetail.getYcbz().replaceAll(" ", ""), tjNumber,replacedAll, tjOrderDetail.getProResult()); if (null != maps && !maps.isEmpty()) { tjOrderDetail.setAdvices(maps); } } else { String[] split = tjOrderDetail.getProResult().split("。|,|,"); List> mapList = new ArrayList<>(); for (String s : split) { s = s.replaceAll("\n", "").replaceAll("[((][^))]*[))]", "");; Map maps = tjProAdvicerulesService.getyichangxiangmujianyiguizeJianCha(remark.getKs(), s, "0",xb); if (null != maps && !maps.isEmpty()) { Object bt = maps.get("bt"); Object nr = maps.get("nr"); if (null != bt || null != nr) mapList.add(maps); } } tjOrderDetail.setAdvices(mapList); } } dels.add(tjOrderDetail); } } if (!dels.isEmpty()) { parent.put("proName", remark.getProName()); parent.put("jyjc", remark.getJyjc()); parent.put("sone", dels); list.add(parent); } } } } } List> maps = getYcxmMapList(tjOrderYcxmList); List> collect = list.stream() .filter(b -> maps.stream() .noneMatch(a -> a.get("proName").equals(b.get("proName")))) // 过滤掉在 maps 中存在的相同元素 .collect(Collectors.toList()); if(!collect.isEmpty()){ for (Map map : collect) { for (TjOrderDetail detail : (List) map.get("sone")) { TjOrderYcxm ycxm = new TjOrderYcxm(); ycxm.setTjh(tjNumber); ycxm.setParentName(map.get("proName").toString()); ycxm.setJcxm(detail.getProName()); ycxm.setJcjg(detail.getProResult()); ycxm.setCkfw(detail.getStanId()); ycxm.setDw(detail.getProAdvice()); ycxm.setJynr(JSONUtil.toJsonStr(detail.getAdvices())); ycxm.setJyjc(map.get("jyjc").toString()); ycxmService.save(ycxm); } } } } } catch (Exception ex) { log.error(ex.getMessage()); } } @GetMapping("/delzongjianyishengchakanyichangxiangmu") @ApiOperation(value = "总检删除异常项目接口") public AjaxResult delzongjianyishengchakanyichangxiangmu(@RequestParam String id) { ycxmService.removeById(id); return AjaxResult.success(); } @GetMapping("/chushenyemianchakanxiangmujieguo") @ApiOperation(value = "初审页面查看项目结果接口") public AjaxResult chushenyemianchakanxiangmujieguo(@RequestParam String proId, @RequestParam String tjNum) { List> maps = projectService.tjCsXmjgcx(tjNum, proId); return AjaxResult.success(maps); } @GetMapping("/panduaniscunzaiweijian") @ApiOperation(value = "初审页面查看项目前判断是否全部未检接口") public AjaxResult panduaniscunzaiweijian(@RequestParam String tjNum) { int a = orderRemarkService.panduaniscunzaiweijian(tjNum); return AjaxResult.success(a); } @PostMapping("/addOrderYcXmByTjh") @ApiOperation(value = "总检医生页面新增异常项目建议") public AjaxResult addOrderYcXmJyByTjh(@RequestBody List ycxms) { if (null != ycxms && !ycxms.isEmpty()) { String tjh = ycxms.get(0).getTjh(); if (StringUtils.isNotBlank(tjh)) { ycxmService.delOrderYcXmJyByTjh(tjh); // String szyssy=""; // StringBuilder builders = new StringBuilder(); // List ycxmList=new ArrayList<>(); for (TjOrderYcxm ycxm : ycxms) { ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap())); // if(ycxm.getJcxm().contains("舒张压")||ycxm.getJcxm().contains("收缩压")){ // builders.append(ycxm.getJcxm()).append(ycxm.getJcjg()).append(" "); // szyssy+=builders.toString(); // } } ycxmService.saveBatch(ycxms); return AjaxResult.success(); } } return AjaxResult.success(); } @PostMapping("/newaddOrderYcXmJyByTjh") @ApiOperation(value = "总检医生页面新增异常项目建议(单个)") public AjaxResult newaddOrderYcXmJyByTjh(@RequestBody TjOrderYcxm ycxm) { ycxm.setJynr(JSONUtil.toJsonStr(ycxm.getMap())); ycxmService.saveOrUpdate(ycxm); return AjaxResult.success(); } }