zhaowenxuan
2024-07-01 c976a54131a31143c174c475c8050427946eb4a8
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -2,6 +2,10 @@
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.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -25,9 +29,11 @@
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.system.service.ISysDeptService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.controller.his.HisApiMethodService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.var;
import org.aspectj.weaver.AjAttribute;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.prepost.PreAuthorize;
@@ -35,6 +41,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -95,6 +102,9 @@
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    @Autowired
    private HisApiMethodService controller;
    @GetMapping("/getOperationPermissionsByTjNum")
@@ -269,7 +279,7 @@
                                   @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 (num > 0) return AjaxResult.error("请检查是否存在未检或延期项目");
        if (null != tjNumber) {
            Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
            SysUser sysUser = userService.getById(userId);
@@ -308,36 +318,19 @@
    @GetMapping("/dataSynchronization")
    @ApiOperation(value = "同步sql server数据到本地数据库数据接口")
    @RepeatSubmit
    @Transactional
    public AjaxResult dataSynchronization(@RequestParam String tjNumber) {
        //根据配置调取存储过程 将临时表数据存入预约表2023.12.12
        final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
        if ("Y".equals(getInfoFromSqlData)) {
            TjOrder order = orderService.getOrderByTjNum(tjNumber);
            if (null != order) {
                List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
                if (one != null && one.size() > 0) {
                    for (LtkjHysqd ltkjHysqd : one) {
//                        LambdaQueryWrapper<LtkjHysqd> wq0=new LambdaQueryWrapper<>();
//                        wq0.eq(LtkjHysqd::getTjh,ltkjHysqd.getTjh());
//                        wq0.eq(LtkjHysqd::getTmh,ltkjHysqd.getTmh());
//                        ltkjHysqdService.remove(wq0);
                        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<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
                            if (one1 != null && one1.size() > 0) {
                                DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                                ltkjHybgdService.saveBatch(one1);
                                DynamicDataSourceContextHolder.clearDataSourceType();
                            }
                        }
                    }
                }
//                List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
        final String sfkqdyhis = configService.selectConfigByKey("sfkqdyhis");
        TjOrder order = orderService.getOrderByTjNum(tjNumber);
        if(null !=order){
        //开启字典弹窗
        if ("Y".equals(getInfoFromSqlData)) {
                tbhyxm(order);
                //                List<LtkjExamJcsqd> one2 = testMapper.getExamJcsqdTmh(tjNumber);
//                if (one2 != null && one2.size() > 0) {
//                    DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
//                    ltkjExamJcsqdService.saveBatch(one2);
@@ -356,9 +349,139 @@
                //同步检查项目
                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<String> baoGaoDans = ltkjHybgdService.getJianYanBaoGaoDan(order.getCardId());
            if(null !=baoGaoDans && baoGaoDans.size()>0){
//                List<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
//                if (one != null && one.size() > 0) {
//                    for (LtkjHysqd ltkjHysqd : one) {
//                        ltkjHysqdService.deletedLtkjHysqdByTjhAndTmh(ltkjHysqd.getTjh(), ltkjHysqd.getTmh());
//                        ltkjHybgdService.deletedLtkjHybgdByTjhAndTmh(ltkjHysqd.getTmh());
//                    }
//                }
//                for (String baoGaoDan : baoGaoDans) {
                    Date dates = new Date();
                    Map<String,Object> 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"));
                        if (ltkjHysqdService.save(hysqd)) {
                            Map<String,Object> 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")){
                                return AjaxResult.error("化验项目暂时无结果,请稍后同步!!!");
                            }
                            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.setYcbz(js.getStr("YCTS"));
//                            bgd.setTpurl(js.getStr(""));
                                ltkjHybgdService.save(bgd);
                            }
                        }
                    }
//                }
                //同步化验项目
                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());
            }
        }
        return AjaxResult.success("同步成功");
        }
        return AjaxResult.error();
    }
    //将方法返回值解析成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<LtkjHysqd> one = testMapper.getHysqdByTmh(order.getCardId());
        if (one != null && one.size() > 0) {
            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<LtkjHybgd> one1 = testMapper.getHybgdByTmh(ltkjHysqd.getTmh());
                    if (one1 != null && one1.size() > 0) {
                        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MASTER.name());
                        ltkjHybgdService.saveBatch(one1);
                        DynamicDataSourceContextHolder.clearDataSourceType();
                    }
                }
            }
        }
    }
@@ -465,6 +588,7 @@
//            }
//            return getResult(page, pageSize, orderList, customerList, map);
//        }
        String value = String.valueOf(compId);
        if (tjNumber == null) tjNumber = "";
        if (compId == null) value = "";
@@ -509,10 +633,10 @@
                    if (null != customer) {
                        customer.setCusNumber(customer.getCusNumber() + 1);
                        if (customerService.updateById(customer)) {
                            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
                            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
                            wqq.eq(TbTransition::getCardId, customer.getCardId());
                            transitionService.remove(wqq);
//                            LambdaQueryWrapper<TbTransition> wqq = new LambdaQueryWrapper<>();
//                            wqq.eq(TbTransition::getCusId, customer.getCusIdcard());
//                            wqq.eq(TbTransition::getCardId, customer.getCardId());
//                            transitionService.remove(wqq);
                            asyncService.updateCheckType(tjNumber);
                            return AjaxResult.success("操作成功");
                        }
@@ -583,6 +707,9 @@
                            detailService.removeById(tjOrderDetail.getOrderDetailId());
                        } else {
                            tjOrderDetail.setProject(byId);
                            String metering = byId.getProMetering();
                            if (StrUtil.isNotBlank(metering))
                                tjOrderDetail.setUnit(metering);
                        }
                        List<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
                        if (list2.size() == 0) {
@@ -641,6 +768,9 @@
        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<TjOrderRemark> remarkList = orderRemarkService.addHuaYanTable(tjNumber);
        List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanTable(tjNumber);
@@ -648,7 +778,6 @@
        if (null != remarkList && remarkList.size() > 0) {
            for (TjOrderRemark remark : remarkList) {
                Map<String, Object> parent = new HashMap<>();
                parent.put("checkAdvice", one.getCheckAdvice());
                parent.put("parent", remark.getProName());
@@ -657,6 +786,29 @@
                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                    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()+"]");
                            }