zjh
2024-07-15 a9e42bd044e835f49a08b9d5852ef10e669cd153
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,12 @@
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 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 +42,7 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@@ -46,8 +54,8 @@
 * @Date: 2022/12/6 14:29
 */
@RestController
@RequestMapping("/check")
@Api(tags = "总检医师相关接口")
@RequestMapping ("/check")
@Api (tags = "总检医师相关接口")
public class TjCheckController {
    @Resource
    private ITjOrderService orderService;
@@ -88,18 +96,22 @@
    @Resource
    private LtkjMiddleHeadService headService;
    @Resource
    private LtkjExamJcbgdService ltkjExamJcbgdService;
    private LtkjExamJcbgdService jcbgdService;
    @Resource
    private LtkjExamJcsqdService ltkjExamJcsqdService;
    private LtkjExamJcsqdService jcsqdService;
    @Resource
    private LtkjHybgdService ltkjHybgdService;
    @Resource
    private LtkjHysqdService ltkjHysqdService;
    @Autowired
    private HisApiMethodService controller;
    @Autowired
    private HisApiGetMethodService service;
    @GetMapping("/getOperationPermissionsByTjNum")
    @ApiOperation(value = "(初审页面  和 医生页面)根据体检号获取是否可操作权限接口  true可操作  反之不可")
    public AjaxResult getOperationPermissionsByTjNum(@ApiParam(value = "体检号") @RequestParam String tjNumber) {
    @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();
@@ -114,17 +126,17 @@
    }
    @GetMapping("/getCsList")
    @ApiOperation(value = "初审查询体检记录客户列表")//0待1已
    @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) {
    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;
@@ -215,9 +227,9 @@
    /**
     * 初审
     */
    @GetMapping("/cSWebGetProByTjNumAndOrderId")
    @ApiOperation(value = "(初审页面)点击体检人员展示体检项目接口")
    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam(value = "体检号") @RequestParam String tjNumber) {
    @GetMapping ("/cSWebGetProByTjNumAndOrderId")
    @ApiOperation (value = "(初审页面)点击体检人员展示体检项目接口")
    public AjaxResult cSWebGetProByTjNumAndOrderId(@ApiParam (value = "体检号") @RequestParam String tjNumber) {
//        List<TjOrderRemark> orderRemarkList = orderRemarkService.getTjOrderRemarkListByTjNum(tjNumber);
//        List<CsProVo> list = new ArrayList<>();
//        if (null != orderRemarkList && orderRemarkList.size() > 0) {
@@ -262,14 +274,14 @@
    /**
     * 初审
     */
    @GetMapping("/confirmOrder")
    @ApiOperation(value = "初审(并修改状态)接口")
    @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) {
    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 (num > 0) return AjaxResult.error("请检查是否存在未检或延期项目");
        if (null != tjNumber) {
            Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
            SysUser sysUser = userService.getById(userId);
@@ -305,18 +317,22 @@
    /**
     * 同步sql server数据到本地数据库数据接口
     */
    @GetMapping("/dataSynchronization")
    @ApiOperation(value = "同步sql server数据到本地数据库数据接口")
    @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) {
                tbhyxm(order);
//                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);
@@ -335,9 +351,209 @@
                //同步检查项目
                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) {
                    //同步检验
                    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");
//                    int size = data.size();
//                    if(size>0){
//
//                     }
                    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<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")) {
                                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<String, Object> 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);
                                }
                            }
                        }
                    }
                    //同步检查
                    Map<String, Object> 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);
                    if (Integer.parseInt(results.get("code").toString()) == 200) {
                        List<Map<String, Object>> datas = (List<Map<String, Object>>) results.get("data");
                        if(null !=datas && datas.size()>0){
                            for (Map<String, Object> objectMap : datas) {
                                LtkjExamJcsqd jybgid = jcsqdService.getLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
                                if (null != jybgid) {
                                    jcsqdService.deletedLtkjJcsqdByTjhAndTmh(order.getCardId(), objectMap.get("JCBGID").toString());
                                    jcbgdService.deletedLtkjJcbgdByTjhAndTmh(jybgid.getTmh());
                                }
                                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());
                        }
                    }
                }
                //同步化验项目
                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.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) {
@@ -365,17 +581,17 @@
    /**
     * 查询体检记录客户列表
     */
    @GetMapping("/getList")
    @ApiOperation(value = "查询体检记录客户列表")//0待1已
    @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 beginTime,
                              @ApiParam(value = "结束时间") @RequestParam(required = false) String endTime) {
    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 beginTime,
                              @ApiParam (value = "结束时间") @RequestParam (required = false) String endTime) {
        //        String config = configService.selectConfigByKey("tj_confirm");
//        DateTime beginTimes = null;
//        DateTime endTimes = null;
@@ -483,12 +699,12 @@
     * @param checkStatus
     * @return
     */
    @PutMapping("/getTjdetailList")
    @ApiOperation(value = "根据体检订单号获取体检详情信息(并修改状态)接口")
    @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) {
    public AjaxResult getTjdetailList(@ApiParam (value = "体检tjNumber") @RequestParam String tjNumber,
                                      @ApiParam (value = "总检建议") @RequestParam (required = false) String advice,
                                      @ApiParam (value = "审核状态0待审核1已审核") @RequestParam Integer checkStatus) {
        int num = orderRemarkService.getTjYqOrderRemarkByTjNum(tjNumber);
        if (num > 0) return AjaxResult.error("有延期项目暂不能生成报告!!!");
@@ -510,10 +726,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("操作成功");
                        }
@@ -534,14 +750,15 @@
     * @param tjNumber
     * @return
     */
    @GetMapping("/updateCheckType")
    @ApiOperation(value = "总检点击体检信息详情————非化验项目")
    public AjaxResult updateCheckType(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
    @GetMapping ("/updateCheckType")
    @ApiOperation (value = "总检点击体检信息详情————非化验项目")
    public AjaxResult updateCheckType(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
//        if (redisCache.hasKey("updateCheckType" + tjNumber)) {
//            List<Map<String, Object>> cacheMapValue = redisCache.getCacheMapValue("updateCheckType" + tjNumber, tjNumber);
//            return AjaxResult.success(cacheMapValue);
//        }
        return getAjaxResult(tjNumber);
//        return getAjaxResult(tjNumber);
        return getResult(tjNumber);
    }
    private AjaxResult getAjaxResult(String tjNumber) {
@@ -580,19 +797,29 @@
                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<TjStandard> list2 = tjStandardService.getTjStandardListByProId(String.valueOf(tjOrderDetail.getProId()));
                        if (list2.size() == 0) {
                            tjOrderDetail.setStandard(new TjStandard());
                            TjStandard standard = new TjStandard();
                            if (StrUtil.isNotBlank(metering))
                                standard.setCompany(metering);
                            tjOrderDetail.setStandard(standard);
                        } else if (list2.size() == 1) {
                            tjOrderDetail.setStandard(list2.get(0));
                            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);
                        }
                    }
@@ -632,9 +859,9 @@
     * @param tjNumber
     * @return
     */
    @GetMapping("/updateCheckTypeHuaYan")
    @ApiOperation(value = "总检点击体检信息详情————化验项目")
    public AjaxResult updateCheckTypeHuaYan(@ApiParam(value = "客户体检号") @RequestParam String tjNumber) {
    @GetMapping ("/updateCheckTypeHuaYan")
    @ApiOperation (value = "总检点击体检信息详情————化验项目")
    public AjaxResult updateCheckTypeHuaYan(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
//        asyncService.updateCheckType(tjNumber);
        List<Map<String, Object>> list = new ArrayList<>();
        TjOrder one = orderService.getOrderByTjNum(tjNumber);
@@ -642,7 +869,9 @@
        if (one == null) {
            return AjaxResult.error("暂无数据!!");
        }
        tbhyxm(one);
//        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);
@@ -650,17 +879,39 @@
        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());
                parent.put("parentId", remark.getProId().toString());
                List<TjOrderDetail> dels=new ArrayList<>();
                List<TjOrderDetail> dels = new ArrayList<>();
                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                    for (TjOrderDetail tjOrderDetail : tjOrderDetails) {
                        if(remark.getProId().equals(tjOrderDetail.getProId())){
                            if(null !=tjOrderDetail.getYcbz() && !tjOrderDetail.getYcbz().equals("")){
                                tjOrderDetail.setProResult(tjOrderDetail.getProResult()+" ["+tjOrderDetail.getYcbz()+"]");
                        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);
                        }
@@ -672,7 +923,7 @@
                    } else {
                        parent.put("parentAdvice", null);
                    }
                    if(dels.size()==0){
                    if (dels.size() == 0) {
                        continue;
                    }
                    parent.put("sons", dels);
@@ -692,10 +943,104 @@
    }
    @GetMapping("/getTm")
    @ApiOperation(value = "获取条码")
    @GetMapping ("/updateHYANDCGCheckType")
    @ApiOperation (value = "总检点击体检信息详情————常规和化验项目")
    public AjaxResult updateHYANDCGCheckType(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
        return getResult(tjNumber);
    }
    private AjaxResult getResult(String tjNumber) {
        asyncService.updateCheckType(tjNumber);
        List<Map<String, Object>> 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<TjOrderRemark> remarkList = orderRemarkService.addHuaYanAndCgTable(tjNumber);
        List<TjOrderDetail> tjOrderDetails = detailService.addHuaYanAndCgTable(tjNumber);
        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());
                parent.put("parentId", remark.getProsId());
                parent.put("xmlb", remark.getXmlb());
                parent.put("", remark.getXmlb());
                List<TjOrderDetail> dels = new ArrayList<>();
                if (null != tjOrderDetails && tjOrderDetails.size() > 0) {
                    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 {
                                    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() + "]");
                                }
                            }else {
                                tjOrderDetail.setProResult(tjOrderDetail.getProResult());
                            }
                            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());
                    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) {
    public AjaxResult getTm(@ApiParam (value = "客户体检号") @RequestParam String tjNumber) {
        return AjaxResult.success(tjNumber);
    }
@@ -704,8 +1049,8 @@
     *
     * @return
     */
    @PostMapping("/checkUpdateOrderRemark")
    @ApiOperation(value = "总检修改备注接口")
    @PostMapping ("/checkUpdateOrderRemark")
    @ApiOperation (value = "总检修改备注接口")
    public AjaxResult checkUpdateOrderRemark(@RequestBody List<UpdateOrderRemarkVo> updateOrderRemarkVos) {
        if (null != updateOrderRemarkVos && updateOrderRemarkVos.size() > 0) {
            for (UpdateOrderRemarkVo remarkVo : updateOrderRemarkVos) {