6341f129682926b3909604e9b04dc95199c2059a..0f6f7302d471aa425055c68c28524c801548a9f1
4 天以前 zhaowenxuan
2025-05-13
0f6f73 对比 | 目录
4 天以前 zhaowenxuan
2025-05-13
2b2763 对比 | 目录
4 天以前 zjh
zjh20250513
3d2ad7 对比 | 目录
12个文件已修改
5个文件已添加
2334 ■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/dto/PutAskMedicalHistoryDto.java 291 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java 671 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/resources/1.js 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/resources/sql/职业病.sql 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskHistorys.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskMedicalHistory.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderDetailMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderDetailService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderDetailServiceImpl.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/vo/ProFcListVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/hosp/TjAskMedicalHistoryMapper.xml 689 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/dto/PutAskMedicalHistoryDto.java
New file
@@ -0,0 +1,291 @@
package com.ltkj.web.controller.dto;
import cn.hutool.json.JSONArray;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ltkj.common.annotation.Excel;
import com.ltkj.common.mybatis.JsonStringArrayTypeHandler;
import com.ltkj.hosp.domain.TjAskHistorys;
import com.ltkj.hosp.domain.TjAskWorkLog;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * @Company: è¥¿å®‰è·¯æ³°ç§‘技有限公司
 * @Author: zhaowenxuan
 * @Date: 2025/5/9 09:41
 */
@Data
public class PutAskMedicalHistoryDto {
    /**
     * æŽ¥è§¦å±å®³å› ç´ 
     */
    private String tcwhyx;
    /**
     * ç”¨å·¥å•位
     */
    private String ygdw;
    /**
     * askId
     */
    @TableId(type= IdType.AUTO)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long askId;
    /**
     * å®¢æˆ·id
     */
    @ApiModelProperty(value = "客户id")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long cusId;
    /**
     * èº«ä»½è¯å·
     */
    @ApiModelProperty(value = "客户身份证号")
    @TableField(exist = false)
    private String cusIdCard;
    @ApiModelProperty(value = "客户性别")
    @TableField(exist = false)
    private String cusSex;
    /**
     * order表 tj_category字段值
     * å­—典表键 dict_tjtype
     */
    @ApiModelProperty(value = "客户体检类型")
    @TableField(exist = false)
    private String tjLx;
    /**
     * å®¢æˆ·å
     */
    @ApiModelProperty(value = "客户名")
    @Excel(name = "客户名")
    private String cusName;
    @ApiModelProperty(value = "体检号")
    @Excel(name = "体检号")
    private String tjNum;
    /**
     * èŒä¸š
     */
    @ApiModelProperty(value = "职业")
    @Excel(name = "职业")
    private String work;
    /**
     * å·¥ä½œçŠ¶æ€
     */
    @ApiModelProperty(value = "工作状态")
    @Excel(name = "工作状态",dictType="tj_work_status")
    private String workStatus;
    /**
     * æ—¢å¾€ç—…史
     */
    @ApiModelProperty(value = "既往病史")
    @Excel(name = "既往病史")
    private JSONArray medicalHistory;
    /**
     * åˆæ½®
     */
    @ApiModelProperty(value = "初潮")
    @Excel(name = "初潮")
    private String chuchao;
    /**
     * ç»æœŸ
     */
    @ApiModelProperty(value = "经期")
    @Excel(name = "经期")
    private String jingqi;
    /**
     * å‘¨æœŸ
     */
    @ApiModelProperty(value = "周期")
    @Excel(name = "周期")
    private String zhouqi;
    /**
     * æœ«æ¬¡æœˆç»æˆ–停经年龄
     */
    @ApiModelProperty(value = "末次月经或停经年龄")
    @Excel(name = "末次月经或停经年龄")
    private String mociage;
    @ApiModelProperty(value = "月经是否异常")
    private String yjsfyc;
    /**
     * çŽ°æœ‰å­å¥³
     */
    @ApiModelProperty(value = "现有子女")
    @Excel(name = "现有子女")
    private String zinv;
    /**
     * æµäº§
     */
    @ApiModelProperty(value = "流产")
    @Excel(name = "流产")
    private String liuchan;
    /**
     * æ—©äº§
     */
    @ApiModelProperty(value = "早产")
    @Excel(name = "早产")
    private String zaochan;
    /**
     * æ­»äº§
     */
    @ApiModelProperty(value = "死产")
    @Excel(name = "死产")
    private String sichan;
    /**
     * å¼‚常胎
     */
    @ApiModelProperty(value = "异常胎")
    @Excel(name = "异常胎")
    private String yichangtai;
    /**
     * å¸çƒŸ
     * æ˜¯å¦å¸çƒŸ
     */
    @ApiModelProperty(value = "吸烟")
    @Excel(name = "吸烟")
    private String xiyan;
    /**
     * å¸çƒŸé¢‘率
     */
    @ApiModelProperty(value = "吸烟频率")
    @Excel(name = "吸烟频率")
    private String xiyanpinlv;
    /**
     * å¸çƒŸæ—¶é—´
     */
    @ApiModelProperty(value = "吸烟时间")
    @Excel(name = "吸烟时间")
    private String xiyanyear;
    /**
     * é¥®é…’
     */
    @ApiModelProperty(value = "饮酒")
    @Excel(name = "饮酒")
    private String yinjiu;
    /**
     * é¥®é…’频率
     */
    @ApiModelProperty(value = "饮酒频率")
    @Excel(name = "饮酒频率")
    private String yinjiupinlv;
    /**
     * é¥®é…’æ—¶é—´
     */
    @ApiModelProperty(value = "饮酒时间")
    @Excel(name = "饮酒时间")
    private String yinjiuyear;
    /**
     * å…¶ä»–
     */
    @ApiModelProperty(value = "其他")
    @Excel(name = "其他")
    private String qita;
    /**
     * æ¥æºæ ‡å¿—
     */
    @ApiModelProperty(value = "来源标志")
    @Excel(name = "来源标志")
    private String fromBy;
    /**
     * èŒä¸šåŽ†å²
     */
    @ApiModelProperty(value = "职业历史")
    @TableField(exist = false)
    private List<TjAskWorkLog> workLogs;
    /**
     * æŽ¥è§¦æ¯’物
     */
    @ApiModelProperty(value = "接触毒物")
    @Excel(name = "接触毒物")
    private String contactPoison;
    /**
     * ä½“检类别
     */
    @TableField(exist = false)
    private String tjCategory;
    @ApiModelProperty(value = "症状数据集")
    @TableField(typeHandler = JsonStringArrayTypeHandler.class)
    private String[] zzsjj;
    @ApiModelProperty(value = "工种")
    private String gongZhong;
    @ApiModelProperty(value = "工龄")
    private String gongLing;
    @ApiModelProperty(value = "接害工龄")
    private String jhgl;
    /**
     * å•位名称
     */
    private String dwmc;
    /**
     * æ—¢å¾€ç—…史其他说明
     */
    private String medicalHistoryOther;
    private List<TjAskHistorys> zhiyezzList;
    /**
     * ç—…史信息
     */
    @ApiModelProperty(value = "病史信息")
    @TableField(exist = false)
    private List<TjAskHistorys> tjAskHistorysList;
}
/**
 * èŒä¸šç—…史
 */
@Data
class MedicalHistoryDto{
    private String id;
    private String icdname;
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java
@@ -5,10 +5,15 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.bean.BeanUtil;
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.ltkj.framework.config.MatchUtils;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.service.*;
import com.ltkj.web.controller.dto.PutAskMedicalHistoryDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.val;
@@ -121,13 +126,23 @@
                    askWorkLog.setHarmTypeLogs(skuNos);
                }
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                final List<TjAskHistorys> list11 = historysService.list(wqq111);
                wqq111.eq(TjAskHistorys::getDataType,1);
                List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(list11);
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,2);
                list11 = historysService.list(wqq111);
                one.setZhiyezzList(list11);
                return AjaxResult.success(one);
            }else {
                TjAskMedicalHistory a = new TjAskMedicalHistory();
@@ -191,11 +206,82 @@
    /**
     * pc端修改问诊
     */
//    @ApiOperation(value = "pc端修改问诊")
//    @Log(title = "问诊", businessType = BusinessType.UPDATE)
//    @PutMapping
//    @Transactional
//    public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
//        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
//        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
//        tjAskWorkLogService.remove(wq);
//        LambdaQueryWrapper<TjHarmTypeLog> wq1 = new LambdaQueryWrapper<>();
//        wq1.eq(TjHarmTypeLog::getTjNumber, tjAskMedicalHistory.getTjNum());
//        tjHarmTypeLogService.remove(wq1);
//
//
//        boolean b = false;
//        tjAskMedicalHistory.setFromBy("PC端");
//        if (tjAskMedicalHistory.getAskId() != null) {
//            b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
//        } else {
//            b = tjAskMedicalHistoryService.save(tjAskMedicalHistory);
//        }
//        if (b) {
//            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
//            if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
//                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
//                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
//                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
//                    if (!b1) {
//                        return AjaxResult.error();
//                    }
//                }
//            }
//
//            List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
//            if (askWorkLogs != null && askWorkLogs.size() > 0) {
//                for (TjAskWorkLog askWorkLog : askWorkLogs) {
//                    askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
//                    askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
//                    askWorkLog.setTjNumber(tjAskMedicalHistory.getTjNum());
//                    askWorkLog.setAskId(tjAskMedicalHistory.getAskId());
//                    boolean b1 = tjAskWorkLogService.saveOrUpdate(askWorkLog);
//                    List<String> harmTypeLogs = askWorkLog.getHarmTypeLogs();
//                    if (harmTypeLogs != null) {
//                        for (String harmTypeLog : harmTypeLogs) {
//                            final TjHarmType byId = tjHarmTypeService.getById(harmTypeLog);
//                            if (byId != null) {
//                                TjHarmTypeLog log = new TjHarmTypeLog();
//                                log.setAid(byId.getAid());
//                                log.setCusId(tjAskMedicalHistory.getCusId());
//                                log.setCusName(tjAskMedicalHistory.getCusName());
//                                log.setTjNumber(tjAskMedicalHistory.getTjNum());
//                                log.setWorkId(askWorkLog.getId());
//                                tjHarmTypeLogService.save(log);
//                            }
//                        }
//                    }
//                    if (!b1) {
//                        return AjaxResult.error();
//                    }
//                }
//            }
//            return AjaxResult.success(tjAskMedicalHistory);
//        }
//        return AjaxResult.error();
//        //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
//    }
    /**
     * pc端修改问诊
     */
    @ApiOperation(value = "pc端修改问诊")
    @Log(title = "问诊", businessType = BusinessType.UPDATE)
    @PutMapping
    @Transactional
    public AjaxResult edit(@RequestBody TjAskMedicalHistory tjAskMedicalHistory) {
    public AjaxResult edit(@RequestBody PutAskMedicalHistoryDto askMedicalHistoryDto) {
        TjAskMedicalHistory tjAskMedicalHistory = new TjAskMedicalHistory();
        BeanUtil.copyProperties(askMedicalHistoryDto,tjAskMedicalHistory,true);
        LambdaQueryWrapper<TjAskWorkLog> wq = new LambdaQueryWrapper<>();
        wq.eq(TjAskWorkLog::getTjNumber, tjAskMedicalHistory.getTjNum());
        tjAskWorkLogService.remove(wq);
@@ -206,6 +292,19 @@
        boolean b = false;
        tjAskMedicalHistory.setFromBy("PC端");
        JSONArray medicalHistory = askMedicalHistoryDto.getMedicalHistory();
        String medicalHistoryTxt = medicalHistory.stream().map(item -> {
            JSONObject entries = (JSONObject) item;
            return entries.getStr("icdname");
        }).collect(Collectors.joining(","));
        String medicalHistoryIds = medicalHistory.stream().map(item -> {
            JSONObject entries = (JSONObject) item;
            return entries.getStr("id");
        }).collect(Collectors.joining(","));
        tjAskMedicalHistory.setMedicalHistoryIds(medicalHistoryIds);
        tjAskMedicalHistory.setMedicalHistory(medicalHistoryTxt);
        if (tjAskMedicalHistory.getAskId() != null) {
            b = tjAskMedicalHistoryService.updateById(tjAskMedicalHistory);
        } else {
@@ -213,9 +312,22 @@
        }
        if (b) {
            List<TjAskHistorys> tjAskHistorysList = tjAskMedicalHistory.getTjAskHistorysList();
            if (tjAskHistorysList != null && tjAskHistorysList.size() > 0) {
            if (tjAskHistorysList != null && !tjAskHistorysList.isEmpty()) {
                for (TjAskHistorys tjAskHistorys : tjAskMedicalHistory.getTjAskHistorysList()) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    tjAskHistorys.setDataType(1);
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1) {
                        return AjaxResult.error();
                    }
                }
            }
            List<TjAskHistorys> zhiyezzList = askMedicalHistoryDto.getZhiyezzList();
            if (zhiyezzList != null && !zhiyezzList.isEmpty()) {
                for (TjAskHistorys tjAskHistorys : zhiyezzList) {
                    tjAskHistorys.setAskId(tjAskMedicalHistory.getAskId());
                    tjAskHistorys.setDataType(2);
                    boolean b1 = historysService.saveOrUpdate(tjAskHistorys);
                    if (!b1) {
                        return AjaxResult.error();
@@ -224,7 +336,7 @@
            }
            List<TjAskWorkLog> askWorkLogs = tjAskMedicalHistory.getWorkLogs();
            if (askWorkLogs != null && askWorkLogs.size() > 0) {
            if (askWorkLogs != null && !askWorkLogs.isEmpty()) {
                for (TjAskWorkLog askWorkLog : askWorkLogs) {
                    askWorkLog.setCusId(tjAskMedicalHistory.getCusId());
                    askWorkLog.setCusName(tjAskMedicalHistory.getCusName());
@@ -254,7 +366,16 @@
            return AjaxResult.success(tjAskMedicalHistory);
        }
        return AjaxResult.error();
        //return toAjax(tjAskMedicalHistoryService.updateTjAskMedicalHistory(tjAskMedicalHistory));
    }
    /**
     * åˆ é™¤ç—…史或症状
     * @param historyId
     * @return
     */
    @PostMapping("/removeAskHistorys")
    public AjaxResult removeAskHistorys(@RequestBody List<String > historyId){
        return toAjax(historysService.removeByIds(historyId));
    }
@@ -288,9 +409,20 @@
                LambdaQueryWrapper<TjAskHistorys> wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                final List<TjAskHistorys> list11 = historysService.list(wqq111);
                wqq111.eq(TjAskHistorys::getDataType,1);
                List<TjAskHistorys> list11 = historysService.list(wqq111);
                one.setTjAskHistorysList(list11);
                wqq111 = new LambdaQueryWrapper<>();
                wqq111.eq(TjAskHistorys::getAskId, one.getAskId());
                wqq111.eq(TjAskHistorys::getDataType,2);
                list11 = historysService.list(wqq111);
                one.setZhiyezzList(list11);
                TjOrder order = tjOrderService.getOrderByTjNum(tjNumber);
                one.setTjLx(order.getTjCategory());
                return AjaxResult.success(one);
            }else {
                TjAskMedicalHistory a = new TjAskMedicalHistory();
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -25,6 +25,7 @@
import com.ltkj.hosp.mapper.TestMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.*;
import com.ltkj.hosp.vo.ProFcListVo;
import com.ltkj.hosp.vodomain.CsProVo;
import com.ltkj.hosp.vodomain.UpdateOrderRemarkVo;
import com.ltkj.mall.mallOrderUtils.TjConstants;
@@ -2032,4 +2033,29 @@
    }
    /**
     * æŸ¥è¯¢å¤æŸ¥é¡¹ç›®åˆ—表
     * @param tjNum ä½“检号
     * @param type å¤æŸ¥çŠ¶æ€ 0未复查状态 1复查状态
     * @return
     */
    @GetMapping("/getFcList")
    public AjaxResult getFcList(@RequestParam("tjNum") String tjNum,@RequestParam("type") Integer type){
        TjOrder order = orderService.getOrderByTjNum(tjNum);
        if (order == null)
            return AjaxResult.error();
        List<ProFcListVo> list = detailService.getFcList(order.getOrderId(),type);
        return AjaxResult.success(list);
    }
    /**
     * å¤æŸ¥é¡¹ç›®æäº¤
     * @param json
     * @return
     */
    @PostMapping("/UpdFcPro")
    public AjaxResult updFcPro(@RequestBody String json) {
        return detailService.updFcPro(json);
    }
}
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCustomerController.java
@@ -729,6 +729,75 @@
    }
    @Log(title = "注册his客户信息", businessType = BusinessType.UPDATE)
    @PostMapping(value = "/zhuceTjCustomer")
    @ApiOperation(value = "注册his客户信息")
    @Transactional
    @RepeatSubmit
    public AjaxResult zhuceTjCustomer(@RequestBody @ApiParam(value = "客户对象") TjCustomer tjCustomer) {
        try {
            TjCustomer customer = tjCustomerService.getById(tjCustomer.getCusId());
            if(null==customer){
                return AjaxResult.error("该人员不存在!");
            }
            if(!customer.getPationId().equals("0")){
                return AjaxResult.error("该人员已经注册!");
            }
            String config = sysConfigService.selectConfigByKey("sfkqdyhis");
            if (null != config && config.equals("Y")) {
                AjaxResult result = controller.Outpincreateapply(customer);
                String result1 = getAjaxResult(result);
                JSONObject object = getJSONObject(result1);
                String code = object.getStr("ResultCode");
                if (code.equals("0")) {
                    JSONArray resultDatass = object.getJSONArray("ResultData");
                    Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0);
                    if (null != resultData && !resultData.isEmpty()) {
                        String pationid = resultData.get("PationId").toString();
                        if (null != pationid) {
                            customer.setPationId(pationid);
                            //保存注册入参出参
                            resultData.put("cardId",pationid);
                            JSONObject object4 = JSONUtil.parseObj(resultData);
                            LambdaQueryWrapper<HisApiConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
                            lambdaQueryWrapper.eq(HisApiConfig::getApiMethod, "Outpincreateapply");
                            HisApiConfig hisApiConfig = hisApiConfigService.getOne(lambdaQueryWrapper);
                            hisApiGetMethodService.save(object4, "Outpincreateapply", hisApiConfig, JSONUtil.toJsonStr(BeanUtil.beanToMap(tjCustomer)));
                        }
                    }
                    if (tjCustomerService.updateById(customer)) {
                        return AjaxResult.success("注册成功");
                    }
                }else{
                    return AjaxResult.error("注册失败");
                }
            }
            String s = sysConfigService.selectConfigByKey("is_request_common_his_api");
            if (null != s && s.equals("Y")){
                TjCustomer requestCommonHisApi = isRequestCommonHisApi(customer);
                if (null !=requestCommonHisApi){
                    if (tjCustomerService.updateById(customer)) {
                        return AjaxResult.success("注册成功");
                    }
                }else {
                    return AjaxResult.error("注册失败");
                }
            }
            return AjaxResult.error("请先连接his服务");
        } catch (Exception e) {
            log.error(e.toString());
            throw new RuntimeException(e);
        }
    }
    /**
     * åˆ é™¤å®¢æˆ·ä¿¡æ¯
     */
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjOrderController.java
@@ -1554,7 +1554,6 @@
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                } catch (Exception e) {
//                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    log.error("processOrderWithTransaction æ–¹æ³•异常"+e.getMessage());
                    throw new RuntimeException("调用公共方法失败 å¼ºåˆ¶è§¦å‘回滚");
//                    return AjaxResult.error();
ltkj-admin/src/main/java/com/ltkj/web/controller/system/ZhiYeController.java
New file
@@ -0,0 +1,671 @@
package com.ltkj.web.controller.system;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
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.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysDept;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.utils.SecurityUtils;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.idutil.IdUtils;
import com.ltkj.hosp.mapper.TjSamplingMapper;
import com.ltkj.hosp.service.*;
import com.ltkj.hosp.sqlDomain.LtkjMiddleHead;
import com.ltkj.mall.domain.MallCheckLog;
import com.ltkj.mall.domain.MallOrder;
import com.ltkj.mall.mallOrderUtils.TjConstants;
import com.ltkj.mall.service.IMallCheckLogService;
import com.ltkj.mall.service.IMallOrderService;
import com.ltkj.system.service.ISysConfigService;
import com.ltkj.system.service.ISysDeptService;
import com.ltkj.system.service.ISysDictDataService;
import com.ltkj.system.service.ISysUserService;
import com.ltkj.web.controller.his.HisApiMethod;
import com.ltkj.web.controller.his.HisApiMethodService;
import com.ltkj.web.controller.lis.LisApiMethod;
import com.ltkj.web.wxUtils.HttpClientUtils;
import io.swagger.annotations.ApiOperation;
import jodd.util.StringUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.io.File;
import java.io.FileInputStream;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.ReentrantLock;
/**
 * @Company: è¥¿å®‰è·¯æ³°ç§‘技有限公司
 * @Author: zhaowenxuan
 * @Date: 2025/5/12 14:37
 */
@Slf4j
@RestController
@RequestMapping("/zhiye/order")
public class ZhiYeController {
    @Autowired
    private ISysUserService userService;
    @Autowired
    private ITjCustomerService tjCustomerService;
    @Autowired
    private ITjReservationService tjReservationService;
    @Autowired
    private IMallOrderService mallOrderService;
    @Autowired
    private ITjDwGroupingService dwGroupingService;
    @Autowired
    private ITbTransitionService transitionService;
    @Autowired
    private ITjOrderService tjOrderService;
    @Autowired
    private ISysConfigService configService;
    @Autowired
    private IdUtils idUtils;
    @Autowired
    private ITjReportGetAddressService tjReportGetAddressService;
    @Autowired
    private LtkjMiddleHeadService headService;
    @Autowired
    private IMallCheckLogService mallCheckLogService;
    @Autowired
    private ITjFlowingWaterService tjFlowingWaterService;
    @Autowired
    private HisApiMethodService controller;
    @Autowired
    private HisApiMethod hisApiMethod;
    @Autowired
    private LisApiMethod lisApiMethod;
    @Autowired
    private ITjAskMedicalHistoryService tjAskMedicalHistoryService;
    @Autowired
    private ITjOrderDetailService tjOrderDetailService;
    @Autowired
    private ITjOrderRemarkService remarkService;
    @Autowired
    private ITjXdPictureService xdPictureService;
    @Autowired
    private ITjSamplingService samplingService;
    @Autowired
    private ITjProjectService projectService;
    @Autowired
    private ISysDictDataService sysDictDataService;
    @Autowired
    private LisJyflhbService lisJyflhbService;
    @Autowired
    private TjSamplingMapper tjSamplingMapper;
    @Autowired
    private ITbTransitionService tbTransitionService;
    @Autowired
    private ISysDeptService sysDeptService;
    @Autowired
    private TjFlowingWaterHisService tjFlowingWaterHisService;
    ReentrantLock lock = new ReentrantLock();
    @PostMapping
    @ApiOperation(value = "体检签到登记接口")
    @Transactional(propagation = Propagation.REQUIRED, isolation = Isolation.READ_COMMITTED)
    public AjaxResult addOrderAndDetail(@RequestBody TjOrder tjOrder) throws Exception {
        Long userId = Long.valueOf(SecurityUtils.getLoginUser().getUserId());
        SysUser sysUser = userService.getById(userId);
        LambdaQueryWrapper<TjCustomer> wq = new LambdaQueryWrapper<>();
        wq.eq(TjCustomer::getCusId, tjOrder.getUserId());
        TjCustomer tjCustomer = tjCustomerService.getOne(wq);
        if (tjCustomer == null) return AjaxResult.error("该客户未登记");
        TjFlowingWater tjFlowingWater = new TjFlowingWater();
        LambdaQueryWrapper<TjReservation> wq1 = new LambdaQueryWrapper<>();
        wq1.eq(TjReservation::getIdCard, tjCustomer.getCusIdcard());
        wq1.eq(TjReservation::getIsExpire, 2);
        TjReservation tjReservation = tjReservationService.getOne(wq1);
        MallOrder mallOrder = null;
        if (null != tjReservation) {
            tjOrder.setReservationId(tjReservation.getId());
            mallOrder = mallOrderService.getOne(new LambdaQueryWrapper<MallOrder>().eq(MallOrder::getReservationId, tjReservation.getId()));
            if (DateUtil.endOfDay(DateUtil.offsetDay(tjReservation.getReservationTime(), tjReservation.getYxts())).before(new Date())) {
                tjReservation.setIsExpire(1);
                tjReservationService.updateById(tjReservation);
                return AjaxResult.error("对不起您的预约已超时请重新预约");
            }
            if (null != tjReservation.getTeamNo()) tjOrder.setTeamNo(tjReservation.getTeamNo());
            if (null != tjReservation.getCompanyId()) tjOrder.setFirmId(tjReservation.getCompanyId());
            if (null != tjReservation.getCompany()) tjOrder.setFirmName(tjReservation.getCompany());
            if (null != tjReservation.getDepartment()) tjOrder.setFirmDeptName(tjReservation.getDepartment());
            if (null != tjReservation.getJobNo()) tjOrder.setFirmWorkId(tjReservation.getJobNo());
            if (null != tjReservation.getPacId()) tjOrder.setPacId(tjReservation.getPacId());
            if (null != tjReservation.getTjCategory()) tjOrder.setTjCategory(tjReservation.getTjCategory());
            if (null != tjReservation.getGroupingId()) {
                TjDwGrouping dwGrouping = dwGroupingService.getById(tjReservation.getGroupingId());
                tjOrder.setGroupId(tjReservation.getGroupingId());
                tjOrder.setFirmDeptId(dwGrouping.getDwDeptId());
            }
            tjReservation.setIsExpire(1);
            tjReservationService.updateById(tjReservation);
            if (null != tjReservation.getTeamNo()) {
                tjOrder.setTjType("1");
            } else if (tjOrder.getTjType().equals("2")) {
                tjOrder.setTjType("2");
            }
        }
        if (StringUtil.isBlank(tjOrder.getFirmId())) {
            tjOrder.setFirmId("0");
        }
        if (null != tjOrder.getPhoto()) {
            File file = new File(tjOrder.getPhoto());
            if (file.isFile()) {
                FileInputStream fileInputStream = new FileInputStream(file);
                byte[] bytes = new byte[fileInputStream.available()];
                fileInputStream.read(bytes); // è¯»å–到 byte é‡Œé¢
                fileInputStream.close();
                // å¾—到文件 ä¹‹åŽè½¬æˆbeye ç„¶åŽä½¿ç”¨base64转码
                String encode = Base64.encode(bytes);
                tjOrder.setPhoto(encode);
            }
        }
        if (null == tjOrder.getPacId() && null != transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId()))) {
            tjOrder.setPacId(transitionService.getTbTransitionPacIdByCusIdAndPac(String.valueOf(tjOrder.getUserId())));
        }
        //判断小程序上预约是否付钱
        if (null != mallOrder) tjOrder.setMallOrderId(String.valueOf(mallOrder.getId()));
        tjOrder.setStatus(TjConstants.TJ_BEGIN);
        tjOrder.setCardId(tjCustomer.getCardId());
        if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
            tjOrder.setFinishTime(new Date());
            tjOrder.setCheckStatus(1);
            tjOrder.setStatus(TjConstants.TJ_WAIT);
            //            tjFlowingWater.setPayStasus(1L);
        }
        tjFlowingWater.setPayStasus(0L);
        try {
            boolean b = lock.tryLock(3, TimeUnit.MINUTES);
            if (b) {
                AjaxResult result = processOrderWithTransaction(tjOrder, tjCustomer, tjReservation, tjFlowingWater, mallOrder, sysUser);
                if (!result.get("code").toString().equals("200"))
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                tjOrderService.tjQiandaodengji(tjOrder.getTjNumber());
                return result;
            }
        }catch (Exception e){
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            log.error(String.valueOf(e));
        }
        finally {
            lock.unlock();
        }
        return AjaxResult.error();
    }
    @Transactional(propagation = Propagation.REQUIRED) // å…±äº«äº‹åŠ¡
    public AjaxResult processOrderWithTransaction(TjOrder tjOrder, TjCustomer tjCustomer, TjReservation tjReservation, TjFlowingWater tjFlowingWater, MallOrder mallOrder, SysUser sysUser) {
        //获取拼接前缀
        String sfkqtjhqz = configService.selectConfigByKey("sfkqtjhqz");
        String makeLisTmhPrefix = "";
        if(sfkqtjhqz.equalsIgnoreCase("Y")){
            makeLisTmhPrefix = configService.selectConfigByKey("make_lis_tmh_prefix");
        }
        //生成体检号
        String tjNumber = null;
        int a =0;
        while (tjNumber ==null){
            if(a>3){
                throw new RuntimeException("前方拥挤,请稍等!!!");
            }
            try {
                String newTjNumberRedisLockAndMysql = idUtils.getNewTjNumberRedisLockAndMysql();
                if (StringUtil.isNotBlank(makeLisTmhPrefix)){
                    String tjh=  makeLisTmhPrefix + newTjNumberRedisLockAndMysql;
                    int countByTjNum = tjOrderService.getOrderCountByTjNum(tjh);
                    if(countByTjNum==0){
                        tjNumber=tjh;
                    }
                }else {
                    int countByTjNum = tjOrderService.getOrderCountByTjNum(newTjNumberRedisLockAndMysql);
                    if(countByTjNum==0){
                        tjNumber=newTjNumberRedisLockAndMysql;
                    }
                }
            } catch (Exception e) {
                log.error(e.getMessage());
            }finally {
                a++;
            }
        }
        if(StringUtil.isBlank(tjNumber)) return AjaxResult.error("登记失败 é‡æ–°æ“ä½œ");
        tjOrder.setTjNumber(tjNumber);
        BigDecimal discount = BigDecimal.valueOf(Double.parseDouble(tjOrder.getTjFlowingWater().getDiscount()));
        tjOrder.setDiscount(discount.toString());
        if (tjOrderService.save(tjOrder)) {
            //保存收货地址
            if ("2".equals(tjOrder.getGetType())) {
                final TjReportGetAddress address = tjOrder.getAddAddress();
                if (address != null) {
                    address.setTjNumber(tjNumber);
                    tjReportGetAddressService.save(address);
                }
            }
            Long cusNumber = tjCustomer.getCusNumber();
            cusNumber += 1;
            tjCustomer.setCusNumber(cusNumber);
            if ("1".equals(tjOrder.getTjType())) {
                if (null != tjReservation && tjReservation.getPayType() == 1) {
                    tjFlowingWater.setPayStasus(3L);
                }
            }
            //调用SQL server拿取收费情况
            //根据配置调取存储过程 å°†ä¸´æ—¶è¡¨æ•°æ®å­˜å…¥é¢„约表2023.12.12
            final String getInfoFromSqlData = configService.selectConfigByKey("getInfoFromSqlData");
            final String isPay = configService.selectConfigByKey("isPay");
            if ("Y".equals(getInfoFromSqlData)) {
                LtkjMiddleHead middleHead = headService.getMiddleHeadByPartId(tjCustomer.getCardId());
                if (null != middleHead) {
                    tjFlowingWater.setPayStasus(1L);
                }
            }
            tjFlowingWater.setOrderId(tjOrder.getOrderId());
            Date date1 = new Date(System.currentTimeMillis());
            String s1 = SecurityUtils.getUsername() + new SimpleDateFormat("yyMMddHHmmssSSS").format(date1);
            tjFlowingWater.setWaterId(PinyinUtil.getFirstLetter(tjCustomer.getCusName(), "").toUpperCase() + s1);
            BigDecimal copeWith = tjOrder.getTjFlowingWater().getCopeWith();
            BigDecimal paidIn = tjOrder.getTjFlowingWater().getPaidIn();
            tjFlowingWater.setCopeWith(copeWith);
            tjFlowingWater.setPaidIn(paidIn);
            tjFlowingWater.setDiscount(discount.toString());
            BigDecimal subtract = paidIn.subtract(copeWith.multiply(discount.divide(BigDecimal.valueOf(10))));
            log.info("签到登记体检人: " + tjOrder.getTjNumber() + " åº”付: " + copeWith);
            log.info("签到登记体检人: " + tjOrder.getTjNumber() + " æŠ˜æ‰£: " + discount);
            log.info("签到登记体检人: " + tjOrder.getTjNumber() + " å®žä»˜: " + paidIn);
            log.info("签到登记体检人: " + tjOrder.getTjNumber() + " ç›¸å·®: " + subtract);
            if (isPay.equals("true")) {
                if (null != mallOrder) {
                    if (mallOrder.getOrderStatus().equals(201L)) {
                        tjFlowingWater.setCopeWith(mallOrder.getActualPrice());
                        tjFlowingWater.setPaidIn(mallOrder.getActualPrice());
                        tjFlowingWater.setDiscount(String.valueOf(1));
                        tjFlowingWater.setPayStasus(1L);
                        tjFlowingWater.setPayType(3L);
                        MallCheckLog checkLog = new MallCheckLog();
                        checkLog.setCheckBy(sysUser.getNickName());
                        checkLog.setUserId(mallOrder.getUserId());
                        checkLog.setConsignee(mallOrder.getConsignee());
                        checkLog.setIdCard(mallOrder.getIdCard());
                        checkLog.setOrderId(String.valueOf(mallOrder.getId()));
                        checkLog.setOrderSn(mallOrder.getOrderSn());
                        checkLog.setCheckTime(new Date());
                        checkLog.setShipSn("HX" + s1);
                        mallCheckLogService.save(checkLog);
                        mallOrder.setOrderStatus(301L);
                        mallOrderService.updateById(mallOrder);
                    }
                } else {
                    tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
                    tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
                    tjFlowingWater.setDiscount(tjOrder.getTjFlowingWater().getDiscount());
                    //                    tjFlowingWater.setPayStasus(0L);
                }
            }
            //修改临时表体检号
            transitionService.updateTbTransitionTjNumByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber());
            if (tjFlowingWaterService.save(tjFlowingWater)) {
                tjOrder.setTjSerialNumber(String.valueOf(tjFlowingWater.getTjSerialNumber()));
                tjOrderService.updateById(tjOrder);
            }
            /*调用his接口*/
            String config = configService.selectConfigByKey("sfkqdyhis");
            if (null != config && config.equals("Y")) {
                if(tjCustomer.getPationId().equals("0")){
                    AjaxResult result = controller.Outpincreateapply(tjCustomer);
                    String result1 = getAjaxResult(result);
                    JSONObject object = getJSONObject(result1);
                    String code = object.getStr("ResultCode");
                    if (code.equals("0")) {
                        JSONArray resultDatass = object.getJSONArray("ResultData");
                        Map<String, Object> resultData = (Map<String, Object>) resultDatass.get(0);
                        if (null != resultData && !resultData.isEmpty()) {
                            String pationid = resultData.get("PationId").toString();
                            if (null != pationid) {
                                tjCustomer.setPationId(pationid);
                                tjCustomerService.updateById(tjCustomer);
                            }
                        }
                    }
                }
                AjaxResult result = hisApiMethod.HisApiMethods(tjCustomer, tjOrder);
                if (!result.get("code").toString().equals("200")) {
                    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                    Object jzh = result.get("jzh");
                    if (null != jzh && null != jzh.toString()) {
                        hisApiMethod.ZfHisApiMethod(jzh.toString());
                    }
                    log.info("该登记人挂号失败, å°±è¯Šå·ä¸º: " + tjOrder.getCardId());
                    throw new IllegalStateException("挂号失败!" + result.get("msg").toString());
                }
                log.info("该登记人的his就诊号是: " + tjOrder.getCardId());
                // æŸ¥è¯¢ å¯¹æŽ¥Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
                try {
                    if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                        log.info("调用his开启 è¿›å…¥ä¸æ”¶è´¹æ–¹æ³• è¯¥ä½“检人员不收费:"+tjOrder.getTjNumber());
                        // è¿™æ˜¯ä¸Šé¢ä¸ªäººæ–¹æ³•引入数据
                        tjFlowingWater.setPayStasus(1L);
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        AjaxResult ajaxResult = hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder, sysUser, result);
                        if (!ajaxResult.get("code").toString().equals("200")) return ajaxResult;
                        tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                                sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                        remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                        List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                        xdPictureService.saveBatch(xdPictureList);
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                        log.info("调用his开启 è¿›å…¥ä¸æ”¶è´¹æ–¹æ³• è¯¥æ–¹æ³•执行完毕");
                    } else {
                        log.info("调用his开启 è¿›å…¥æ”¶è´¹æ–¹æ³• è¯¥ä½“检人员收费:"+tjOrder.getTjNumber());
                        newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                        List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                        addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                        String isUseMx = configService.selectConfigByKey("jcxhis_is_use_mx");
                        if (isUseMx.equalsIgnoreCase("Y"))
                            hisApiMethod.tijianshenqing(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
                        else hisApiMethod.tijianshenqingJinchuanNew(tjCustomer, DateUtil.format(date1, "yyyy-MM-dd HH:mm:ss"), tjOrder.getCardId());
                    }
                } catch (Exception e) {
                    log.error(e.getMessage());
                    throw new IllegalStateException();
                }
                return AjaxResult.success(tjNumber);
            } else {
                tjCustomer.setCardId(tjOrder.getTjNumber());
                tjCustomerService.updateById(tjCustomer);
                transitionService.updateCardIdByTjNumAndIdCard(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), tjOrder.getTjNumber());
                tjOrder.setCardId(tjOrder.getTjNumber());
                tjOrderService.updateById(tjOrder);
            }
            // æŸ¥è¯¢ å¯¹æŽ¥Lis、Pacs申请如果类型包含在配置内则使用对接lis、pacs
            log.info("签到登记接口该人员: "+tjOrder.getTjNumber()+" çš„体检类型是:"+tjOrder.getTjType());
            if (lisApiMethod.isUseLisAndPacsRegister(tjOrder)) {
                try {
                    log.info(tjOrder.getTjNumber()+"签到登记进入未收费方法");
                    // è¿™æ˜¯ä¸Šé¢ä¸ªäººæ–¹æ³•引入数据
                    tjFlowingWater.setPayStasus(1L);
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                            sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                    List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                    xdPictureService.saveBatch(xdPictureList);
                    List<TjOrderDetail> detailList = tjOrderDetailService.getCaiYangDengJi(tjOrder.getOrderId());
                    log.info(tjOrder.getTjNumber()+"签到登记:采样数据查询个数"+detailList.size());
                    addCaiYangDengJi(detailList, !detailList.isEmpty(), tjOrder, sysUser, null);
                    return AjaxResult.success(tjNumber);
                } catch (Exception e) {
                    log.error(e.getMessage());
                    throw new IllegalStateException(e);
                }
            } else {
                try {
                    log.info(tjOrder.getTjNumber()+"else签到登记进入收费方法");
                    newSaveextracted(tjOrder, tjCustomer, discount, sysUser, tjReservation, tjFlowingWater);
                    isRequestCommonHisApi(tjOrder, tjCustomer, tjFlowingWater);
                } catch (Exception e) {
                    log.error("processOrderWithTransaction æ–¹æ³•异常"+e.getMessage());
                    throw new RuntimeException("调用公共方法失败 å¼ºåˆ¶è§¦å‘回滚");
                }
            }
            return AjaxResult.success(tjNumber);
        }
        throw new RuntimeException("体检记录保存失败 å¼ºåˆ¶è§¦å‘回滚");
    }
    @Transactional(propagation = Propagation.REQUIRED) // å…±äº«äº‹åŠ¡
    public void newSaveextracted(TjOrder tjOrder, TjCustomer tjCustomer, BigDecimal discount, SysUser sysUser, TjReservation tjReservation, TjFlowingWater tjFlowingWater) {
        try {
            tjAskMedicalHistoryService.updateTjAskMedicalHistoryByCusId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjCustomer.getCusId()));
            if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
                tjOrderDetailService.saveJSYTjOrderDetailsByCusId(tjCustomer.getCusIdcard(),
                        String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId(), String.valueOf(tjFlowingWater.getTjSerialNumber()));
            } else {
                tjOrderDetailService.saveTjOrderDetailsByCusId(tjCustomer.getCusIdcard(), String.valueOf(tjOrder.getOrderId()), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
            }
            tjOrderDetailService.saveTjPureToneTesByCusId(tjCustomer.getCusIdcard(), tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), tjOrder.getCardId());
            //添加remark表数据
            if (null != tjOrder.getTjCategory() && tjOrder.getTjCategory().equals("13")) {
                remarkService.saveJSYTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
            } else {
                remarkService.saveTjOrderRemarkByOrderId(tjOrder.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjOrder.getOrderId()));
            }
            //判断是否交钱
            if ("1".equals(tjOrder.getTjType())) {
                if (null != tjReservation && tjReservation.getPayType() == 1) {
                    tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                            sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                    remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                    List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                    xdPictureService.saveBatch(xdPictureList);
                }
            }
            if (tjFlowingWater.getPayStasus() == 1L) {
                tjOrderDetailService.updateTjOrderDetailsByOrderId(String.valueOf(tjOrder.getOrderId()),
                        sysUser.getNickName(), String.valueOf(sysUser.getUserId()), String.valueOf(tjFlowingWater.getTjSerialNumber()));
                tjFlowingWater.setPaidIn(tjOrder.getTjFlowingWater().getPaidIn());
                tjFlowingWater.setCopeWith(tjOrder.getTjFlowingWater().getCopeWith());
                tjFlowingWater.setPayType(4L);
                tjFlowingWaterService.updateById(tjFlowingWater);
                remarkService.updateTjOrderRemarkSfbzByJxbzisnull(tjOrder.getOrderId().toString(), tjFlowingWater.getTjSerialNumber().toString());
                //            asyncService.addTjChargingStandard(tjOrder, transitionService.getTbTransitionListByCusId(tjCustomer.getCusIdcard(), tjOrder.getCardId()), sysUser);
                List<TjXdPicture> xdPictureList = xdPictureService.saveTjXdPicture(tjOrder.getTjNumber());
                xdPictureService.saveBatch(xdPictureList);
            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    @Transactional(propagation = Propagation.REQUIRED) // å…±äº«äº‹åŠ¡
    public void addCaiYangDengJi(List<TjOrderDetail> detailList, boolean detailList1, TjOrder order, SysUser sysUser, String jxbz) {
        try {
            String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix");
            String config = configService.selectConfigByKey("sfkqdyhis");
            Boolean lisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order);
            if (null != detailList && detailList1) {
                Date date = new Date();
                String format = DateUtil.format(date, "yyMMddHHmmssSSS");
                for (TjOrderDetail detail : detailList) {
                    int i = samplingService.isExistProId(order.getTjNumber(), String.valueOf(detail.getProId()));
                    if(i>0) continue;
                    TjSampling sampling = new TjSampling();
                    if (null == projectService.getById(detail.getProId())) continue;
                    TjProject project = projectService.getById(detail.getProId());
                    Long proParentId = project.getProParentId();
                    String dictLabel = sysDictDataService.selectDictLabel("sys_dict_specimen", project.getSpecimenType());
                    if (null != proParentId && proParentId == 0) {
                        sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
                        sampling.setSpecimenTypeCode(project.getSpecimenType());
                        sampling.setSpecimenType(dictLabel);
                        if (config.equals("Y") && lisAndPacsRegister)
                            sampling.setJyxmdm(project.getLisXmbm());
                        else sampling.setJyxmdm(project.getProId().toString());
                    } else {
                        TjProject project1 = projectService.getById(proParentId);
                        sampling.setJyxh(idUtils.generateLisID(lis_tmh_prefix));
                        sampling.setSpecimenTypeCode(project1.getSpecimenType());
                        sampling.setSpecimenType(dictLabel);
                        if (config.equals("Y") && lisAndPacsRegister)
                            sampling.setJyxmdm(project1.getLisXmbm());
                        else sampling.setJyxmdm(project1.getProId().toString());
                    }
                    sampling.setSamplingNumber(format);
                    sampling.setTjNum(order.getTjNumber());
                    sampling.setCusId(String.valueOf(order.getUserId()));
                    if (tjCustomerService.getById(String.valueOf(order.getUserId())) != null) {
                        sampling.setCusName(tjCustomerService.getById(String.valueOf(order.getUserId())).getCusName());
                    }
                    sampling.setApplicationTime(date);
                    sampling.setTjTime(order.getCreateTime());
                    sampling.setProId(String.valueOf(detail.getProId()));
                    sampling.setProName(projectService.getById(detail.getProId()).getProName());
                    sampling.setCreateBy(sysUser.getNickName());
                    sampling.setCreateTime(date);
                    sampling.setUpdateBy(sysUser.getNickName());
                    sampling.setUpdateTime(date);
                    sampling.setCreateId(String.valueOf(sysUser.getUserId()));
                    sampling.setUpdateId(String.valueOf(sysUser.getUserId()));
                    sampling.setJxbz(jxbz);
                    samplingService.save(sampling);
                }
            }
            if (lisApiMethod.isUseLisAndPacsRegister(order) && (null != config && config.equals("Y"))) {
                AjaxResult ajaxResult = lisApiMethod.getJyFlHb();
                if (ajaxResult.get("code").toString().equals("200")) {
                    String str = ajaxResult.get("data").toString();
                    str = str.replace("=", ":");
                    JSONArray array = JSONUtil.parseArray(str);
                    for (Object o : array) {
                        JSONObject object = (JSONObject) o;
                        LisJyflhb lisJyflhb = new LisJyflhb();
                        lisJyflhb.setHbhxm(object.getStr("hbhxm"));
                        lisJyflhb.setFlmc(object.getStr("flmc"));
                        lisJyflhb.setMc(object.getStr("mc"));
                        lisJyflhb.setFlbm(object.getStr("flbm"));
                        LambdaQueryWrapper<LisJyflhb> wrapper = new LambdaQueryWrapper<>();
                        wrapper.eq(LisJyflhb::getFlbm, lisJyflhb.getFlbm());
                        LisJyflhb jyflhb = lisJyflhbService.getOne(wrapper);
                        if (jyflhb == null) {
                            lisJyflhb.setId(IdUtil.getSnowflake().nextId());
                            lisJyflhbService.save(lisJyflhb);
                        } else {
                            lisJyflhb.setId(jyflhb.getId());
                            lisJyflhbService.updateById(lisJyflhb);
                        }
                    }
                }
            }
            if (StrUtil.isNotBlank(jxbz)) {
                tjSamplingMapper.updateUserIdByTjNumAndJxbz(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()), jxbz);
            } else {
                tjSamplingMapper.updateUserIdByTjNum(order.getTjNumber(), sysUser.getNickName(), String.valueOf(sysUser.getUserId()));
            }
        } catch (Exception e) {
            log.error(e.getMessage());
        }
    }
    @Transactional(propagation = Propagation.REQUIRED) // å…±äº«äº‹åŠ¡
    public void isRequestCommonHisApi(TjOrder tjOrder, TjCustomer tjCustomer, TjFlowingWater tjFlowingWater) {
        String s = configService.selectConfigByKey("is_request_common_his_api");
        if (null != s && s.equals("Y")) {
            String apiUrl = configService.selectConfigByKey("common_api_url");
            String hospbm = configService.selectConfigByKey("common_api_service_hospbm");
            HashMap<String, Object> map = new HashMap<>();
            map.put("pationId", tjCustomer.getPationId());
            map.put("cardId", tjCustomer.getHisJzkh());
            map.put("tjNum", tjFlowingWater.getTjSerialNumber());
            map.put("kaiDanKs", "7805");
            // æ”¶è´¹æ ‡å¿— 1待售费 2待退费
            map.put("shouTuiStatus", "1");
            JSONArray array = JSONUtil.createArray();
            LambdaQueryWrapper<TbTransition> wrapper = new LambdaQueryWrapper<>();
            wrapper.eq(TbTransition::getTjNum, tjOrder.getTjNumber());
            wrapper.eq(TbTransition::getCusId, tjCustomer.getCusIdcard());
            wrapper.eq(TbTransition::getCardId, tjCustomer.getCardId());
            wrapper.isNotNull(TbTransition::getNowPrice);
            wrapper.gt(TbTransition::getNowPrice, 0);
            List<TbTransition> list = tbTransitionService.list(wrapper);
            BigDecimal zongjia = new BigDecimal("0.0");
            for (TbTransition transition : list) {
                LambdaQueryWrapper<TjProject> wrapper1 = new LambdaQueryWrapper<>();
                wrapper1.eq(TjProject::getProId, transition.getProId());
                TjProject project = projectService.getOne(wrapper1);
                LambdaQueryWrapper<SysDept> wrapper2 = new LambdaQueryWrapper<>();
                wrapper2.eq(SysDept::getDeptId, project.getDeptId());
                SysDept dept = sysDeptService.getOne(wrapper2);
                JSONObject obj = JSONUtil.createObj();
                int sl = 1;
                BigDecimal danjia = transition.getNowPrice();
                BigDecimal allPrice = danjia.multiply(new BigDecimal(sl));
                obj.putOpt("danJia", danjia);
                obj.putOpt("jieSuanJe", allPrice);
                obj.putOpt("shuliang", sl);
                obj.putOpt("zhiXingKs", dept.getDeptId());
                obj.putOpt("zhiXingKsMc", dept.getDeptName());
                obj.putOpt("shouFeiXmId", project.getHisXmbm());
                obj.putOpt("shouFeiXmMc", project.getHisXmmc());
                array.add(obj);
                zongjia = zongjia.add(allPrice);
            }
            map.put("feiYongInfoList", array);
            log.info("调用His接口前 æ”¶è´¹æ€»ä»·:{}", zongjia.toString());
            String post = HttpClientUtils.sendPost(apiUrl + "/api/his/" + hospbm + "/creatCostInfo", map);
            JSONObject object = JSONUtil.parseObj(post);
            if (object.getInt("code") == 200) {
                JSONObject data = object.getJSONObject("data");
                tjFlowingWater.setHisWaterId(data.getStr("feiYongId"));
                JSONArray mxList = data.getJSONArray("mxList");
                if (mxList != null && !mxList.isEmpty()) {
                    List<TjFlowingWaterHis> his = mxList.toList(TjFlowingWaterHis.class);
                    tjFlowingWaterHisService.saveBatch(his);
                }
                tjFlowingWaterService.updateById(tjFlowingWater);
            } else {
                log.error("isRequestCommonHisApi æ–¹æ³•异常");
                throw new RuntimeException("is_request_common_his_api å¼ºåˆ¶è§¦å‘回滚");
            }
        }
    }
    public String getAjaxResult(AjaxResult result) {
        return result.get("data").toString();
    }
    public JSONObject getJSONObject(String builder) {
        String Response = JSONUtil.parseObj(builder).getStr("Response");
        return JSONUtil.parseObj(Response);
    }
}
ltkj-admin/src/main/resources/1.js
New file
@@ -0,0 +1,228 @@
function init(){
    let headers = { 'hospId': 'pbkwyy'};
    let params = {params: {pid: '',type:'1'},headers: headers}
    let url = 'http://192.168.1.2:5011/reservation/reservation/linkage'
    $http.metaGet(url,params).then(res=>{
        let options =  res.data;
        this.updateSelectOptions('result', 'firm_id', options)
    })
    this.onSearchFormChange('result', 'firm_id', (value)=>{
        let params = {params: {pid: value,type:'2'},headers: headers}
        $http.metaGet('http://192.168.1.2:5011/reservation/reservation/linkage', params ).then(res=>{
            let options =  res.data;
            this.updateSelectOptions('result', 'dw_dept_id', options)
        })
    })
    this.onSearchFormChange('result', 'dw_dept_id', (value)=>{
        let params = {params: {pid: value,type:'3'},headers: headers}
        $http.metaGet('http://192.168.1.2:5011/reservation/reservation/linkage', params ).then(res=>{
            let options =  res.data;
            this.updateSelectOptions('result', 'group_id', options)
        })
    })
}
-- å›¢ä½“预约统计报表
INSERT INTO `jimu_report` (`id`, `code`, `name`, `note`, `status`, `type`, `json_str`, `api_url`, `thumb`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `api_method`, `api_code`, `template`, `view_count`, `css_str`, `js_str`, `tenant_id`, `print_type`, `is_start`, `create_id`, `update_id`) VALUES ('1073102401980628992', '20250418152907', '团体预约统计', NULL, NULL, 'datainfo', '{\"loopBlockList\":[],\"area\":{\"sri\":16,\"sci\":3,\"eri\":16,\"eci\":3,\"width\":100,\"height\":25},\"excel_config_id\":\"1073102401980628992\",\"printConfig\":{\"paper\":\"A4\",\"width\":210,\"height\":297,\"definition\":1,\"isBackend\":false,\"marginX\":10,\"marginY\":10,\"layout\":\"portrait\",\"printCallBackUrl\":\"\"},\"zonedEditionList\":[],\"rows\":{\"0\":{\"cells\":{\"0\":{\"merge\":[2,6],\"height\":75,\"text\":\"团体预约统计\",\"style\":2}}},\"1\":{\"cells\":{}},\"2\":{\"cells\":{}},\"3\":{\"cells\":{\"0\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\"单位名称\"},\"2\":{\"merge\":[0,4],\"height\":25,\"style\":5,\"text\":\"#{infoRes.dw_name}\"}}},\"4\":{\"cells\":{\"0\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\"套餐名称\"},\"2\":{\"merge\":[0,4],\"height\":25,\"style\":5,\"text\":\"#{infoRes.dw_dept_name}\"}}},\"5\":{\"cells\":{\"0\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\"总预约人数\"},\"1\":{\"style\":3,\"text\":\" \"},\"2\":{\"merge\":[0,4],\"height\":25,\"style\":5,\"text\":\" ${numRes.zrs}\"}}},\"6\":{\"cells\":{\"0\":{\"merge\":[1,6],\"height\":50,\"text\":\"未签到人数:${numRes.wqd}人,报告未生成:${numRes.wdy}人,报告已生成:${numRes.ydy}人。\"}}},\"7\":{\"cells\":{\"9\":{\"text\":\"\"}}},\"8\":{\"cells\":{\"1\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\"预约未登记\"},\"2\":{\"style\":3,\"text\":\" \"},\"3\":{\"style\":6,\"text\":\"手机号\"},\"4\":{\"style\":6,\"text\":\"性别\"},\"5\":{\"style\":6,\"text\":\"年龄\"}}},\"9\":{\"cells\":{\"1\":{\"style\":7,\"text\":\"=row(1)\"},\"2\":{\"style\":5,\"text\":\"#{yywdj.name}\"},\"3\":{\"style\":5,\"text\":\"#{yywdj.phoe}\"},\"4\":{\"text\":\"#{yywdj.sex}\",\"style\":7},\"5\":{\"text\":\"#{yywdj.age}\",\"style\":7},\"11\":{\"text\":\"\"}}},\"10\":{\"cells\":{}},\"11\":{\"cells\":{\"1\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\"报告未生成\"},\"2\":{\"style\":3,\"text\":\" \"},\"3\":{\"style\":6,\"text\":\"手机号\"},\"4\":{\"style\":6,\"text\":\"性别\"},\"5\":{\"style\":6,\"text\":\"年龄\"}}},\"12\":{\"cells\":{\"1\":{\"style\":7,\"text\":\"=row(2)\"},\"2\":{\"style\":5,\"text\":\"#{bgwdy.name}\"},\"3\":{\"style\":5,\"text\":\"#{bgwdy.phoe}\"},\"4\":{\"text\":\"#{bgwdy.sex}\",\"style\":7},\"5\":{\"text\":\"#{bgwdy.age}\",\"style\":7}}},\"13\":{\"cells\":{}},\"14\":{\"cells\":{\"1\":{\"merge\":[0,1],\"height\":25,\"style\":6,\"text\":\" æŠ¥å‘Šå·²ç”Ÿæˆ\"},\"2\":{\"style\":3,\"text\":\" \"},\"3\":{\"style\":6,\"text\":\"手机号\"},\"4\":{\"style\":6,\"text\":\"性别\"},\"5\":{\"style\":6,\"text\":\"年龄\"}}},\"15\":{\"cells\":{\"1\":{\"style\":7,\"text\":\"=row(3)\"},\"2\":{\"style\":5,\"text\":\"#{bgydy.name}\"},\"3\":{\"style\":5,\"text\":\"#{bgydy.phoe}\"},\"4\":{\"text\":\"#{bgydy.sex}\",\"style\":7},\"5\":{\"text\":\"#{bgydy.age}\",\"style\":7}}},\"16\":{\"cells\":{}},\"17\":{\"cells\":{}},\"18\":{\"cells\":{}},\"19\":{\"cells\":{}},\"20\":{\"cells\":{}},\"21\":{\"cells\":{}},\"22\":{\"cells\":{}},\"23\":{\"cells\":{}},\"24\":{\"cells\":{}},\"26\":{\"cells\":{}},\"27\":{\"cells\":{}},\"len\":84},\"dbexps\":[],\"dicts\":[],\"rpbar\":{\"show\":true,\"pageSize\":\"\",\"btnList\":[]},\"fixedPrintHeadRows\":[],\"fixedPrintTailRows\":[],\"freeze\":\"A1\",\"dataRectWidth\":600,\"displayConfig\":{},\"background\":false,\"name\":\"sheet1\",\"autofilter\":{},\"styles\":[{\"font\":{\"bold\":true}},{\"font\":{\"bold\":true,\"size\":16}},{\"font\":{\"bold\":true,\"size\":16},\"align\":\"center\"},{\"bgcolor\":\"#deeaf6\"},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"}],\"validations\":[],\"cols\":{\"len\":50},\"merges\":[\"A1:G3\",\"A4:B4\",\"C4:G4\",\"A5:B5\",\"C5:G5\",\"A6:B6\",\"C6:G6\",\"A7:G8\",\"B9:C9\",\"B12:C12\",\"B15:C15\"]}', NULL, NULL, '10001', '2025-04-18 15:29:08', '10001', '2025-04-18 17:06:58', 0, NULL, NULL, 0, 15, NULL, 'function init(){\n    let headers = { \'hospId\': \'pbkwyy\'};\n    let params = {params: {pid: \'\',type:\'1\'},headers: headers}\n    let url = \'http://192.168.1.2:5011/reservation/reservation/linkage\'\n    // let url = \'http://10.100.100.117:5101/ltkj-admin/reservation/reservation/linkage\'\n    $http.metaGet(url,params).then(res=>{\n        let options =  res.data;\n        this.updateSelectOptions(\'numRes\', \'firm_id\', options)\n    })\n\n    this.onSearchFormChange(\'numRes\', \'firm_id\', (value)=>{\n        let params = {params: {pid: value,type:\'2\'},headers: headers}\n        $http.metaGet(\'http://192.168.1.2:5011/reservation/reservation/linkage\', params ).then(res=>{\n            let options =  res.data;\n            this.updateSelectOptions(\'numRes\', \'dw_dept_id\', options)\n        })\n    })\n}\n', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1073127049426403328', '1073102401980628992', '10001', '10001', '2025-04-18 16:44:30', '2025-04-18 16:44:30', 'bgydy', '报告已打印', '0', NULL, 'SELECT r.name,r.phoe,CASE WHEN r.sex = 0 THEN \'男\' WHEN r.sex = 1 THEN \'女\' ELSE \'未知\' END AS sex,r.age FROM tj_reservation r WHERE r.id IN (\n  SELECT r.id FROM tj_reservation r \nJOIN tj_customer c ON c.cus_idcard = r.id_card\nJOIN tj_order o ON o.user_id = c.cus_id\nWHERE r.company_id = \'${firm_id}\'\n    AND o.firm_id = \'${firm_id}\'\n    AND o.firm_dept_id = \'${dw_dept_id}\'\n    AND o.report_time IS NOT NULL\n) AND r.company_id = \'${firm_id}\'', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1073126558944493568', '1073102401980628992', '10001', '10001', '2025-04-18 16:44:23', '2025-04-18 16:44:23', 'yywdj', '预约未登记', '0', NULL, 'SELECT r.name,r.phoe,CASE WHEN r.sex = 0 THEN \'男\' WHEN r.sex = 1 THEN \'女\' ELSE \'未知\' END AS sex,r.age FROM tj_reservation r WHERE r.id NOT IN (\n  SELECT r.id FROM tj_reservation r \nJOIN tj_customer c ON c.cus_idcard = r.id_card\nJOIN tj_order o ON o.user_id = c.cus_id\nWHERE r.company_id = \'${firm_id}\' \n    AND o.firm_id = \'${firm_id}\' \n    AND o.firm_dept_id = \'${dw_dept_id}\'\n) AND r.company_id = \'${firm_id}\'', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1073126806588784640', '1073102401980628992', '10001', '10001', '2025-04-18 16:44:15', '2025-04-18 16:44:15', 'bgwdy', '报告未打印', '0', NULL, 'SELECT r.name,r.phoe,CASE WHEN r.sex = 0 THEN \'男\' WHEN r.sex = 1 THEN \'女\' ELSE \'未知\' END AS sex,r.age FROM tj_reservation r WHERE r.id IN (\n  SELECT r.id FROM tj_reservation r \nJOIN tj_customer c ON c.cus_idcard = r.id_card\nJOIN tj_order o ON o.user_id = c.cus_id\nWHERE r.company_id = \'${firm_id}\' \n    AND o.firm_id = \'${firm_id}\' \n    AND o.firm_dept_id = \'${dw_dept_id}\'\n    AND o.report_time IS NULL\n) AND r.company_id = \'${firm_id}\' ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1073123064535613440', '1073102401980628992', '10001', '10001', '2025-04-18 16:26:15', '2025-04-18 16:26:15', 'infoRes', '单位信息', '0', NULL, 'SELECT dw_name,dw_dept_name FROM tj_dw_dept WHERE id = \'${dw_dept_id}\' ', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1073109754712981504', '1073102401980628992', '10001', '10001', '2025-04-18 16:24:15', '2025-04-18 16:24:15', 'numRes', '人数信息', '0', NULL, 'SELECT\n  total.num AS zrs,\n  IFNULL( a.yqd, 0 ) AS yqd,\n  c.num - IFNULL( a.yqd, 0 ) AS wqd,\n  IFNULL( b.ydy, 0 ) AS ydy,\n  IFNULL( a.yqd, 0 ) - IFNULL( b.ydy, 0 ) AS wdy \nFROM\n  ( SELECT COUNT(*) AS num FROM tj_reservation WHERE company_id = 18 ) total\n  LEFT JOIN (\n  SELECT\n    COUNT(*) AS yqd \n  FROM\n    tj_reservation t\n    JOIN tj_customer c ON t.id_card = c.cus_idcard\n    JOIN tj_order o ON c.cus_id = o.user_id \n  WHERE\n    t.company_id = \'${firm_id}\' \n    AND o.firm_id = \'${firm_id}\'  \n    AND o.firm_dept_id = \'${dw_dept_id}\'\n  ) a ON 1 = 1\n  LEFT JOIN (\n  SELECT\n    COUNT(*) AS ydy \n  FROM\n    tj_order o \n  WHERE\n    o.firm_id = \'${firm_id}\'  \n    AND o.report_time IS NOT NULL \n    AND o.firm_id = \'${firm_id}\'  \n    AND o.firm_dept_id = \'${dw_dept_id}\'\n  ) b ON 1 =1\n  LEFT JOIN (\n    SELECT count(1) AS num FROM tj_reservation WHERE company_id = \'${firm_id}\'\n  ) c ON 1 = 1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '', 'mysql', '', '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073127049556426752', '10001', '2025-04-18 16:44:30', NULL, NULL, '1073127049426403328', 'name', 'name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073127049652895744', '10001', '2025-04-18 16:44:30', NULL, NULL, '1073127049426403328', 'phoe', 'phoe', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073128955842428928', '10001', '2025-04-18 16:44:30', NULL, NULL, '1073127049426403328', 'sex', 'sex', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073130544279879680', '10001', '2025-04-18 16:44:30', NULL, NULL, '1073127049426403328', 'age', 'age', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073126559070322688', '10001', '2025-04-18 16:44:23', NULL, NULL, '1073126558944493568', 'name', 'name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073126559158403072', '10001', '2025-04-18 16:44:23', NULL, NULL, '1073126558944493568', 'phoe', 'phoe', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073129020082388992', '10001', '2025-04-18 16:44:23', NULL, NULL, '1073126558944493568', 'sex', 'sex', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073130516677165056', '10001', '2025-04-18 16:44:23', NULL, NULL, '1073126558944493568', 'age', 'age', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073126806706225152', '10001', '2025-04-18 16:44:15', NULL, NULL, '1073126806588784640', 'name', 'name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073126806790111232', '10001', '2025-04-18 16:44:15', NULL, NULL, '1073126806588784640', 'phoe', 'phoe', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073128986326630400', '10001', '2025-04-18 16:44:15', NULL, NULL, '1073126806588784640', 'sex', 'sex', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073130482220957696', '10001', '2025-04-18 16:44:15', NULL, NULL, '1073126806588784640', 'age', 'age', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073123064669831168', '10001', '2025-04-18 16:26:15', NULL, NULL, '1073123064535613440', 'dw_name', 'dw_name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073123064774688768', '10001', '2025-04-18 16:26:15', NULL, NULL, '1073123064535613440', 'dw_dept_name', 'dw_dept_name', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073109754931085312', '10001', '2025-04-18 16:24:15', NULL, NULL, '1073109754712981504', 'zrs', 'zrs', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073109755035942912', '10001', '2025-04-18 16:24:15', NULL, NULL, '1073109754712981504', 'yqd', 'yqd', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073109755136606208', '10001', '2025-04-18 16:24:15', NULL, NULL, '1073109754712981504', 'wqd', 'wqd', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073109755807694848', '10001', '2025-04-18 16:24:15', NULL, NULL, '1073109754712981504', 'ydy', 'ydy', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_field (id, create_by, create_time, update_by, update_time, jimu_report_db_id, field_name, field_text, widget_type, widget_width, order_num, search_flag, search_mode, dict_code, search_value, search_format, ext_json, create_id, update_id) VALUES ('1073109755895775232', '10001', '2025-04-18 16:24:15', NULL, NULL, '1073109754712981504', 'wdy', 'wdy', 'String', NULL, 4, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073127049749364736', '1073127049426403328', 'firm_id', 'firm_id', '', 1, '10001', '2025-04-18 16:44:30', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073127049841639424', '1073127049426403328', 'dw_dept_id', 'dw_dept_id', '', 3, '10001', '2025-04-18 16:44:30', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073126559250677760', '1073126558944493568', 'firm_id', 'firm_id', '', 1, '10001', '2025-04-18 16:44:23', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073126559330369536', '1073126558944493568', 'dw_dept_id', 'dw_dept_id', '', 3, '10001', '2025-04-18 16:44:23', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073126806873997312', '1073126806588784640', 'firm_id', 'firm_id', '', 1, '10001', '2025-04-18 16:44:15', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073126806957883392', '1073126806588784640', 'dw_dept_id', 'dw_dept_id', '', 3, '10001', '2025-04-18 16:44:15', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073123064950849536', '1073123064535613440', 'group_id', 'group_id', '', 1, '10001', '2025-04-18 16:26:15', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073125951038849024', '1073123064535613440', 'dw_dept_id', 'dw_dept_id', '', 2, '10001', '2025-04-18 16:26:15', NULL, NULL, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073110240803454976', '1073109754712981504', 'firm_id', '单位', '', 1, '10001', '2025-04-18 16:24:15', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073110240908312576', '1073109754712981504', 'dw_dept_id', '套餐名称', '', 2, '10001', '2025-04-18 16:24:15', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO jimu_report_db_param (id, jimu_report_head_id, param_name, param_txt, param_value, order_num, create_by, create_time, update_by, update_time, search_flag, widget_type, search_mode, dict_code, search_format, ext_json, create_id, update_id) VALUES ('1073110240988004352', '1073109754712981504', 'group_id', '分组', '', 3, '10001', '2025-04-18 16:24:15', NULL, NULL, 0, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `deleted`, `create_id`, `update_id`) VALUES ('团体预约统计', 2341, 6, 'reservation', 'jmreport/reservation/index', NULL, 1, 0, 'C', '0', '0', '', 'tree', '超级管理员', '2025-04-18 17:09:14', '超级管理员', '2025-04-18 17:09:39', '', 0, NULL, NULL);
update tj_order set firm_dept_id = (select a.dw_dept_id from tj_dw_grouping a where a.id=tj_order.group_id) where group_id is not null
-- å›¢ä½“报表
INSERT INTO `jimu_report` (`id`, `code`, `name`, `note`, `status`, `type`, `json_str`, `api_url`, `thumb`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `api_method`, `api_code`, `template`, `view_count`, `css_str`, `js_str`, `tenant_id`, `print_type`, `is_start`, `create_id`, `update_id`) VALUES ('858579252534800384', '20230904153609', '团队体检报告', NULL, NULL, 'datainfo', '{\"loopBlockList\":[],\"chartList\":[{\"row\":10,\"col\":0,\"colspan\":4,\"rowspan\":14,\"width\":\"424\",\"height\":\"350\",\"config\":\"{\\\"legend\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"top\\\":\\\"top\\\",\\\"left\\\":\\\"left\\\",\\\"orient\\\":\\\"vertical\\\",\\\"padding\\\":[43,20,25,10],\\\"data\\\":[\\\"实检人数\\\",\\\"未检人数\\\"],\\\"show\\\":true},\\\"series\\\":[{\\\"isRose\\\":false,\\\"data\\\":[{\\\"name\\\":\\\"实检人数\\\",\\\"value\\\":0,\\\"itemStyle\\\":{\\\"color\\\":\\\"#000000\\\"}},{\\\"name\\\":\\\"未检人数\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#DADADA\\\"}}],\\\"isRadius\\\":false,\\\"roseType\\\":\\\"\\\",\\\"notCount\\\":false,\\\"center\\\":[\\\"196\\\",\\\"169\\\"],\\\"name\\\":\\\"value\\\",\\\"minAngle\\\":0,\\\"label\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"},\\\"position\\\":\\\"inside\\\",\\\"formatter\\\":\\\"{b}\\\\n{c}\\\",\\\"rotate\\\":0,\\\"type\\\":\\\"pie\\\",\\\"show\\\":true},\\\"type\\\":\\\"pie\\\",\\\"radius\\\":\\\"55%\\\",\\\"autoSort\\\":false}],\\\"tooltip\\\":{\\\"formatter\\\":\\\"{a} <br/>{b} : {c}\\\",\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":5,\\\"text\\\":\\\"                      å®žæ£€ã€æœªæ£€æ¯”例图\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,10]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1042300196856037376\",\"axisX\":\"title\",\"axisY\":\"value\",\"series\":\"\",\"yText\":\"value\",\"xText\":\"title\",\"dbCode\":\"btCheckBl\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":\"\",\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"pie.simple\",\"chartId\":\"MfQeh9JkrpGVlt98\",\"id\":\"\"},\"layer_id\":\"MfQeh9JkrpGVlt98\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[10,0],[10,1],[10,2],[10,3]]},{\"row\":10,\"col\":3,\"colspan\":5,\"rowspan\":14,\"width\":\"563\",\"height\":\"350\",\"config\":\"{\\\"legend\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"top\\\":\\\"top\\\",\\\"left\\\":\\\"left\\\",\\\"orient\\\":\\\"vertical\\\",\\\"padding\\\":[43,20,25,10],\\\"data\\\":[\\\"男\\\",\\\"女\\\"],\\\"show\\\":true},\\\"series\\\":[{\\\"isRose\\\":false,\\\"data\\\":[{\\\"name\\\":\\\"男\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#000000\\\"}},{\\\"name\\\":\\\"女\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#DADADA\\\"}}],\\\"isRadius\\\":false,\\\"roseType\\\":\\\"\\\",\\\"notCount\\\":false,\\\"center\\\":[\\\"193\\\",180],\\\"name\\\":\\\"value\\\",\\\"minAngle\\\":0,\\\"label\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"},\\\"position\\\":\\\"inside\\\",\\\"formatter\\\":\\\"{b}\\\\n{c}\\\",\\\"rotate\\\":0,\\\"type\\\":\\\"pie\\\",\\\"show\\\":true},\\\"type\\\":\\\"pie\\\",\\\"radius\\\":\\\"55%\\\",\\\"autoSort\\\":false}],\\\"tooltip\\\":{\\\"formatter\\\":\\\"{a} <br/>{b} : {c}\\\",\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":5,\\\"text\\\":\\\"                   å‚检人员性别比例图\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,10]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1042298604463357952\",\"axisX\":\"title\",\"axisY\":\"value\",\"series\":\"\",\"yText\":\"value\",\"xText\":\"title\",\"dbCode\":\"btNvBl\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":\"\",\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"pie.simple\",\"chartId\":\"kCVpgdlx4R62DHro\",\"id\":\"\"},\"layer_id\":\"kCVpgdlx4R62DHro\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[10,3],[10,4],[10,5],[10,6],[10,7],[10,8],[10,9]]},{\"row\":26,\"col\":0,\"colspan\":7,\"rowspan\":12,\"width\":\"698\",\"height\":\"276\",\"config\":\"{\\\"yAxis\\\":{\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":\\\"7\\\"}},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"show\\\":true,\\\"name\\\":\\\"人数\\\",\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"min\\\":\\\"0\\\"},\\\"xAxis\\\":{\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"rotate\\\":7,\\\"interval\\\":\\\"auto\\\"},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"data\\\":[\\\"0-19岁\\\",\\\"20-29岁\\\",\\\"30-39岁\\\",\\\"40-49岁\\\",\\\"50-59岁\\\",\\\"60-69岁\\\",\\\"70-79岁\\\",\\\"80+\\\"],\\\"show\\\":true,\\\"name\\\":\\\"年龄\\\",\\\"min\\\":\\\"0\\\"},\\\"grid\\\":{\\\"top\\\":60,\\\"left\\\":60,\\\"bottom\\\":60,\\\"right\\\":60},\\\"series\\\":[{\\\"barWidth\\\":22,\\\"data\\\":[0,0,0,0,0,0,0,0],\\\"name\\\":\\\"allnum\\\",\\\"itemStyle\\\":{\\\"barBorderRadius\\\":0,\\\"color\\\":\\\"\\\"},\\\"label\\\":{\\\"show\\\":true,\\\"position\\\":\\\"top\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"}},\\\"type\\\":\\\"bar\\\",\\\"barMinHeight\\\":2,\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontWeight\\\":\\\"bolder\\\"}}],\\\"tooltip\\\":{\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":13,\\\"text\\\":\\\"\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,20]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"859573447174152192\",\"axisX\":\"s\",\"axisY\":\"allnum\",\"series\":\"\",\"yText\":\"allnum\",\"xText\":\"s\",\"dbCode\":\"ageSexPerson\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":false,\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"bar.simple\",\"chartId\":\"SoVAhMMo7OVOxGxK\",\"id\":\"\"},\"layer_id\":\"SoVAhMMo7OVOxGxK\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":\"\",\"color\":\"#fff\",\"image\":\"\",\"repeat\":\"repeat\"},\"virtualCellRange\":[[26,0],[26,1],[26,2],[26,3],[26,4],[26,5],[26,6]]},{\"row\":44,\"col\":0,\"colspan\":8,\"rowspan\":12,\"width\":\"714\",\"height\":\"284\",\"config\":\"{\\\"yAxis\\\":{\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12}},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"show\\\":true,\\\"name\\\":\\\"人数\\\",\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false}},\\\"xAxis\\\":{\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":\\\"11\\\"},\\\"rotate\\\":90,\\\"interval\\\":\\\"auto\\\"},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"data\\\":[\\\"其他无\\\",\\\"浅表淋巴结无肿大\\\",\\\"四肢、关节功能良好\\\",\\\"脊柱无畸形\\\",\\\"腰椎骨质增生\\\",\\\"血清甘油三酯测定偏高\\\",\\\"红细胞压积偏高\\\",\\\"矫正视力(右)5.0\\\",\\\"屈光双眼屈光不正\\\",\\\"矫正视力(左)5.0\\\"],\\\"show\\\":true,\\\"name\\\":\\\"结论\\\"},\\\"grid\\\":{\\\"top\\\":60,\\\"left\\\":60,\\\"bottom\\\":100,\\\"right\\\":60},\\\"series\\\":[{\\\"barWidth\\\":19,\\\"data\\\":[109,107,105,101,55,49,37,35,34,28],\\\"name\\\":\\\"合计人数\\\",\\\"itemStyle\\\":{\\\"barBorderRadius\\\":0,\\\"color\\\":\\\"\\\"},\\\"label\\\":{\\\"show\\\":true,\\\"position\\\":\\\"top\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"}},\\\"type\\\":\\\"bar\\\",\\\"barMinHeight\\\":2,\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontWeight\\\":\\\"bolder\\\"}}],\\\"tooltip\\\":{\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":\\\"5\\\",\\\"text\\\":\\\"\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,20]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1041516490843258880\",\"axisX\":\"异常项目\",\"axisY\":\"合计人数\",\"series\":\"\",\"yText\":\"合计人数\",\"xText\":\"异常项目\",\"dbCode\":\"yichangResultList\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":false,\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"bar.simple\",\"chartId\":\"eh48adfikvKWACFK\",\"id\":\"\"},\"layer_id\":\"eh48adfikvKWACFK\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[44,0],[44,1],[44,2],[44,3],[44,4],[44,5],[44,6],[44,7]]}],\"area\":false,\"excel_config_id\":\"858579252534800384\",\"printConfig\":{\"paper\":\"A4\",\"width\":210,\"height\":297,\"definition\":2,\"isBackend\":false,\"marginX\":10,\"marginY\":10,\"layout\":\"portrait\",\"printCallBackUrl\":\"\"},\"zonedEditionList\":[],\"rows\":{\"0\":{\"cells\":{\"0\":{\"merge\":[1,6],\"height\":50,\"text\":\"团队体检统计\",\"style\":2}}},\"2\":{\"cells\":{\"0\":{\"merge\":[0,2],\"height\":25,\"text\":\"一、基本资料\",\"style\":23}},\"height\":26},\"3\":{\"cells\":{\"0\":{\"merge\":[0,2],\"height\":25,\"text\":\"1、体检信息\"},\"3\":{\"text\":\"\",\"merge\":[0,2],\"height\":25}}},\"4\":{\"cells\":{\"0\":{\"text\":\"公司/团体名\",\"style\":26,\"merge\":[0,1]},\"2\":{\"text\":\"${num.dw_name}\",\"style\":22,\"merge\":[0,4]}}},\"5\":{\"cells\":{\"0\":{\"style\":26,\"merge\":[0,1],\"text\":\"体检单位\"},\"2\":{\"style\":22,\"merge\":[0,4],\"text\":\"${num.dw_dept_name}\"}}},\"6\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"开始时间\",\"merge\":[0,1],\"height\":25},\"2\":{\"style\":22,\"text\":\"${num.开始时间}\",\"merge\":[0,4],\"height\":25}}},\"7\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"结束时间\",\"merge\":[0,1],\"height\":25},\"2\":{\"style\":22,\"text\":\"${num.结束时间}\",\"merge\":[0,4],\"height\":25}}},\"8\":{\"cells\":{\"0\":{\"merge\":[0,6],\"height\":25,\"text\":\"(一)丶本次体检总参检人数:${num.zongshu}人,实检 ${num.实检人数}人,未检 ${num.未检人数}人,其中实检男性 ${num.男}人,实检女性 ${num.女}人。\"}},\"height\":34},\"9\":{\"cells\":{\"0\":{\"merge\":[0,6],\"height\":25,\"text\":\"(二)、总参人员实检及性别比例图\"},\"6\":{\"text\":\"(二)、总参人员实检及性别比例图\"}},\"height\":32},\"10\":{\"cells\":{\"0\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"1\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"2\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"3\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"4\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"5\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"6\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"7\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"8\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"9\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"}}},\"22\":{\"cells\":{\"0\":{\"text\":\"2、参检人年龄分布\",\"merge\":[0,1],\"height\":31}},\"height\":31},\"23\":{\"cells\":{\"0\":{\"style\":26,\"text\":\" \"},\"1\":{\"style\":26,\"text\":\"人数\",\"merge\":[0,2],\"height\":25},\"4\":{\"style\":26,\"text\":\"百分比\",\"merge\":[0,2],\"height\":25},\"8\":{\"text\":\"\",\"rendered\":\"\",\"config\":\"\"}}},\"24\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"年龄组(岁)\"},\"1\":{\"style\":26,\"text\":\"男性\"},\"2\":{\"style\":26,\"text\":\"女性\"},\"3\":{\"style\":26,\"text\":\"合计\"},\"4\":{\"style\":26,\"text\":\"男性\"},\"5\":{\"style\":26,\"text\":\"女性\",\"merge\":[0,1],\"height\":25}}},\"25\":{\"cells\":{\"0\":{\"style\":5,\"text\":\"#{ageSexPerson.s}\"},\"1\":{\"style\":5,\"text\":\"#{ageSexPerson.男}\"},\"2\":{\"style\":5,\"text\":\"#{ageSexPerson.女}\"},\"3\":{\"style\":5,\"text\":\"=SUM(B13,C13)\"},\"4\":{\"style\":29,\"text\":\"#{ageSexPerson.compute(男/(男+女))}\",\"decimalPlaces\":\"2\"},\"5\":{\"style\":29,\"text\":\"#{ageSexPerson.compute(女/(男+女))}\",\"merge\":[0,1],\"height\":25,\"completeBlankStatus\":true,\"rendered\":\"\",\"config\":\"\",\"display\":\"number\",\"decimalPlaces\":\"2\"}}},\"26\":{\"cells\":{\"0\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"1\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"2\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"3\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"4\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"5\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"6\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"}}},\"39\":{\"cells\":{\"0\":{\"text\":\"二、本次体检异常结果检出统计\",\"merge\":[0,3],\"height\":25,\"style\":23}}},\"40\":{\"cells\":{\"0\":{\"merge\":[0,7],\"height\":25,\"text\":\"贵单位此次在我中心进行团体体检,现在得检出的异常按比例进行统计分析,以反映员工的健康状况:\"}}},\"41\":{\"cells\":{\"0\":{\"style\":15,\"text\":\" \"},\"1\":{\"style\":26,\"text\":\"人数\",\"merge\":[0,2],\"height\":25},\"4\":{\"style\":26,\"text\":\"百分比\",\"merge\":[0,2],\"height\":25}}},\"42\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"体检结论\"},\"1\":{\"style\":26,\"text\":\"男性\"},\"2\":{\"style\":26,\"text\":\"女性\"},\"3\":{\"style\":26,\"text\":\"合计\"},\"4\":{\"style\":26,\"text\":\"男性\"},\"5\":{\"style\":26,\"text\":\"女性\",\"merge\":[0,1],\"height\":25}}},\"43\":{\"cells\":{\"0\":{\"style\":24,\"text\":\"#{yichangResultList.异常项目}\"},\"1\":{\"style\":5,\"text\":\"#{yichangResultList.男数量}\"},\"2\":{\"style\":5,\"text\":\"#{yichangResultList.女数量}\"},\"3\":{\"style\":5,\"text\":\"#{yichangResultList.合计人数}\"},\"4\":{\"style\":5,\"text\":\"#{yichangResultList.男百分比}\"},\"5\":{\"style\":5,\"text\":\"#{yichangResultList.女百分比}\",\"merge\":[0,1],\"height\":25}}},\"44\":{\"cells\":{\"0\":{\"merge\":[12,6],\"height\":325,\"virtual\":\"eh48adfikvKWACFK\",\"text\":\" \"},\"1\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"2\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"3\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"4\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"5\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"6\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"7\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"}}},\"57\":{\"cells\":{\"0\":{\"text\":\"三、健康问题分析\",\"merge\":[0,2],\"height\":25,\"style\":23}}},\"58\":{\"cells\":{\"0\":{\"merge\":[0,7],\"height\":25,\"text\":\"以下为各异常详细人员信息:\"}}},\"59\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"病种\",\"loopBlock\":0},\"1\":{\"text\":\"体检号\",\"style\":26,\"loopBlock\":0},\"2\":{\"style\":26,\"text\":\"姓名\",\"loopBlock\":0},\"3\":{\"style\":26,\"text\":\"性别\",\"loopBlock\":0},\"4\":{\"style\":26,\"text\":\"年龄\",\"loopBlock\":0},\"5\":{\"style\":26,\"text\":\"分组\",\"merge\":[0,1],\"height\":25,\"loopBlock\":0}},\"height\":26},\"60\":{\"cells\":{\"0\":{\"style\":24,\"text\":\"#{yichangInfoHzList.temp_result}\",\"loopBlock\":0,\"aggregate\":\"group\",\"rendered\":\"\",\"config\":\"\"},\"1\":{\"text\":\"#{yichangInfoHzList.tj_number}\",\"loopBlock\":0,\"style\":24},\"2\":{\"style\":5,\"text\":\"#{yichangInfoHzList.cus_name}\",\"loopBlock\":0},\"3\":{\"style\":5,\"text\":\"#{yichangInfoHzList.cus_sex}\",\"loopBlock\":0},\"4\":{\"style\":5,\"text\":\"#{yichangInfoHzList.age}\",\"loopBlock\":0},\"5\":{\"style\":5,\"text\":\"#{yichangInfoHzList.grouping_name}\",\"merge\":[0,1],\"height\":25,\"loopBlock\":0},\"6\":{\"text\":\"\",\"loopBlock\":0}},\"height\":28},\"len\":84},\"dbexps\":[],\"dicts\":[],\"rpbar\":{\"show\":true,\"pageSize\":\"\",\"btnList\":[1,2,3,4,5,6,7,8,9]},\"fixedPrintHeadRows\":[],\"fixedPrintTailRows\":[],\"freeze\":\"A1\",\"dataRectWidth\":1013,\"displayConfig\":{},\"background\":false,\"completeBlankRowList\":[{\"db\":\"ageSexPerson\",\"field\":\"compute(女/(男+女))\"}],\"name\":\"sheet1\",\"autofilter\":{},\"styles\":[{\"font\":{\"size\":22}},{\"font\":{\"size\":22,\"bold\":true}},{\"font\":{\"size\":22,\"bold\":true},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"right\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#01b0f1\"},{\"bgcolor\":\"#01b0f1\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#9cc2e6\"},{\"bgcolor\":\"#9cc2e6\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#bdd7ee\"},{\"bgcolor\":\"#bdd7ee\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#deeaf6\"},{\"bgcolor\":\"#deeaf6\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#bdd7ee\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\"},{\"border\":{\"top\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"font\":{\"size\":12}},{\"font\":{\"size\":12}},{\"font\":{\"size\":14}},{},{\"font\":{\"size\":14},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"font\":{\"size\":11}},{\"font\":{\"size\":11}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"textwrap\":true},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"textwrap\":true},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#deeaf6\",\"font\":{\"bold\":true}},{\"font\":{\"bold\":true}},{\"align\":\"right\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"format\":\"percent\"},{\"format\":\"percent\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"textwrap\":false},{\"format\":\"number\"}],\"validations\":[],\"cols\":{\"0\":{\"width\":151},\"1\":{\"width\":128},\"2\":{\"width\":107},\"3\":{\"width\":102},\"4\":{\"width\":107},\"5\":{\"width\":81},\"6\":{\"width\":37},\"len\":50},\"merges\":[\"A1:G2\",\"A3:C3\",\"A4:C4\",\"D4:F4\",\"A5:B5\",\"C5:G5\",\"A6:B6\",\"C6:G6\",\"A7:B7\",\"C7:G7\",\"A8:B8\",\"C8:G8\",\"A9:G9\",\"A10:G10\",\"A23:B23\",\"B24:D24\",\"E24:G24\",\"F25:G25\",\"F26:G26\",\"A40:D40\",\"A41:H41\",\"B42:D42\",\"E42:G42\",\"F43:G43\",\"F44:G44\",\"A45:G57\",\"A58:C58\",\"A59:H59\",\"F60:G60\",\"F61:G61\"]}', NULL, NULL, '10001', '2023-09-04 15:36:10', '10001', '2025-04-18 14:56:55', 0, NULL, NULL, 0, 360, NULL, 'function init(){\n    let headers = { \'hospId\': \'pbkwyy\'};\n    let params = {params: {pid: \'\',type:\'1\'},headers: headers}\n    let url = \'http://192.168.1.2:5011/reservation/reservation/linkage\'\n    // let url = \'http://10.100.100.117:5101/ltkj-admin/reservation/reservation/linkage\'\n    $http.metaGet(url ,params).then(res=>{\n        let options =  res.data;\n        this.updateSelectOptions(\'yichangResultList\', \'firmId\', options)\n    })\n}\n', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1041516490843258880', '858579252534800384', '10001', '10001', '2025-04-16 10:38:03', '2025-04-16 10:38:03', 'yichangResultList', '异常结果统计', '0', NULL, '\nSELECT \n    a.temp_result AS å¼‚常项目,\n    SUM(CASE WHEN c.cus_sex = 0 THEN 1 ELSE 0 END) AS ç”·æ•°é‡,\n    SUM(CASE WHEN c.cus_sex = 1 THEN 1 ELSE 0 END) AS å¥³æ•°é‡,\n    COUNT(c.cus_id) AS åˆè®¡äººæ•°,\n    CONCAT(ROUND(SUM(CASE WHEN c.cus_sex = 0 THEN 1 ELSE 0 END) / total_count * 100, 2),\'%\') AS ç”·ç™¾åˆ†æ¯”,\n    CONCAT(ROUND(SUM(CASE WHEN c.cus_sex = 1 THEN 1 ELSE 0 END) / total_count * 100, 2),\'%\') AS å¥³ç™¾åˆ†æ¯”\nFROM (\n    SELECT p.pro_id, p.pro_name, od.pro_result AS result, CONCAT(p.pro_name,od.pro_result) AS temp_result, o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_order_detail od ON o.order_id = od.order_id\n    LEFT JOIN tj_project p ON p.pro_id = od.pro_id\n    JOIN sys_dept d ON d.dept_id = p.dept_id\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(od.pro_result, \'\') <> \'\'\n      AND d.org_type = 3\n      AND d.dept_id <> \'550\'\n      AND INSTR(od.pro_result, \'未见异常\') <= 0\n      AND INSTR(od.pro_result, \'未见明显异常\') <= 0\n      AND INSTR(od.pro_result, \'未见占位\') <= 0\n      AND INSTR(od.pro_result, \'未见明显\') <= 0\n      AND INSTR(od.pro_result, \'正常\') <= 0\n      AND INSTR(od.pro_result, \'双侧椎间孔无狭窄\') <= 0\n      AND INSTR(od.pro_result, \'无殊\') <= 0\n\n    UNION\n\n    SELECT bgd.jcxmid, bgd.jcxm, bgd.ycbz, \n           CASE WHEN LOCATE(bgd.ycbz, \'↑\') THEN CONCAT(bgd.jcxm, \'偏高\')\n                ELSE CONCAT(bgd.jcxm, \'偏低\') END AS result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN ltkj_hysqd sqd ON o.tj_number = sqd.tjh\n    JOIN ltkj_hybgd bgd ON sqd.tmh = bgd.tmh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(bgd.ycbz, \'\') <> \'\'\n\n    UNION\n\n    SELECT yc.pro_id, yc.pro_name, TRIM(yc.jcjg) AS result, \n           REPLACE(TRIM(yc.jcjg), \'\\n\', \'\') AS temp_result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_jcycxm yc ON o.tj_number = yc.tjh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND yc.pro_id IS NOT NULL\n) a\nLEFT JOIN tj_customer c ON a.user_id = c.cus_id\n\n\nLEFT JOIN (\n    SELECT COUNT(1) AS total_count\n    FROM tj_order \n    WHERE firm_id = \'${firmId}\'\n    AND create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n) total_count ON 1=1\n\n\nWHERE IFNULL(a.temp_result, \'\') <> \'\'\nGROUP BY a.temp_result\nORDER BY åˆè®¡äººæ•° DESC\nLIMIT 10\n', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('859573447174152192', '858579252534800384', '10001', '10001', '2025-04-16 10:36:14', '2025-04-16 10:36:14', 'ageSexPerson', '年龄性别人数表(sql)', '0', NULL, 'SELECT a.s, IFNULL(aa.`男`,0)`男`,IFNULL(aa.`女`,0) `女` ,(IFNULL(aa.`男`,0)+IFNULL(aa.`女`,0)) \'allNum\'FROM \n (SELECT \'0-19岁\' s UNION SELECT \'20-29岁\' s UNION SELECT \'30-39岁\' s UNION SELECT \'40-49岁\' s UNION SELECT\'50-59岁\'s UNION SELECT \'60-69岁\' s UNION SELECT \'70-79岁\' s UNION SELECT \'80+\' s )a\n \n LEFT JOIN\n \n( SELECT\n    CASE\n            \n        WHEN\n            FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 0 \n            AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 20 THEN \'0-19岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 20 \n                AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 29 THEN \'20-29岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 30 \n                    AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 39 THEN \'30-39岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 40 \n                        AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 49 THEN \'40-49岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 50 \n                            AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 59 THEN \'50-59岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 60 \n                                AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 69 THEN \'60-69岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 70 \n                                    AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 79 THEN \'70-79岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 80 THEN\n                                        \'80+\' \n                                    END nnd,\n                        sum( CASE WHEN b.cus_sex = \'0\' THEN 1 ELSE 0 END ) ç”·,\n                        sum( CASE WHEN b.cus_sex = \'1\' THEN 1 ELSE 0 END ) å¥³ \n                    FROM\n                        tj_order a\n                        LEFT JOIN tj_customer b ON b.cus_id = a.user_id \n                    WHERE\n                        a.deleted = 0 \n                        AND a.tj_type = 1 \n                        AND a.firm_id = \'${firmId}\' \n            AND a.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n                    GROUP BY nnd \n) aa ON a.s = aa.nnd', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('858611931275816960', '858579252534800384', '10001', '10001', '2025-04-16 10:36:03', '2025-04-16 10:36:03', 'num', '人数', '0', NULL, 'SELECT\n      aa.dw_name,\n        aa.dw_dept_name,\n        z.total as zongshu,\n        sum(case when c.cus_sex = \'0\' then 1 else 0 end) ç”·,\n        sum(case when c.cus_sex = \'1\' then 1 else 0 end) å¥³,\n    COUNT(c.cus_sex) AS å®žæ£€äººæ•°,\nz.total - COUNT(c.cus_sex) AS æœªæ£€äººæ•°,\n    MIN(b.create_time) å¼€å§‹æ—¶é—´,\n        MAX(b.update_time) ç»“束时间\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\' \n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '0', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1042300196856037376', '858579252534800384', '10001', '10001', '2025-04-16 10:35:52', '2025-04-16 10:35:52', 'btCheckBl', '饼图实检未检比例', '0', NULL, 'SELECT\n  \'实检人数\' AS title,\n  COUNT( c.cus_sex ) AS \n`VALUE`\n  \nFROM\n  (\n  SELECT\n    a.id,\n    a.dw_id,\n    a.dw_name,\n    a.dw_dept_name \n  FROM\n    tj_dw_dept a \n  WHERE\n    a.deleted = 0 \n    AND a.dw_id = \'${firmId}\'\n  ) aa\n  JOIN ( SELECT * FROM tj_order d WHERE d.deleted = 0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id ) b ON b.firm_id = aa.dw_id \n  AND b.firm_dept_id = aa.id\n  JOIN tj_customer c ON c.cus_id = b.user_id\n  LEFT JOIN ( SELECT COUNT( 1 ) AS total FROM tj_reservation a WHERE a.company_id = \'${firmId}\' ) z ON 1 = 1 UNION ALL\nSELECT\n  \'未检人数\' AS title,\n  z.total - COUNT( c.cus_sex ) AS `VALUE`\nFROM\n  (\n  SELECT\n    a.id,\n    a.dw_id,\n    a.dw_name,\n    a.dw_dept_name \n  FROM\n    tj_dw_dept a \n  WHERE\n    a.deleted = 0 \n    AND a.dw_id = \'${firmId}\'\n  ) aa\n  JOIN ( SELECT * FROM tj_order d WHERE d.deleted = 0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id ) b ON b.firm_id = aa.dw_id \n  AND b.firm_dept_id = aa.id\n  JOIN tj_customer c ON c.cus_id = b.user_id\n  LEFT JOIN ( SELECT COUNT( 1 ) AS total FROM tj_reservation a WHERE a.company_id = \'${firmId}\' ) z ON 1 = 1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1042298604463357952', '858579252534800384', '10001', '10001', '2025-04-16 10:35:39', '2025-04-16 10:35:39', 'btNvBl', '饼图男女比例', '0', NULL, 'SELECT\n    \'男\' AS title,\n        sum(case when c.cus_sex = \'0\' then 1 else 0 end) AS `value`\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\'\n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1\n \n UNION ALL\n \n SELECT\n        \'女\' AS title,\n        sum(case when c.cus_sex = \'1\' then 1 else 0 end) AS `value`\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\'\n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1041531739260616704', '858579252534800384', '10001', '10001', '2025-04-16 10:35:26', '2025-04-16 10:35:39', 'yichangInfoHzList', '异常详细数据汇总', '0', NULL, 'SELECT \n    a.pro_name, \n    c.cus_name,\n    o.tj_number,\n    CASE \n         WHEN c.cus_brithday IS NOT NULL AND NULLIF(c.cus_brithday, NULL) IS NOT NULL THEN \n            FLOOR(DATEDIFF(CURDATE(), c.cus_brithday) / 365.25)\n        ELSE NULL\n    END AS age,\n    CASE WHEN c.cus_sex = 0 THEN \'男\' \n    ELSE \'女\' END AS cus_sex,\n    a.temp_result,\n    g.grouping_name\nFROM tj_customer c \nLEFT JOIN tj_order o ON c.cus_id = o.user_id\nLEFT JOIN tj_dw_grouping g ON g.dw_id = o.firm_id \n                           AND g.dw_dept_id = o.firm_dept_id \n                           AND o.group_id = g.id\nLEFT JOIN (\n    SELECT p.pro_id, p.pro_name, od.pro_result AS result, CONCAT(p.pro_name,od.pro_result) AS temp_result, o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_order_detail od ON o.order_id = od.order_id\n    LEFT JOIN tj_project p ON p.pro_id = od.pro_id\n    JOIN sys_dept d ON d.dept_id = p.dept_id\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(od.pro_result, \'\') <> \'\'\n      AND d.org_type = 3\n      AND d.dept_id <> \'550\'\n      AND INSTR(od.pro_result, \'未见异常\') <= 0\n      AND INSTR(od.pro_result, \'未见明显异常\') <= 0\n      AND INSTR(od.pro_result, \'未见占位\') <= 0\n      AND INSTR(od.pro_result, \'未见明显\') <= 0\n      AND INSTR(od.pro_result, \'正常\') <= 0\n      AND INSTR(od.pro_result, \'双侧椎间孔无狭窄\') <= 0\n      AND INSTR(od.pro_result, \'无殊\') <= 0\n    UNION\n    SELECT bgd.jcxmid, bgd.jcxm, bgd.ycbz, \n           CASE WHEN LOCATE(bgd.ycbz, \'↑\') THEN CONCAT(bgd.jcxm, \'偏高\')\n                ELSE CONCAT(bgd.jcxm, \'偏低\') END AS result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN ltkj_hysqd sqd ON o.tj_number = sqd.tjh\n    JOIN ltkj_hybgd bgd ON sqd.tmh = bgd.tmh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(bgd.ycbz, \'\') <> \'\'\n    UNION\n    SELECT yc.pro_id, yc.pro_name, TRIM(yc.jcjg) AS result, \n           REPLACE(TRIM(yc.jcjg), \'\\n\', \'\') AS temp_result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_jcycxm yc ON o.tj_number = yc.tjh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND yc.pro_id IS NOT NULL\n) a ON a.user_id = c.cus_id\nWHERE IFNULL(a.temp_result, \'\') <> \'\'\nORDER BY a.temp_result DESC\n', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041516491044585472', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '异常项目', '异常项目', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041516491162025984', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '男数量', '男数量', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041516491250106368', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '女数量', '女数量', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041516491329798144', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '合计人数', '合计人数', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041521081148276736', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '男百分比', '男百分比', 'String', NULL, 4, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041521081240551424', '10001', '2025-04-16 10:38:03', NULL, NULL, '1041516490843258880', '女百分比', '女百分比', 'String', NULL, 5, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859573450949025792', '10001', '2025-04-16 10:36:14', NULL, NULL, '859573447174152192', 's', 's', 'String', NULL, 0, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859573453394305024', '10001', '2025-04-16 10:36:14', NULL, NULL, '859573447174152192', '男', '男', 'String', NULL, 1, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859573455810224128', '10001', '2025-04-16 10:36:14', NULL, NULL, '859573447174152192', '女', '女', 'String', NULL, 2, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('879264552793616384', '10001', '2025-04-16 10:36:14', NULL, NULL, '859573447174152192', 'allnum', '总人数', 'String', NULL, 3, 0, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042286110428659712', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', '实检人数', '实检人数', 'String', NULL, 7, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042288346990936064', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', '未检人数', '未检人数', 'String', NULL, 8, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('858938880519008256', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', '开始时间', '开始时间', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('858938880862941184', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', '结束时间', '结束时间', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859315015649091584', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', 'dw_name', 'dw_name', 'String', NULL, 4, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859315018123730944', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', 'dw_dept_name', 'dw_dept_name', 'String', NULL, 5, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859315020598370304', '10001', '2025-04-16 10:36:04', NULL, NULL, '858611931275816960', 'zongshu', 'zongshu', 'String', NULL, 6, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('858937737814437888', '10001', '2025-04-16 10:36:03', NULL, NULL, '858611931275816960', '男', '男', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('858937738166759424', '10001', '2025-04-16 10:36:03', NULL, NULL, '858611931275816960', '女', '女', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042300196990255104', '10001', '2025-04-16 10:35:53', NULL, NULL, '1042300196856037376', 'title', 'title', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042300197082529792', '10001', '2025-04-16 10:35:53', NULL, NULL, '1042300196856037376', 'value', 'value', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042298604601769984', '10001', '2025-04-16 10:35:39', NULL, NULL, '1042298604463357952', 'title', 'title', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042298604677267456', '10001', '2025-04-16 10:35:39', NULL, NULL, '1042298604463357952', 'value', 'value', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739369668608', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'pro_name', 'pro_name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739445166080', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'cus_name', 'cus_name', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739508080640', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'tj_number', 'tj_number', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739562606592', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'temp_result', 'temp_result', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739621326848', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'grouping_name', 'grouping_name', 'String', NULL, 4, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041557683337723904', '10001', '2025-04-16 10:35:26', NULL, NULL, '1041531739260616704', 'age', 'age', 'String', NULL, 5, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041516491422072832', '1041516490843258880', 'firmId', '单位', '', 1, '10001', '2025-04-16 10:38:03', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072294145787985920', '1041516490843258880', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-16 10:38:03', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072294145867677696', '1041516490843258880', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-16 10:38:03', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305754916814848', '859573447174152192', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-16 10:36:14', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305754992312320', '859573447174152192', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-16 10:36:14', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859573458565881856', '859573447174152192', 'firmId', 'firmId', '', 1, '10001', '2025-04-16 10:36:14', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305550838759424', '858611931275816960', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-16 10:36:04', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305550905868288', '858611931275816960', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-16 10:36:04', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('859229976093548544', '858611931275816960', 'firmId', 'firmId', '', 1, '10001', '2025-04-16 10:36:04', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042300197174804480', '1042300196856037376', 'firmId', 'firmId', '', 1, '10001', '2025-04-16 10:35:53', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305368659165184', '1042300196856037376', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-16 10:35:53', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072305368734662656', '1042300196856037376', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-16 10:35:53', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1042298604756959232', '1042298604463357952', 'firmId', 'firmId', '', 1, '10001', '2025-04-16 10:35:39', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072296077134954496', '1042298604463357952', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-16 10:35:39', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072296077210451968', '1042298604463357952', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-16 10:35:39', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1041531739755544576', '1041531739260616704', 'firmId', 'firmId', '', 2, '10001', '2025-04-16 10:35:26', NULL, NULL, 1, NULL, 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072294642875924480', '1041531739260616704', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 3, '10001', '2025-04-16 10:35:26', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072294642943033344', '1041531739260616704', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 4, '10001', '2025-04-16 10:35:26', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
UPDATE `jimu_report` SET `code` = '20230904153609', `name` = '团队体检报告', `note` = NULL, `status` = NULL, `type` = 'datainfo', `json_str` = '{\"loopBlockList\":[],\"chartList\":[{\"row\":10,\"col\":0,\"colspan\":4,\"rowspan\":14,\"width\":\"424\",\"height\":\"350\",\"config\":\"{\\\"legend\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"top\\\":\\\"top\\\",\\\"left\\\":\\\"left\\\",\\\"orient\\\":\\\"vertical\\\",\\\"padding\\\":[43,20,25,10],\\\"data\\\":[\\\"实检人数\\\",\\\"未检人数\\\"],\\\"show\\\":true},\\\"series\\\":[{\\\"isRose\\\":false,\\\"data\\\":[{\\\"name\\\":\\\"实检人数\\\",\\\"value\\\":0,\\\"itemStyle\\\":{\\\"color\\\":\\\"#000000\\\"}},{\\\"name\\\":\\\"未检人数\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#DADADA\\\"}}],\\\"isRadius\\\":false,\\\"roseType\\\":\\\"\\\",\\\"notCount\\\":false,\\\"center\\\":[\\\"196\\\",\\\"169\\\"],\\\"name\\\":\\\"value\\\",\\\"minAngle\\\":0,\\\"label\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"},\\\"position\\\":\\\"inside\\\",\\\"formatter\\\":\\\"{b}\\\\n{c}\\\",\\\"rotate\\\":0,\\\"type\\\":\\\"pie\\\",\\\"show\\\":true},\\\"type\\\":\\\"pie\\\",\\\"radius\\\":\\\"55%\\\",\\\"autoSort\\\":false}],\\\"tooltip\\\":{\\\"formatter\\\":\\\"{a} <br/>{b} : {c}\\\",\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":5,\\\"text\\\":\\\"                      å®žæ£€ã€æœªæ£€æ¯”例图\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,10]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1042300196856037376\",\"axisX\":\"title\",\"axisY\":\"value\",\"series\":\"\",\"yText\":\"value\",\"xText\":\"title\",\"dbCode\":\"btCheckBl\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":\"\",\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"pie.simple\",\"chartId\":\"MfQeh9JkrpGVlt98\",\"id\":\"\"},\"layer_id\":\"MfQeh9JkrpGVlt98\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[10,0],[10,1],[10,2],[10,3]]},{\"row\":10,\"col\":3,\"colspan\":5,\"rowspan\":14,\"width\":\"563\",\"height\":\"350\",\"config\":\"{\\\"legend\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"top\\\":\\\"top\\\",\\\"left\\\":\\\"left\\\",\\\"orient\\\":\\\"vertical\\\",\\\"padding\\\":[43,20,25,10],\\\"data\\\":[\\\"男\\\",\\\"女\\\"],\\\"show\\\":true},\\\"series\\\":[{\\\"isRose\\\":false,\\\"data\\\":[{\\\"name\\\":\\\"男\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#000000\\\"}},{\\\"name\\\":\\\"女\\\",\\\"value\\\":null,\\\"itemStyle\\\":{\\\"color\\\":\\\"#DADADA\\\"}}],\\\"isRadius\\\":false,\\\"roseType\\\":\\\"\\\",\\\"notCount\\\":false,\\\"center\\\":[\\\"193\\\",180],\\\"name\\\":\\\"value\\\",\\\"minAngle\\\":0,\\\"label\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"},\\\"position\\\":\\\"inside\\\",\\\"formatter\\\":\\\"{b}\\\\n{c}\\\",\\\"rotate\\\":0,\\\"type\\\":\\\"pie\\\",\\\"show\\\":true},\\\"type\\\":\\\"pie\\\",\\\"radius\\\":\\\"55%\\\",\\\"autoSort\\\":false}],\\\"tooltip\\\":{\\\"formatter\\\":\\\"{a} <br/>{b} : {c}\\\",\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":5,\\\"text\\\":\\\"                   å‚检人员性别比例图\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,10]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1042298604463357952\",\"axisX\":\"title\",\"axisY\":\"value\",\"series\":\"\",\"yText\":\"value\",\"xText\":\"title\",\"dbCode\":\"btNvBl\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":\"\",\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"pie.simple\",\"chartId\":\"kCVpgdlx4R62DHro\",\"id\":\"\"},\"layer_id\":\"kCVpgdlx4R62DHro\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[10,3],[10,4],[10,5],[10,6],[10,7],[10,8],[10,9]]},{\"row\":26,\"col\":0,\"colspan\":7,\"rowspan\":12,\"width\":\"698\",\"height\":\"276\",\"config\":\"{\\\"yAxis\\\":{\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":\\\"7\\\"}},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"show\\\":true,\\\"name\\\":\\\"人数\\\",\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"min\\\":\\\"0\\\"},\\\"xAxis\\\":{\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12},\\\"rotate\\\":7,\\\"interval\\\":\\\"auto\\\"},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"data\\\":[\\\"0-19岁\\\",\\\"20-29岁\\\",\\\"30-39岁\\\",\\\"40-49岁\\\",\\\"50-59岁\\\",\\\"60-69岁\\\",\\\"70-79岁\\\",\\\"80+\\\"],\\\"show\\\":true,\\\"name\\\":\\\"年龄\\\",\\\"min\\\":\\\"0\\\"},\\\"grid\\\":{\\\"top\\\":60,\\\"left\\\":60,\\\"bottom\\\":60,\\\"right\\\":60},\\\"series\\\":[{\\\"barWidth\\\":22,\\\"data\\\":[0,0,0,0,0,0,0,0],\\\"name\\\":\\\"allnum\\\",\\\"itemStyle\\\":{\\\"barBorderRadius\\\":0,\\\"color\\\":\\\"\\\"},\\\"label\\\":{\\\"show\\\":true,\\\"position\\\":\\\"top\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"}},\\\"type\\\":\\\"bar\\\",\\\"barMinHeight\\\":2,\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontWeight\\\":\\\"bolder\\\"}}],\\\"tooltip\\\":{\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":13,\\\"text\\\":\\\"\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,20]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"859573447174152192\",\"axisX\":\"s\",\"axisY\":\"allnum\",\"series\":\"\",\"yText\":\"allnum\",\"xText\":\"s\",\"dbCode\":\"ageSexPerson\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":false,\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"bar.simple\",\"chartId\":\"SoVAhMMo7OVOxGxK\",\"id\":\"\"},\"layer_id\":\"SoVAhMMo7OVOxGxK\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":\"\",\"color\":\"#fff\",\"image\":\"\",\"repeat\":\"repeat\"},\"virtualCellRange\":[[26,0],[26,1],[26,2],[26,3],[26,4],[26,5],[26,6]]},{\"row\":44,\"col\":0,\"colspan\":8,\"rowspan\":12,\"width\":\"714\",\"height\":\"284\",\"config\":\"{\\\"yAxis\\\":{\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":12}},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"show\\\":true,\\\"name\\\":\\\"人数\\\",\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false}},\\\"xAxis\\\":{\\\"splitLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"red\\\",\\\"width\\\":1,\\\"type\\\":\\\"solid\\\"},\\\"show\\\":false},\\\"axisLabel\\\":{\\\"textStyle\\\":{\\\"color\\\":\\\"#333\\\",\\\"fontSize\\\":\\\"11\\\"},\\\"rotate\\\":90,\\\"interval\\\":\\\"auto\\\"},\\\"axisLine\\\":{\\\"lineStyle\\\":{\\\"color\\\":\\\"#333\\\"}},\\\"data\\\":[\\\"其他无\\\",\\\"浅表淋巴结无肿大\\\",\\\"四肢、关节功能良好\\\",\\\"脊柱无畸形\\\",\\\"腰椎骨质增生\\\",\\\"血清甘油三酯测定偏高\\\",\\\"红细胞压积偏高\\\",\\\"矫正视力(右)5.0\\\",\\\"屈光双眼屈光不正\\\",\\\"矫正视力(左)5.0\\\"],\\\"show\\\":true,\\\"name\\\":\\\"结论\\\"},\\\"grid\\\":{\\\"top\\\":60,\\\"left\\\":60,\\\"bottom\\\":100,\\\"right\\\":60},\\\"series\\\":[{\\\"barWidth\\\":19,\\\"data\\\":[109,107,105,101,55,49,37,35,34,28],\\\"name\\\":\\\"合计人数\\\",\\\"itemStyle\\\":{\\\"barBorderRadius\\\":0,\\\"color\\\":\\\"\\\"},\\\"label\\\":{\\\"show\\\":true,\\\"position\\\":\\\"top\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontSize\\\":16,\\\"fontWeight\\\":\\\"bolder\\\"}},\\\"type\\\":\\\"bar\\\",\\\"barMinHeight\\\":2,\\\"textStyle\\\":{\\\"color\\\":\\\"black\\\",\\\"fontWeight\\\":\\\"bolder\\\"}}],\\\"tooltip\\\":{\\\"show\\\":true,\\\"textStyle\\\":{\\\"color\\\":\\\"#fff\\\",\\\"fontSize\\\":18}},\\\"title\\\":{\\\"show\\\":true,\\\"top\\\":\\\"5\\\",\\\"text\\\":\\\"\\\",\\\"textStyle\\\":{\\\"color\\\":\\\"#c23531\\\",\\\"fontWeight\\\":\\\"bolder\\\",\\\"fontSize\\\":18},\\\"left\\\":\\\"left\\\",\\\"padding\\\":[5,20,5,20]}}\",\"url\":\"\",\"extData\":{\"dataType\":\"sql\",\"apiStatus\":\"\",\"dataId\":\"1041516490843258880\",\"axisX\":\"异常项目\",\"axisY\":\"合计人数\",\"series\":\"\",\"yText\":\"合计人数\",\"xText\":\"异常项目\",\"dbCode\":\"yichangResultList\",\"dataId1\":\"\",\"source\":\"\",\"target\":\"\",\"isTiming\":false,\"intervalTime\":\"\",\"linkIds\":\"\",\"chartType\":\"bar.simple\",\"chartId\":\"eh48adfikvKWACFK\",\"id\":\"\"},\"layer_id\":\"eh48adfikvKWACFK\",\"offsetX\":0,\"offsetY\":0,\"backgroud\":{\"enabled\":false,\"color\":\"#fff\",\"image\":\"\"},\"virtualCellRange\":[[44,0],[44,1],[44,2],[44,3],[44,4],[44,5],[44,6],[44,7]]}],\"area\":false,\"excel_config_id\":\"858579252534800384\",\"printConfig\":{\"paper\":\"A4\",\"width\":210,\"height\":297,\"definition\":2,\"isBackend\":false,\"marginX\":10,\"marginY\":10,\"layout\":\"portrait\",\"printCallBackUrl\":\"\"},\"zonedEditionList\":[],\"rows\":{\"0\":{\"cells\":{\"0\":{\"merge\":[1,6],\"height\":50,\"text\":\"团队体检统计\",\"style\":2}}},\"2\":{\"cells\":{\"0\":{\"merge\":[0,2],\"height\":25,\"text\":\"一、基本资料\",\"style\":23}},\"height\":26},\"3\":{\"cells\":{\"0\":{\"merge\":[0,2],\"height\":25,\"text\":\"1、体检信息\"},\"3\":{\"text\":\"\",\"merge\":[0,2],\"height\":25}}},\"4\":{\"cells\":{\"0\":{\"text\":\"公司/团体名\",\"style\":26,\"merge\":[0,1]},\"2\":{\"text\":\"${num.dw_name}\",\"style\":22,\"merge\":[0,4]}}},\"5\":{\"cells\":{\"0\":{\"style\":26,\"merge\":[0,1],\"text\":\"体检单位\"},\"2\":{\"style\":22,\"merge\":[0,4],\"text\":\"${num.dw_dept_name}\"}}},\"6\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"开始时间\",\"merge\":[0,1],\"height\":25},\"2\":{\"style\":22,\"text\":\"${num.开始时间}\",\"merge\":[0,4],\"height\":25}}},\"7\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"结束时间\",\"merge\":[0,1],\"height\":25},\"2\":{\"style\":22,\"text\":\"${num.结束时间}\",\"merge\":[0,4],\"height\":25}}},\"8\":{\"cells\":{\"0\":{\"merge\":[0,6],\"height\":25,\"text\":\"(一)丶本次体检总参检人数:${num.zongshu}人,实检 ${num.实检人数}人,未检 ${num.未检人数}人,其中实检男性 ${num.男}人,实检女性 ${num.女}人。\"}},\"height\":34},\"9\":{\"cells\":{\"0\":{\"merge\":[0,6],\"height\":25,\"text\":\"(二)、总参人员实检及性别比例图\"},\"6\":{\"text\":\"(二)、总参人员实检及性别比例图\"}},\"height\":32},\"10\":{\"cells\":{\"0\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"1\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"2\":{\"text\":\" \",\"virtual\":\"MfQeh9JkrpGVlt98\"},\"3\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"4\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"5\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"6\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"7\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"8\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"},\"9\":{\"text\":\" \",\"virtual\":\"kCVpgdlx4R62DHro\"}}},\"22\":{\"cells\":{\"0\":{\"text\":\"2、参检人年龄分布\",\"merge\":[0,1],\"height\":31}},\"height\":31},\"23\":{\"cells\":{\"0\":{\"style\":26,\"text\":\" \"},\"1\":{\"style\":26,\"text\":\"人数\",\"merge\":[0,2],\"height\":25},\"4\":{\"style\":26,\"text\":\"百分比\",\"merge\":[0,2],\"height\":25},\"8\":{\"text\":\"\",\"rendered\":\"\",\"config\":\"\"}}},\"24\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"年龄组(岁)\"},\"1\":{\"style\":26,\"text\":\"男性\"},\"2\":{\"style\":26,\"text\":\"女性\"},\"3\":{\"style\":26,\"text\":\"合计\"},\"4\":{\"style\":26,\"text\":\"男性\"},\"5\":{\"style\":26,\"text\":\"女性\",\"merge\":[0,1],\"height\":25}}},\"25\":{\"cells\":{\"0\":{\"style\":5,\"text\":\"#{ageSexPerson.s}\"},\"1\":{\"style\":5,\"text\":\"#{ageSexPerson.男}\"},\"2\":{\"style\":5,\"text\":\"#{ageSexPerson.女}\"},\"3\":{\"style\":5,\"text\":\"=SUM(B13,C13)\"},\"4\":{\"style\":29,\"text\":\"#{ageSexPerson.compute(男/(男+女))}\",\"decimalPlaces\":\"2\"},\"5\":{\"style\":29,\"text\":\"#{ageSexPerson.compute(女/(男+女))}\",\"merge\":[0,1],\"height\":25,\"completeBlankStatus\":true,\"rendered\":\"\",\"config\":\"\",\"display\":\"number\",\"decimalPlaces\":\"2\"}}},\"26\":{\"cells\":{\"0\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"1\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"2\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"3\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"4\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"5\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"},\"6\":{\"text\":\" \",\"virtual\":\"SoVAhMMo7OVOxGxK\"}}},\"39\":{\"cells\":{\"0\":{\"text\":\"二、本次体检异常结果检出统计\",\"merge\":[0,3],\"height\":25,\"style\":23}}},\"40\":{\"cells\":{\"0\":{\"merge\":[0,7],\"height\":25,\"text\":\"贵单位此次在我中心进行团体体检,现在得检出的异常按比例进行统计分析,以反映员工的健康状况:\"}}},\"41\":{\"cells\":{\"0\":{\"style\":15,\"text\":\" \"},\"1\":{\"style\":26,\"text\":\"人数\",\"merge\":[0,2],\"height\":25},\"4\":{\"style\":26,\"text\":\"百分比\",\"merge\":[0,2],\"height\":25}}},\"42\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"体检结论\"},\"1\":{\"style\":26,\"text\":\"男性\"},\"2\":{\"style\":26,\"text\":\"女性\"},\"3\":{\"style\":26,\"text\":\"合计\"},\"4\":{\"style\":26,\"text\":\"男性\"},\"5\":{\"style\":26,\"text\":\"女性\",\"merge\":[0,1],\"height\":25}}},\"43\":{\"cells\":{\"0\":{\"style\":24,\"text\":\"#{yichangResultList.异常项目}\"},\"1\":{\"style\":5,\"text\":\"#{yichangResultList.男数量}\"},\"2\":{\"style\":5,\"text\":\"#{yichangResultList.女数量}\"},\"3\":{\"style\":5,\"text\":\"#{yichangResultList.合计人数}\"},\"4\":{\"style\":5,\"text\":\"#{yichangResultList.男百分比}\"},\"5\":{\"style\":5,\"text\":\"#{yichangResultList.女百分比}\",\"merge\":[0,1],\"height\":25}}},\"44\":{\"cells\":{\"0\":{\"merge\":[12,6],\"height\":325,\"virtual\":\"eh48adfikvKWACFK\",\"text\":\" \"},\"1\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"2\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"3\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"4\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"5\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"6\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"},\"7\":{\"text\":\" \",\"virtual\":\"eh48adfikvKWACFK\"}}},\"57\":{\"cells\":{\"0\":{\"text\":\"三、健康问题分析\",\"merge\":[0,2],\"height\":25,\"style\":23}}},\"58\":{\"cells\":{\"0\":{\"merge\":[0,7],\"height\":25,\"text\":\"以下为各异常详细人员信息:\"}}},\"59\":{\"cells\":{\"0\":{\"style\":26,\"text\":\"病种\",\"loopBlock\":0},\"1\":{\"text\":\"体检号\",\"style\":26,\"loopBlock\":0},\"2\":{\"style\":26,\"text\":\"姓名\",\"loopBlock\":0},\"3\":{\"style\":26,\"text\":\"性别\",\"loopBlock\":0},\"4\":{\"style\":26,\"text\":\"年龄\",\"loopBlock\":0},\"5\":{\"style\":26,\"text\":\"分组\",\"merge\":[0,1],\"height\":25,\"loopBlock\":0}},\"height\":26},\"60\":{\"cells\":{\"0\":{\"style\":24,\"text\":\"#{yichangInfoHzList.temp_result}\",\"loopBlock\":0,\"aggregate\":\"group\",\"rendered\":\"\",\"config\":\"\"},\"1\":{\"text\":\"#{yichangInfoHzList.tj_number}\",\"loopBlock\":0,\"style\":24},\"2\":{\"style\":5,\"text\":\"#{yichangInfoHzList.cus_name}\",\"loopBlock\":0},\"3\":{\"style\":5,\"text\":\"#{yichangInfoHzList.cus_sex}\",\"loopBlock\":0},\"4\":{\"style\":5,\"text\":\"#{yichangInfoHzList.age}\",\"loopBlock\":0},\"5\":{\"style\":5,\"text\":\"#{yichangInfoHzList.grouping_name}\",\"merge\":[0,1],\"height\":25,\"loopBlock\":0},\"6\":{\"text\":\"\",\"loopBlock\":0}},\"height\":28},\"len\":84},\"dbexps\":[],\"dicts\":[],\"rpbar\":{\"show\":true,\"pageSize\":\"\",\"btnList\":[1,2,3,4,5,6,7,8,9]},\"fixedPrintHeadRows\":[],\"fixedPrintTailRows\":[],\"freeze\":\"A1\",\"dataRectWidth\":1013,\"displayConfig\":{},\"background\":false,\"completeBlankRowList\":[{\"db\":\"ageSexPerson\",\"field\":\"compute(女/(男+女))\"}],\"name\":\"sheet1\",\"autofilter\":{},\"styles\":[{\"font\":{\"size\":22}},{\"font\":{\"size\":22,\"bold\":true}},{\"font\":{\"size\":22,\"bold\":true},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"right\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#01b0f1\"},{\"bgcolor\":\"#01b0f1\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#9cc2e6\"},{\"bgcolor\":\"#9cc2e6\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#bdd7ee\"},{\"bgcolor\":\"#bdd7ee\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#deeaf6\"},{\"bgcolor\":\"#deeaf6\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#bdd7ee\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\"},{\"border\":{\"top\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"font\":{\"size\":12}},{\"font\":{\"size\":12}},{\"font\":{\"size\":14}},{},{\"font\":{\"size\":14},\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"font\":{\"size\":11}},{\"font\":{\"size\":11}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"textwrap\":true},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"textwrap\":true},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"bgcolor\":\"#deeaf6\",\"font\":{\"bold\":true}},{\"font\":{\"bold\":true}},{\"align\":\"right\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"format\":\"percent\"},{\"format\":\"percent\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"textwrap\":false},{\"format\":\"number\"}],\"validations\":[],\"cols\":{\"0\":{\"width\":151},\"1\":{\"width\":128},\"2\":{\"width\":107},\"3\":{\"width\":102},\"4\":{\"width\":107},\"5\":{\"width\":81},\"6\":{\"width\":37},\"len\":50},\"merges\":[\"A1:G2\",\"A3:C3\",\"A4:C4\",\"D4:F4\",\"A5:B5\",\"C5:G5\",\"A6:B6\",\"C6:G6\",\"A7:B7\",\"C7:G7\",\"A8:B8\",\"C8:G8\",\"A9:G9\",\"A10:G10\",\"A23:B23\",\"B24:D24\",\"E24:G24\",\"F25:G25\",\"F26:G26\",\"A40:D40\",\"A41:H41\",\"B42:D42\",\"E42:G42\",\"F43:G43\",\"F44:G44\",\"A45:G57\",\"A58:C58\",\"A59:H59\",\"F60:G60\",\"F61:G61\"]}', `api_url` = NULL, `thumb` = NULL, `create_by` = '10001', `create_time` = '2023-09-04 15:36:10', `update_by` = '10001', `update_time` = '2025-04-18 14:56:55', `del_flag` = 0, `api_method` = NULL, `api_code` = NULL, `template` = 0, `view_count` = 360, `css_str` = NULL, `js_str` = 'function init(){\n    let headers = { \'hospId\': \'pbkwyy\'};\n    let params = {params: {pid: \'\',type:\'1\'},headers: headers}\n    let url = \'http://192.168.1.2:5011/reservation/reservation/linkage\'\n    // let url = \'http://10.100.100.117:5101/ltkj-admin/reservation/reservation/linkage\'\n    $http.metaGet(url ,params).then(res=>{\n        let options =  res.data;\n        this.updateSelectOptions(\'yichangResultList\', \'firmId\', options)\n    })\n}\n', `tenant_id` = NULL, `print_type` = NULL, `is_start` = NULL, `create_id` = NULL, `update_id` = NULL WHERE `id` = '858579252534800384';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_time` = '2025-04-16 10:38:03', `db_code` = 'yichangResultList', `db_ch_name` = '异常结果统计', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = '\nSELECT \n    a.temp_result AS å¼‚常项目,\n    SUM(CASE WHEN c.cus_sex = 0 THEN 1 ELSE 0 END) AS ç”·æ•°é‡,\n    SUM(CASE WHEN c.cus_sex = 1 THEN 1 ELSE 0 END) AS å¥³æ•°é‡,\n    COUNT(c.cus_id) AS åˆè®¡äººæ•°,\n    CONCAT(ROUND(SUM(CASE WHEN c.cus_sex = 0 THEN 1 ELSE 0 END) / total_count * 100, 2),\'%\') AS ç”·ç™¾åˆ†æ¯”,\n    CONCAT(ROUND(SUM(CASE WHEN c.cus_sex = 1 THEN 1 ELSE 0 END) / total_count * 100, 2),\'%\') AS å¥³ç™¾åˆ†æ¯”\nFROM (\n    SELECT p.pro_id, p.pro_name, od.pro_result AS result, CONCAT(p.pro_name,od.pro_result) AS temp_result, o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_order_detail od ON o.order_id = od.order_id\n    LEFT JOIN tj_project p ON p.pro_id = od.pro_id\n    JOIN sys_dept d ON d.dept_id = p.dept_id\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(od.pro_result, \'\') <> \'\'\n      AND d.org_type = 3\n      AND d.dept_id <> \'550\'\n      AND INSTR(od.pro_result, \'未见异常\') <= 0\n      AND INSTR(od.pro_result, \'未见明显异常\') <= 0\n      AND INSTR(od.pro_result, \'未见占位\') <= 0\n      AND INSTR(od.pro_result, \'未见明显\') <= 0\n      AND INSTR(od.pro_result, \'正常\') <= 0\n      AND INSTR(od.pro_result, \'双侧椎间孔无狭窄\') <= 0\n      AND INSTR(od.pro_result, \'无殊\') <= 0\n\n    UNION\n\n    SELECT bgd.jcxmid, bgd.jcxm, bgd.ycbz, \n           CASE WHEN LOCATE(bgd.ycbz, \'↑\') THEN CONCAT(bgd.jcxm, \'偏高\')\n                ELSE CONCAT(bgd.jcxm, \'偏低\') END AS result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN ltkj_hysqd sqd ON o.tj_number = sqd.tjh\n    JOIN ltkj_hybgd bgd ON sqd.tmh = bgd.tmh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(bgd.ycbz, \'\') <> \'\'\n\n    UNION\n\n    SELECT yc.pro_id, yc.pro_name, TRIM(yc.jcjg) AS result, \n           REPLACE(TRIM(yc.jcjg), \'\\n\', \'\') AS temp_result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_jcycxm yc ON o.tj_number = yc.tjh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND yc.pro_id IS NOT NULL\n) a\nLEFT JOIN tj_customer c ON a.user_id = c.cus_id\n\n\nLEFT JOIN (\n    SELECT COUNT(1) AS total_count\n    FROM tj_order \n    WHERE firm_id = \'${firmId}\'\n    AND create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n) total_count ON 1=1\n\n\nWHERE IFNULL(a.temp_result, \'\') <> \'\'\nGROUP BY a.temp_result\nORDER BY åˆè®¡äººæ•° DESC\nLIMIT 10\n', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '1', `is_page` = '0', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516490843258880';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_time` = '2025-04-16 10:36:14', `db_code` = 'ageSexPerson', `db_ch_name` = '年龄性别人数表(sql)', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = 'SELECT a.s, IFNULL(aa.`男`,0)`男`,IFNULL(aa.`女`,0) `女` ,(IFNULL(aa.`男`,0)+IFNULL(aa.`女`,0)) \'allNum\'FROM \n (SELECT \'0-19岁\' s UNION SELECT \'20-29岁\' s UNION SELECT \'30-39岁\' s UNION SELECT \'40-49岁\' s UNION SELECT\'50-59岁\'s UNION SELECT \'60-69岁\' s UNION SELECT \'70-79岁\' s UNION SELECT \'80+\' s )a\n \n LEFT JOIN\n \n( SELECT\n    CASE\n            \n        WHEN\n            FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 0 \n            AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 20 THEN \'0-19岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 20 \n                AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 29 THEN \'20-29岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 30 \n                    AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 39 THEN \'30-39岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 40 \n                        AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 49 THEN \'40-49岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 50 \n                            AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 59 THEN \'50-59岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 60 \n                                AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 69 THEN \'60-69岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 70 \n                                    AND FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) <= 79 THEN \'70-79岁\' WHEN FLOOR(DATEDIFF(CURDATE(), b.cus_brithday) / 365.25) >= 80 THEN\n                                        \'80+\' \n                                    END nnd,\n                        sum( CASE WHEN b.cus_sex = \'0\' THEN 1 ELSE 0 END ) ç”·,\n                        sum( CASE WHEN b.cus_sex = \'1\' THEN 1 ELSE 0 END ) å¥³ \n                    FROM\n                        tj_order a\n                        LEFT JOIN tj_customer b ON b.cus_id = a.user_id \n                    WHERE\n                        a.deleted = 0 \n                        AND a.tj_type = 1 \n                        AND a.firm_id = \'${firmId}\' \n            AND a.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n                    GROUP BY nnd \n) aa ON a.s = aa.nnd', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '1', `is_page` = '0', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859573447174152192';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:36:03', `update_time` = '2025-04-16 10:36:03', `db_code` = 'num', `db_ch_name` = '人数', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = 'SELECT\n      aa.dw_name,\n        aa.dw_dept_name,\n        z.total as zongshu,\n        sum(case when c.cus_sex = \'0\' then 1 else 0 end) ç”·,\n        sum(case when c.cus_sex = \'1\' then 1 else 0 end) å¥³,\n    COUNT(c.cus_sex) AS å®žæ£€äººæ•°,\nz.total - COUNT(c.cus_sex) AS æœªæ£€äººæ•°,\n    MIN(b.create_time) å¼€å§‹æ—¶é—´,\n        MAX(b.update_time) ç»“束时间\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\' \n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '0', `is_page` = '0', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '858611931275816960';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:35:52', `update_time` = '2025-04-16 10:35:52', `db_code` = 'btCheckBl', `db_ch_name` = '饼图实检未检比例', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = 'SELECT\n  \'实检人数\' AS title,\n  COUNT( c.cus_sex ) AS \n`VALUE`\n  \nFROM\n  (\n  SELECT\n    a.id,\n    a.dw_id,\n    a.dw_name,\n    a.dw_dept_name \n  FROM\n    tj_dw_dept a \n  WHERE\n    a.deleted = 0 \n    AND a.dw_id = \'${firmId}\'\n  ) aa\n  JOIN ( SELECT * FROM tj_order d WHERE d.deleted = 0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id ) b ON b.firm_id = aa.dw_id \n  AND b.firm_dept_id = aa.id\n  JOIN tj_customer c ON c.cus_id = b.user_id\n  LEFT JOIN ( SELECT COUNT( 1 ) AS total FROM tj_reservation a WHERE a.company_id = \'${firmId}\' ) z ON 1 = 1 UNION ALL\nSELECT\n  \'未检人数\' AS title,\n  z.total - COUNT( c.cus_sex ) AS `VALUE`\nFROM\n  (\n  SELECT\n    a.id,\n    a.dw_id,\n    a.dw_name,\n    a.dw_dept_name \n  FROM\n    tj_dw_dept a \n  WHERE\n    a.deleted = 0 \n    AND a.dw_id = \'${firmId}\'\n  ) aa\n  JOIN ( SELECT * FROM tj_order d WHERE d.deleted = 0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id ) b ON b.firm_id = aa.dw_id \n  AND b.firm_dept_id = aa.id\n  JOIN tj_customer c ON c.cus_id = b.user_id\n  LEFT JOIN ( SELECT COUNT( 1 ) AS total FROM tj_reservation a WHERE a.company_id = \'${firmId}\' ) z ON 1 = 1', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '1', `is_page` = '0', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042300196856037376';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_time` = '2025-04-16 10:35:39', `db_code` = 'btNvBl', `db_ch_name` = '饼图男女比例', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = 'SELECT\n    \'男\' AS title,\n        sum(case when c.cus_sex = \'0\' then 1 else 0 end) AS `value`\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\'\n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1\n \n UNION ALL\n \n SELECT\n        \'女\' AS title,\n        sum(case when c.cus_sex = \'1\' then 1 else 0 end) AS `value`\nFROM\n    (\n    SELECT\n        a.id,\n        a.dw_id,\n        a.dw_name,\n        a.dw_dept_name \n    FROM\n        tj_dw_dept a \n    WHERE\n        a.deleted = 0 \n        AND a.dw_id = \'${firmId}\'\n    ) aa\n    \n    JOIN (SELECT * FROM tj_order d WHERE d.deleted=0 AND d.tj_type <> \'2\' AND d.create_time BETWEEN \'${startTime}\' AND \'${endTime}\' GROUP BY d.user_id )  b ON b.firm_id=aa.dw_id AND b.firm_dept_id = aa.id\n    \n JOIN tj_customer c ON  c.cus_id=b.user_id\n \n LEFT JOIN (\n  SELECT COUNT(1) as total FROM tj_reservation a WHERE a.company_id = \'${firmId}\'\n ) z ON 1 = 1', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '1', `is_page` = '1', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042298604463357952';
UPDATE `jimu_report_db` SET `jimu_report_id` = '858579252534800384', `create_by` = '10001', `update_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_time` = '2025-04-16 10:35:39', `db_code` = 'yichangInfoHzList', `db_ch_name` = '异常详细数据汇总', `db_type` = '0', `db_table_name` = NULL, `db_dyn_sql` = 'SELECT \n    a.pro_name, \n    c.cus_name,\n    o.tj_number,\n    CASE \n         WHEN c.cus_brithday IS NOT NULL AND NULLIF(c.cus_brithday, NULL) IS NOT NULL THEN \n            FLOOR(DATEDIFF(CURDATE(), c.cus_brithday) / 365.25)\n        ELSE NULL\n    END AS age,\n    CASE WHEN c.cus_sex = 0 THEN \'男\' \n    ELSE \'女\' END AS cus_sex,\n    a.temp_result,\n    g.grouping_name\nFROM tj_customer c \nLEFT JOIN tj_order o ON c.cus_id = o.user_id\nLEFT JOIN tj_dw_grouping g ON g.dw_id = o.firm_id \n                           AND g.dw_dept_id = o.firm_dept_id \n                           AND o.group_id = g.id\nLEFT JOIN (\n    SELECT p.pro_id, p.pro_name, od.pro_result AS result, CONCAT(p.pro_name,od.pro_result) AS temp_result, o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_order_detail od ON o.order_id = od.order_id\n    LEFT JOIN tj_project p ON p.pro_id = od.pro_id\n    JOIN sys_dept d ON d.dept_id = p.dept_id\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(od.pro_result, \'\') <> \'\'\n      AND d.org_type = 3\n      AND d.dept_id <> \'550\'\n      AND INSTR(od.pro_result, \'未见异常\') <= 0\n      AND INSTR(od.pro_result, \'未见明显异常\') <= 0\n      AND INSTR(od.pro_result, \'未见占位\') <= 0\n      AND INSTR(od.pro_result, \'未见明显\') <= 0\n      AND INSTR(od.pro_result, \'正常\') <= 0\n      AND INSTR(od.pro_result, \'双侧椎间孔无狭窄\') <= 0\n      AND INSTR(od.pro_result, \'无殊\') <= 0\n    UNION\n    SELECT bgd.jcxmid, bgd.jcxm, bgd.ycbz, \n           CASE WHEN LOCATE(bgd.ycbz, \'↑\') THEN CONCAT(bgd.jcxm, \'偏高\')\n                ELSE CONCAT(bgd.jcxm, \'偏低\') END AS result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN ltkj_hysqd sqd ON o.tj_number = sqd.tjh\n    JOIN ltkj_hybgd bgd ON sqd.tmh = bgd.tmh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND IFNULL(bgd.ycbz, \'\') <> \'\'\n    UNION\n    SELECT yc.pro_id, yc.pro_name, TRIM(yc.jcjg) AS result, \n           REPLACE(TRIM(yc.jcjg), \'\\n\', \'\') AS temp_result, \n           o.user_id\n    FROM tj_order o\n    LEFT JOIN tj_jcycxm yc ON o.tj_number = yc.tjh\n    WHERE o.firm_id = \'${firmId}\'\n    AND o.create_time BETWEEN \'${startTime}\' AND \'${endTime}\'\n      AND yc.pro_id IS NOT NULL\n) a ON a.user_id = c.cus_id\nWHERE IFNULL(a.temp_result, \'\') <> \'\'\nORDER BY a.temp_result DESC\n', `db_key` = NULL, `tb_db_key` = NULL, `tb_db_table_name` = NULL, `java_type` = NULL, `java_value` = NULL, `api_url` = NULL, `api_method` = NULL, `is_list` = '1', `is_page` = '0', `db_source` = '', `db_source_type` = 'mysql', `json_data` = '', `api_convert` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739260616704';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '异常项目', `field_text` = '异常项目', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516491044585472';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '男数量', `field_text` = '男数量', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516491162025984';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '女数量', `field_text` = '女数量', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 2, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516491250106368';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '合计人数', `field_text` = '合计人数', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 3, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516491329798144';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '男百分比', `field_text` = '男百分比', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 4, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041521081148276736';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041516490843258880', `field_name` = '女百分比', `field_text` = '女百分比', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 5, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041521081240551424';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '859573447174152192', `field_name` = 's', `field_text` = 's', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = 0, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859573450949025792';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '859573447174152192', `field_name` = '男', `field_text` = '男', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = 0, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859573453394305024';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '859573447174152192', `field_name` = '女', `field_text` = '女', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 2, `search_flag` = 0, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859573455810224128';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '859573447174152192', `field_name` = 'allnum', `field_text` = '总人数', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 3, `search_flag` = 0, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '879264552793616384';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '实检人数', `field_text` = '实检人数', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 7, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042286110428659712';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '未检人数', `field_text` = '未检人数', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 8, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042288346990936064';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '开始时间', `field_text` = '开始时间', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 2, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '858938880519008256';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '结束时间', `field_text` = '结束时间', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 3, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '858938880862941184';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = 'dw_name', `field_text` = 'dw_name', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 4, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859315015649091584';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = 'dw_dept_name', `field_text` = 'dw_dept_name', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 5, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859315018123730944';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = 'zongshu', `field_text` = 'zongshu', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 6, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859315020598370304';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '男', `field_text` = '男', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '858937737814437888';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:36:03', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '858611931275816960', `field_name` = '女', `field_text` = '女', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '858937738166759424';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:53', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1042300196856037376', `field_name` = 'title', `field_text` = 'title', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042300196990255104';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:53', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1042300196856037376', `field_name` = 'value', `field_text` = 'value', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042300197082529792';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1042298604463357952', `field_name` = 'title', `field_text` = 'title', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042298604601769984';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1042298604463357952', `field_name` = 'value', `field_text` = 'value', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042298604677267456';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'pro_name', `field_text` = 'pro_name', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 0, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739369668608';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'cus_name', `field_text` = 'cus_name', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 1, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739445166080';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'tj_number', `field_text` = 'tj_number', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 2, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739508080640';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'temp_result', `field_text` = 'temp_result', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 3, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739562606592';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'grouping_name', `field_text` = 'grouping_name', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 4, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739621326848';
UPDATE `jimu_report_db_field` SET `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `jimu_report_db_id` = '1041531739260616704', `field_name` = 'age', `field_text` = 'age', `widget_type` = 'String', `widget_width` = NULL, `order_num` = 5, `search_flag` = NULL, `search_mode` = NULL, `dict_code` = NULL, `search_value` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041557683337723904';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041516490843258880', `param_name` = 'firmId', `param_txt` = '单位', `param_value` = '', `order_num` = 1, `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041516491422072832';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041516490843258880', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072294145787985920';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041516490843258880', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:38:03', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072294145867677696';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '859573447174152192', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305754916814848';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '859573447174152192', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305754992312320';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '859573447174152192', `param_name` = 'firmId', `param_txt` = 'firmId', `param_value` = '', `order_num` = 1, `create_by` = '10001', `create_time` = '2025-04-16 10:36:14', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859573458565881856';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '858611931275816960', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305550838759424';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '858611931275816960', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305550905868288';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '858611931275816960', `param_name` = 'firmId', `param_txt` = 'firmId', `param_value` = '', `order_num` = 1, `create_by` = '10001', `create_time` = '2025-04-16 10:36:04', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '859229976093548544';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042300196856037376', `param_name` = 'firmId', `param_txt` = 'firmId', `param_value` = '', `order_num` = 1, `create_by` = '10001', `create_time` = '2025-04-16 10:35:53', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042300197174804480';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042300196856037376', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:35:53', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305368659165184';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042300196856037376', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:35:53', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072305368734662656';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042298604463357952', `param_name` = 'firmId', `param_txt` = 'firmId', `param_value` = '', `order_num` = 1, `create_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1042298604756959232';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042298604463357952', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072296077134954496';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1042298604463357952', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:35:39', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072296077210451968';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041531739260616704', `param_name` = 'firmId', `param_txt` = 'firmId', `param_value` = '', `order_num` = 2, `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = NULL, `search_mode` = 7, `dict_code` = NULL, `search_format` = NULL, `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1041531739755544576';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041531739260616704', `param_name` = 'startTime', `param_txt` = '开始时间', `param_value` = '=dateStr(\'yyyy-MM-dd\', -30)', `order_num` = 3, `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072294642875924480';
UPDATE `jimu_report_db_param` SET `jimu_report_head_id` = '1041531739260616704', `param_name` = 'endTime', `param_txt` = '结束时间', `param_value` = '=dateStr(\'yyyy-MM-dd\')', `order_num` = 4, `create_by` = '10001', `create_time` = '2025-04-16 10:35:26', `update_by` = NULL, `update_time` = NULL, `search_flag` = 1, `widget_type` = 'date', `search_mode` = NULL, `dict_code` = NULL, `search_format` = 'yyyy-MM-dd', `ext_json` = '', `create_id` = NULL, `update_id` = NULL WHERE `id` = '1072294642943033344';
-- é‡‘堆成写死医师工作量统计
INSERT INTO `jimu_report` (`id`, `code`, `name`, `note`, `status`, `type`, `json_str`, `api_url`, `thumb`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `api_method`, `api_code`, `template`, `view_count`, `css_str`, `js_str`, `tenant_id`, `print_type`, `is_start`, `create_id`, `update_id`) VALUES ('1075551507869106176', '20250425100700', '医师工作量统计', NULL, NULL, 'datainfo', '{\"loopBlockList\":[],\"area\":{\"sri\":5,\"sci\":2,\"eri\":5,\"eci\":2,\"width\":100,\"height\":25},\"excel_config_id\":\"1075551507869106176\",\"printConfig\":{\"paper\":\"A4\",\"width\":210,\"height\":297,\"definition\":1,\"isBackend\":false,\"marginX\":10,\"marginY\":10,\"layout\":\"portrait\",\"printCallBackUrl\":\"\"},\"zonedEditionList\":[],\"rows\":{\"0\":{\"cells\":{\"0\":{\"merge\":[3,6],\"height\":100,\"text\":\"医师工作量统计\",\"style\":4},\"1\":{\"style\":5,\"text\":\" \"},\"2\":{\"style\":5,\"text\":\" \"},\"3\":{\"style\":5,\"text\":\" \"},\"4\":{\"style\":5,\"text\":\" \"},\"5\":{\"style\":5,\"text\":\" \"},\"6\":{\"style\":5,\"text\":\" \"}}},\"1\":{\"cells\":{\"0\":{\"style\":5,\"text\":\" \"},\"1\":{\"style\":5,\"text\":\" \"},\"2\":{\"style\":5,\"text\":\" \"},\"3\":{\"style\":5,\"text\":\" \"},\"4\":{\"style\":5,\"text\":\" \"},\"5\":{\"style\":5,\"text\":\" \"},\"6\":{\"style\":5,\"text\":\" \"}}},\"2\":{\"cells\":{\"0\":{\"style\":5,\"text\":\" \"},\"1\":{\"style\":5,\"text\":\" \"},\"2\":{\"style\":5,\"text\":\" \"},\"3\":{\"style\":5,\"text\":\" \"},\"4\":{\"style\":5,\"text\":\" \"},\"5\":{\"style\":5,\"text\":\" \"},\"6\":{\"style\":5,\"text\":\" \"}}},\"3\":{\"cells\":{\"0\":{\"style\":5,\"text\":\" \"},\"1\":{\"style\":5,\"text\":\" \"},\"2\":{\"style\":5,\"text\":\" \"},\"3\":{\"style\":5,\"text\":\" \"},\"4\":{\"style\":5,\"text\":\" \"},\"5\":{\"style\":5,\"text\":\" \"},\"6\":{\"style\":5,\"text\":\" \"}}},\"4\":{\"cells\":{\"1\":{\"style\":11,\"text\":\" åºå·\"},\"2\":{\"style\":11,\"text\":\"工号\"},\"3\":{\"style\":11,\"text\":\" åŒ»ç”Ÿ \"},\"4\":{\"style\":11,\"text\":\" äººæ•°\",\"merge\":[0,1],\"height\":25},\"5\":{\"style\":12,\"text\":\" \"}}},\"5\":{\"cells\":{\"1\":{\"style\":8,\"text\":\"=row(1)\"},\"2\":{\"text\":\"#{ctResult.gh}\",\"style\":8},\"3\":{\"text\":\"#{ctResult.name}\",\"style\":8},\"4\":{\"style\":8,\"text\":\"#{ctResult.num}\",\"merge\":[0,1],\"height\":25}}},\"7\":{\"cells\":{\"11\":{\"text\":\"\"}}},\"8\":{\"cells\":{\"1\":{\"style\":11,\"text\":\"序号 \"},\"2\":{\"style\":11,\"text\":\"工号\"},\"3\":{\"style\":11,\"text\":\"  åŒ»ç”Ÿ\"},\"4\":{\"style\":11,\"text\":\" äººæ•°\",\"merge\":[0,1],\"height\":25},\"5\":{\"style\":16,\"text\":\" \"},\"6\":{\"text\":\"\"}}},\"9\":{\"cells\":{\"1\":{\"style\":8,\"text\":\"=row(2)\"},\"2\":{\"style\":8,\"text\":\"#{bcResult.gh}\"},\"3\":{\"style\":8,\"text\":\"#{bcResult.name}\"},\"4\":{\"style\":8,\"text\":\"#{bcResult.num}\",\"merge\":[0,1],\"height\":25},\"6\":{\"text\":\"\"}}},\"len\":100},\"dbexps\":[],\"dicts\":[],\"rpbar\":{\"show\":true,\"pageSize\":\"\",\"btnList\":[]},\"fixedPrintHeadRows\":[],\"fixedPrintTailRows\":[],\"freeze\":\"A1\",\"dataRectWidth\":700,\"displayConfig\":{},\"background\":false,\"name\":\"sheet1\",\"autofilter\":{},\"styles\":[{\"font\":{\"bold\":true}},{\"font\":{\"bold\":true},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":15},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":15}},{\"font\":{\"bold\":true,\"size\":22},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":22}},{\"bgcolor\":\"#deeaf6\"},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"font\":{\"bold\":true}},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"font\":{\"bold\":true,\"size\":12}},{\"font\":{\"bold\":true,\"size\":12}},{\"bgcolor\":\"#deeaf6\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\",\"font\":{\"size\":12}},{\"font\":{\"size\":12}},{\"bgcolor\":\"#deeaf6\",\"font\":{\"size\":12}},{\"bgcolor\":\"#deeaf6\",\"font\":{\"size\":12,\"bold\":true}},{\"bgcolor\":\"#deeaf6\",\"font\":{\"size\":12,\"bold\":true},\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}}],\"validations\":[],\"cols\":{\"len\":50},\"merges\":[\"A1:G4\",\"E5:F5\",\"E6:F6\",\"E9:F9\",\"E10:F10\"]}', NULL, NULL, '10001', '2025-04-25 10:07:00', '10001', '2025-04-25 10:47:43', 0, NULL, NULL, 0, 7, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1075565490034475008', '1075551507869106176', '10001', '10001', '2025-04-25 10:39:53', '2025-04-25 10:39:53', 'ctResult', '查体统计', '0', NULL, 'SELECT\n    r.update_by as name,\n    COUNT(r.remark_id) AS num,\n    u.user_name AS gh\n  FROM\n    tj_order_remark r\n    JOIN sys_user u ON r.update_id = u.user_id\n  WHERE\n    r.pro_id = 1898989248524386306\n    AND r.doctor_name IN (\'2002\', \'2077\')\n    AND r.update_time BETWEEN \'${start}\' AND \'${end}\'\n  GROUP BY r.doctor_name;', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '1', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1075566668306743296', '1075551507869106176', '10001', '10001', '2025-04-25 10:37:27', '2025-04-25 10:39:53', 'bcResult', 'B超统计', '0', NULL, 'SELECT\n  shysxm AS `name`,\n  COUNT( id ) AS num,\n  u.user_name AS gh\nFROM\n  ltkj_exam_jcbgd j\n  LEFT JOIN sys_user u ON j.shysxm = u.nick_name\nWHERE\n  LOCATE( \'1878964342340526305\', xmdm ) \n  AND j.sqsj BETWEEN \'${start}\' AND \'${end}\'\nGROUP BY\n  shysxm', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075565490395185152', '10001', '2025-04-25 10:39:53', NULL, NULL, '1075565490034475008', 'num', 'num', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075565490550374400', '10001', '2025-04-25 10:39:53', NULL, NULL, '1075565490034475008', 'name', 'name', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075572969619357696', '10001', '2025-04-25 10:39:53', NULL, NULL, '1075565490034475008', 'gh', 'gh', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075571471204253696', '10001', '2025-04-25 10:37:27', NULL, NULL, '1075566668306743296', 'name', 'name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075571471351054336', '10001', '2025-04-25 10:37:27', NULL, NULL, '1075566668306743296', 'num', 'num', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075572614131122176', '10001', '2025-04-25 10:37:27', NULL, NULL, '1075566668306743296', 'gh', 'gh', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075573671439663104', '1075565490034475008', 'start', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 1, '10001', '2025-04-25 10:39:53', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075573671582269440', '1075565490034475008', 'end', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 2, '10001', '2025-04-25 10:39:53', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075574286374961152', '1075566668306743296', 'start', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 1, '10001', '2025-04-25 10:37:27', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1075574286513373184', '1075566668306743296', 'end', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 2, '10001', '2025-04-25 10:37:27', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
-- äººå‘˜ç¼´è´¹ç»Ÿè®¡
INSERT INTO `jimu_report` (`id`, `code`, `name`, `note`, `status`, `type`, `json_str`, `api_url`, `thumb`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `api_method`, `api_code`, `template`, `view_count`, `css_str`, `js_str`, `tenant_id`, `print_type`, `is_start`, `create_id`, `update_id`) VALUES ('1072318375476887552', '20250416112329', '人员缴费统计', NULL, NULL, 'datainfo', '{\"loopBlockList\":[],\"area\":{\"sri\":5,\"sci\":3,\"eri\":5,\"eci\":3,\"width\":100,\"height\":25},\"excel_config_id\":\"1072318375476887552\",\"printConfig\":{\"paper\":\"A4\",\"width\":210,\"height\":297,\"definition\":1,\"isBackend\":false,\"marginX\":10,\"marginY\":10,\"layout\":\"portrait\",\"printCallBackUrl\":\"\"},\"zonedEditionList\":[],\"rows\":{\"0\":{\"cells\":{\"0\":{\"merge\":[2,6],\"height\":75,\"text\":\"人员缴费统计\",\"style\":9}}},\"1\":{\"cells\":{}},\"2\":{\"cells\":{}},\"4\":{\"cells\":{\"1\":{\"style\":14,\"text\":\"序号\"},\"2\":{\"style\":14,\"text\":\"姓名\"},\"3\":{\"style\":14,\"text\":\"性别\"},\"4\":{\"style\":14,\"text\":\"缴费金额\"},\"5\":{\"style\":14,\"text\":\"体检日期\"}}},\"5\":{\"cells\":{\"1\":{\"style\":17,\"text\":\"=row(1)\"},\"2\":{\"style\":11,\"text\":\"#{result.cus_name}\"},\"3\":{\"style\":11,\"text\":\"#{result.sex}\"},\"4\":{\"style\":11,\"text\":\"#{result.paid_in}\"},\"5\":{\"style\":11,\"text\":\"#{result.create_time}\"},\"7\":{\"text\":\"\"}}},\"7\":{\"cells\":{\"3\":{\"text\":\"总计:\",\"style\":15},\"4\":{\"text\":\"=SUM(D6)\"}}},\"len\":100},\"dbexps\":[],\"dicts\":[],\"rpbar\":{\"show\":true,\"pageSize\":\"\",\"btnList\":[]},\"fixedPrintHeadRows\":[],\"fixedPrintTailRows\":[],\"freeze\":\"A1\",\"dataRectWidth\":640,\"displayConfig\":{},\"background\":false,\"name\":\"sheet1\",\"autofilter\":{},\"styles\":[{\"font\":{\"bold\":true}},{\"font\":{\"bold\":true},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":12},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":12}},{\"font\":{\"bold\":true,\"size\":14},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":14}},{\"font\":{\"bold\":true,\"size\":14},\"align\":\"center\",\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"font\":{\"bold\":true,\"size\":16},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":16}},{\"font\":{\"bold\":true,\"size\":18},\"align\":\"center\"},{\"font\":{\"bold\":true,\"size\":18}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\",\"align\":\"center\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\",\"align\":\"center\",\"font\":{\"bold\":true}},{\"align\":\"right\"},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"bgcolor\":\"#deeaf6\",\"font\":{\"bold\":true}},{\"border\":{\"bottom\":[\"thin\",\"#000\"],\"top\":[\"thin\",\"#000\"],\"left\":[\"thin\",\"#000\"],\"right\":[\"thin\",\"#000\"]},\"align\":\"center\"},{\"bgcolor\":\"#deeaf6\"}],\"validations\":[],\"cols\":{\"4\":{\"width\":140},\"len\":50},\"merges\":[\"A1:G3\"]}', NULL, NULL, '10001', '2025-04-16 11:23:30', '10001', '2025-04-17 09:06:24', 0, NULL, NULL, 0, 38, NULL, 'function init(){\n    let headers = { \'hospId\': \'pbkwyy\'};\n    let params = {params: {pid: \'\',type:\'1\'},headers: headers}\n    // let url = \'http://192.168.1.2:5011/reservation/reservation/linkage\'\n    let url = \'http://10.100.100.117:5101/ltkj-admin/reservation/reservation/linkage\'\n    $http.metaGet(url ,params).then(res=>{\n        let options =  res.data;\n        this.updateSelectOptions(\'result\', \'firmId\', options)\n    })\n}\n', NULL, NULL, NULL, NULL, NULL);
INSERT INTO `jimu_report_db` (`id`, `jimu_report_id`, `create_by`, `update_by`, `create_time`, `update_time`, `db_code`, `db_ch_name`, `db_type`, `db_table_name`, `db_dyn_sql`, `db_key`, `tb_db_key`, `tb_db_table_name`, `java_type`, `java_value`, `api_url`, `api_method`, `is_list`, `is_page`, `db_source`, `db_source_type`, `json_data`, `api_convert`, `create_id`, `update_id`) VALUES ('1072324253588422656', '1072318375476887552', '10001', '10001', '2025-04-17 09:04:14', '2025-04-17 09:04:14', 'result', '结果', '0', NULL, 'SELECT\n  c.cus_name,\n  o.create_time,\n  w.paid_in,\nCASE\n    WHEN c.cus_sex = \'0\' THEN\n    \'男\' \n    WHEN c.cus_sex = \'1\' THEN\n    \'女\' ELSE \'未知\' \n  END AS sex ,\n  c.cus_id,\n  SUM(w.paid_in) AS price\nFROM\n  tj_order o\n  LEFT JOIN tj_flowing_water w ON o.order_id = w.order_id\n  JOIN tj_customer c ON o.user_id = c.cus_id\nWHERE\n((\'${type}\' = \'\' OR \'${type}\' = \'0\') OR o.tj_type = \'${type}\')\n AND o.create_time BETWEEN \'${startTime} 00:00:00\' AND \'${endTime} 23:59:59\'\n AND (\'${firmId}\' = \'\' OR o.firm_id = \'${firmId}\')\n AND (\'${p_sex}\' = \'\' OR c.cus_sex = \'${p_sex}\')\n AND w.deleted = 0 AND o.deleted = 0\nGROUP BY c.cus_id\n\n', NULL, NULL, NULL, NULL, NULL, NULL, NULL, '1', '0', '', 'mysql', '', '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324253752000512', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'cus_name', 'cus_name', 'String', NULL, 0, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324253848469504', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'create_time', 'create_time', 'String', NULL, 1, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324253949132800', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'paid_in', 'paid_in', 'String', NULL, 2, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072650631798095872', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'price', 'price', 'String', NULL, 3, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072650631869399040', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'sex', 'sex', 'String', NULL, 4, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_field` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `jimu_report_db_id`, `field_name`, `field_text`, `widget_type`, `widget_width`, `order_num`, `search_flag`, `search_mode`, `dict_code`, `search_value`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072650631953285120', '10001', '2025-04-17 09:04:14', NULL, NULL, '1072324253588422656', 'cus_id', 'cus_id', 'String', NULL, 5, NULL, NULL, NULL, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324254041407488', '1072324253588422656', 'type', '体检类型', '0', 1, '10001', '2025-04-17 09:04:14', NULL, NULL, 1, 'string', 4, 'tj_type', NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324254133682176', '1072324253588422656', 'startTime', '开始时间', '=dateStr(\'yyyy-MM-dd\', -30)', 2, '10001', '2025-04-17 09:04:14', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324254217568256', '1072324253588422656', 'endTime', '结束时间', '=dateStr(\'yyyy-MM-dd\')', 3, '10001', '2025-04-17 09:04:14', NULL, NULL, 1, 'date', NULL, NULL, 'yyyy-MM-dd', '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072324254297260032', '1072324253588422656', 'firmId', '单位', '', 4, '10001', '2025-04-17 09:04:14', NULL, NULL, 1, 'string', 7, NULL, NULL, '', NULL, NULL);
INSERT INTO `jimu_report_db_param` (`id`, `jimu_report_head_id`, `param_name`, `param_txt`, `param_value`, `order_num`, `create_by`, `create_time`, `update_by`, `update_time`, `search_flag`, `widget_type`, `search_mode`, `dict_code`, `search_format`, `ext_json`, `create_id`, `update_id`) VALUES ('1072652038089506816', '1072324253588422656', 'p_sex', '性别', '', 5, '10001', '2025-04-17 09:04:14', NULL, NULL, 1, NULL, 4, 'sex', NULL, '', NULL, NULL);
-- è½¯ä»¶æŠ“图上传接口 éœ€è¦ä¸Šä¼ çš„图片视图
CREATE view  v_gnkssctp
as
SELECT (case when a.his_xmdm='8522' then 'xdt' else '' end) gnlx,concat(c.cus_name,'_',a.id,'.jpg') picname
FROM ltkj_jianchajianyan_tree a
left join tj_order b  on b.card_id = a.card_id join tj_customer c on c.cus_id = b.user_id
left join sys_attachment d on d.old_file_name<>concat(c.cus_name,'_',a.id,'.jpg')
where a.his_xmdm  in ('8522','gmd');
ltkj-admin/src/main/resources/sql/Ö°Òµ²¡.sql
New file
@@ -0,0 +1,23 @@
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `deleted`, `create_id`, `update_id`) VALUES (5, '职业个人', '5', 'dict_team', NULL, 'default', 'N', '0', '超级管理员', '2025-05-09 08:55:46', '', NULL, NULL, 0, NULL, NULL);
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `deleted`, `create_id`, `update_id`) VALUES (6, '职业团队', '6', 'dict_team', NULL, 'default', 'N', '0', '超级管理员', '2025-05-09 08:55:58', '', NULL, NULL, 0, NULL, NULL);
ALTER TABLE tj_ask_medical_history ADD COLUMN medical_history_ids VARCHAR(255) NULL BEFORE medical_history;
ALTER TABLE tj_ask_medical_history ADD COLUMN medical_history_other TEXT NULL AFTER medical_history;
ALTER TABLE tj_ask_medical_history MODIFY COLUMN medical_history TEXT;
ALTER TABLE tj_ask_medical_history ADD COLUMN dwmc TEXT NULL;
ALTER TABLE tj_ask_medical_history ADD COLUMN ygdw TEXT NULL;
ALTER TABLE tj_ask_historys ADD COLUMN data_type TINYINT(1) NOT NULL COMMENT '数据类型 1病史信息 2症状信息';
INSERT INTO `sys_config` (`config_name`, `config_key`, `config_value`, `config_type`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`, `deleted`, `create_id`, `update_id`)
VALUES ('职业体检类型', 'zhiye_tj_type', '5,6', 'Y', '10001', '2025-05-12 16:14:56', '', NULL, '英文逗号分隔', 0, NULL, NULL);
ALTER TABLE tj_order ADD COLUMN zhiye_jhgln VARCHAR(255) NULL COMMENT '接害工龄年';
ALTER TABLE tj_order ADD COLUMN zhiye_jhgly VARCHAR(255) NULL COMMENT '接害工龄月';
ALTER TABLE tj_order ADD COLUMN zhiye_ksjhrq DATETIME NULL COMMENT '开始接害日期';
ALTER TABLE tj_order ADD COLUMN zhiye_gh VARCHAR(255) NULL COMMENT '工号';
ALTER TABLE tj_order ADD COLUMN zhiye_cj VARCHAR(255) NULL COMMENT '车间';
ALTER TABLE tj_order ADD COLUMN zhiye_jl VARCHAR(255) NULL COMMENT '职业结论';
ALTER TABLE tj_order ADD COLUMN zhiye_jg VARCHAR(255) NULL COMMENT '职业结果';
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskHistorys.java
@@ -88,6 +88,15 @@
    @ApiModelProperty(value = "疾病类型")
    private String type;
    private Integer dataType;
    public Long getIcdId() {
        return icdId;
    }
    public void setIcdId(Long icdId) {
        this.icdId = icdId;
    }
    public void setDiseaseId(Long diseaseId) {
        this.diseaseId = diseaseId;
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskMedicalHistory.java
@@ -255,4 +255,26 @@
    @ApiModelProperty(value = "接害工龄")
    private String jhgl;
    /**
     * æ—¢å¾€ç—…史 ids
     */
    private String medicalHistoryIds;
    /**
     * æ—¢å¾€ç—…史 å…¶ä»–备注
     */
    private String medicalHistoryOther;
    /**
     * å•位名称
     */
    private String dwmc;
    /**
     * ç”¨å·¥å•位
     */
    private String ygdw;
    @TableField(exist = false)
    private List<TjAskHistorys> zhiyezzList;
}
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjOrder.java
@@ -467,6 +467,41 @@
    @Excel(name = "体检状态")
    private String zt;
    /**
     * æŽ¥å®³å·¥é¾„å¹´
     */
    private String zhiyeJhgln;
    /**
     * æŽ¥å®³å·¥é¾„月
     */
    private String zhiyeJhgly;
    /**
     * å¼€å§‹æŽ¥å®³æ—¥æœŸ
     */
    private Date zhiyeKsjhrq;
    /**
     * å·¥å·
     */
    private String zhiyeGh;
    /**
     * è½¦é—´
     */
    private String zhiyeCj;
    /**
     * èŒä¸šç»“论
     */
    private String zhiyeJl;
    /**
     * èŒä¸šç»“æžœ
     */
    private String zhiyeJg;
    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderDetailMapper.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ltkj.hosp.domain.TjOrderDetail;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.vo.ProFcListVo;
import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
import org.apache.ibatis.annotations.*;
@@ -295,4 +296,11 @@
            "a.deleted=1 \n" +
            "WHERE a.order_detail_id=#{id}")
    void updateTjOrderDetailDel(@Param("id") String id);
    @Select("SELECT p.pro_id,p.pro_name,p.pro_parent_id,o.order_id,p.sl * p.pro_price as price,d.dept_id,d.dept_name\n" +
            " FROM tj_order_detail o \n" +
            " LEFT JOIN tj_project p ON o.pro_id = p.pro_id\n" +
            " LEFT JOIN sys_dept d ON p.dept_id = d.dept_id\n" +
            "  WHERE order_id = #{orderId} AND p.pro_parent_id <>0 AND o.is_return = #{type}")
    List<ProFcListVo> getFcList(@Param("orderId") Long orderId, @Param("type") Integer type);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderDetailService.java
@@ -4,9 +4,11 @@
import java.util.Map;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.hosp.domain.TjOrderDetail;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.vo.ProFcListVo;
import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
import org.apache.ibatis.annotations.Select;
@@ -146,4 +148,8 @@
    void updateTjOrderDetailsFlowingWaterIdByJxbz(String orderId, String jxbz,String ls);
    void updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String orderId,String ls);
    List<ProFcListVo> getFcList(Long orderId, Integer type);
    AjaxResult updFcPro(String json);
}
ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderDetailServiceImpl.java
@@ -1,13 +1,20 @@
package com.ltkj.hosp.service.impl;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.core.domain.entity.SysUser;
import com.ltkj.common.utils.DateUtils;
import com.ltkj.hosp.domain.TjProject;
import com.ltkj.hosp.vo.ProFcListVo;
import com.ltkj.hosp.vodomain.ShenGaoTiZhongVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -15,6 +22,7 @@
import com.ltkj.hosp.domain.TjOrderDetail;
import com.ltkj.hosp.service.ITjOrderDetailService;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
/**
 * ä½“检项目明细Service业务层处理
@@ -244,4 +252,55 @@
    public void updateTjOrderDetailsFlowingWaterIdByJxbzisnull(String orderId,String ls) {
        tjOrderDetailMapper.updateTjOrderDetailsFlowingWaterIdByJxbzisnull(orderId,ls);
    }
    @Override
    public List<ProFcListVo> getFcList(Long orderId, Integer type) {
        return tjOrderDetailMapper.getFcList(orderId,type);
    }
    @Transactional
    @Override
    public AjaxResult updFcPro(String json) {
        try {
            JSONObject entries = JSONUtil.parseObj(json);
            System.out.println(JSONUtil.toJsonStr(entries));
            String orderId = entries.getStr("orderId");
            JSONArray array = entries.getJSONArray("data");
            ArrayList<String> fcList = new ArrayList<>();
            ArrayList<String> notFcList = new ArrayList<>();
            for (Object o : array) {
                JSONObject object = (JSONObject) o;
                String proId = object.getStr("proId");
                Integer type = object.getInt("type");
                if (type == 1) {
                    fcList.add(proId);
                } else {
                    notFcList.add(proId);
                }
            }
//            System.out.println("fcList = " + fcList);
//            System.out.println("notFcList = " + notFcList);
//            if (true)
//                return AjaxResult.error();
            if (!fcList.isEmpty()){
                LambdaUpdateWrapper<TjOrderDetail> wrapper = new LambdaUpdateWrapper<>();
                wrapper.set(TjOrderDetail::getIsReturn,1);
                wrapper.eq(TjOrderDetail::getOrderId,orderId);
                wrapper.in(TjOrderDetail::getProId,fcList);
                update(wrapper);
            }
            if (!notFcList.isEmpty()){
                LambdaUpdateWrapper<TjOrderDetail> wrapper = new LambdaUpdateWrapper<>();
                wrapper.set(TjOrderDetail::getIsReturn,0);
                wrapper.eq(TjOrderDetail::getOrderId,orderId);
                wrapper.in(TjOrderDetail::getProId,notFcList);
                update(wrapper);
            }
        }catch (Exception e){
            log.error(String.valueOf(e)+e.getMessage());
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return AjaxResult.error();
        }
        return AjaxResult.success();
    }
}
ltkj-hosp/src/main/java/com/ltkj/hosp/vo/ProFcListVo.java
New file
@@ -0,0 +1,19 @@
package com.ltkj.hosp.vo;
import lombok.Data;
/**
 * @Company: è¥¿å®‰è·¯æ³°ç§‘技有限公司
 * @Author: zhaowenxuan
 * @Date: 2025/5/9 14:35
 */
@Data
public class ProFcListVo {
    private String proParentId;
    private String proId;
    private String price;
    private String deptName;
    private String deptId;
    private String orderId;
    private String proName;
}
ltkj-hosp/src/main/resources/mapper/hosp/TjAskMedicalHistoryMapper.xml
@@ -5,315 +5,428 @@
<mapper namespace="com.ltkj.hosp.mapper.TjAskMedicalHistoryMapper">
    <resultMap type="TjAskMedicalHistory" id="TjAskMedicalHistoryResult">
            <result property="askId" column="ask_id"/>
            <result property="cusId" column="cus_id"/>
            <result property="cusName" column="cus_name"/>
            <result property="openId" column="open_id"/>
            <result property="work" column="work"/>
            <result property="workStatus" column="work_status"/>
            <result property="medicalHistory" column="medical_history"/>
            <result property="chuchao" column="chuchao"/>
            <result property="jingqi" column="jingqi"/>
            <result property="zhouqi" column="zhouqi"/>
            <result property="mociage" column="mociage"/>
            <result property="zinv" column="zinv"/>
            <result property="liuchan" column="liuchan"/>
            <result property="zaochan" column="zaochan"/>
            <result property="sichan" column="sichan"/>
            <result property="yichangtai" column="yichangtai"/>
            <result property="xiyan" column="xiyan"/>
            <result property="xiyanpinlv" column="xiyanpinlv"/>
            <result property="xiyanyear" column="xiyanyear"/>
            <result property="yinjiu" column="yinjiu"/>
            <result property="yinjiupinlv" column="yinjiupinlv"/>
            <result property="yinjiuyear" column="yinjiuyear"/>
            <result property="qita" column="qita"/>
            <result property="remark" column="remark"/>
            <result property="createBy" column="create_by"/>
            <result property="createTime" column="create_time"/>
            <result property="updateBy" column="update_by"/>
            <result property="updateTime" column="update_time"/>
            <result property="deleted" column="deleted"/>
            <result property="fromBy" column="from_by"/>
            <result property="zzsjj" column="zzsjj" typeHandler="com.ltkj.common.mybatis.JsonStringArrayTypeHandler"/>
        <result property="askId" column="ask_id"/>
        <result property="cusId" column="cus_id"/>
        <result property="cusName" column="cus_name"/>
        <result property="openId" column="open_id"/>
        <result property="work" column="work"/>
        <result property="workStatus" column="work_status"/>
        <result property="medicalHistory" column="medical_history"/>
        <result property="chuchao" column="chuchao"/>
        <result property="jingqi" column="jingqi"/>
        <result property="zhouqi" column="zhouqi"/>
        <result property="mociage" column="mociage"/>
        <result property="zinv" column="zinv"/>
        <result property="liuchan" column="liuchan"/>
        <result property="zaochan" column="zaochan"/>
        <result property="sichan" column="sichan"/>
        <result property="yichangtai" column="yichangtai"/>
        <result property="xiyan" column="xiyan"/>
        <result property="xiyanpinlv" column="xiyanpinlv"/>
        <result property="xiyanyear" column="xiyanyear"/>
        <result property="yinjiu" column="yinjiu"/>
        <result property="yinjiupinlv" column="yinjiupinlv"/>
        <result property="yinjiuyear" column="yinjiuyear"/>
        <result property="qita" column="qita"/>
        <result property="remark" column="remark"/>
        <result property="createBy" column="create_by"/>
        <result property="createTime" column="create_time"/>
        <result property="updateBy" column="update_by"/>
        <result property="updateTime" column="update_time"/>
        <result property="deleted" column="deleted"/>
        <result property="fromBy" column="from_by"/>
        <result property="zzsjj" column="zzsjj" typeHandler="com.ltkj.common.mybatis.JsonStringArrayTypeHandler"/>
        <result property="contactPoison" column="contact_poison"/>
        <result property="gongZhong" column="gong_zhong"/>
        <result property="gongLing" column="gong_ling"/>
        <result property="jhgl" column="jhgl"/>
        <result property="medicalHistoryIds" column="medical_history_ids"/>
        <result property="medicalHistoryOther" column="medical_history_other"/>
        <result property="dwmc" column="dwmc"/>
        <result property="ygdw" column="ygdw"/>
    </resultMap>
        <resultMap id="TjAskMedicalHistoryTjAskHistorysResult" type="TjAskMedicalHistory" extends="TjAskMedicalHistoryResult">
            <collection property="tjAskHistorysList" notNullColumn="sub_disease_id"
                        javaType="java.util.List" resultMap="TjAskHistorysResult"/>
        </resultMap>
    <resultMap id="TjAskMedicalHistoryTjAskHistorysResult" type="TjAskMedicalHistory"
               extends="TjAskMedicalHistoryResult">
        <collection property="tjAskHistorysList" notNullColumn="sub_disease_id"
                    javaType="java.util.List" resultMap="TjAskHistorysResult"/>
    </resultMap>
        <resultMap type="TjAskHistorys" id="TjAskHistorysResult">
                <result property="diseaseId" column="sub_disease_id"/>
                <result property="askId" column="sub_ask_id"/>
                <result property="diseaseName" column="sub_disease_name"/>
                <result property="diseaseData" column="sub_disease_data"/>
                <result property="diseaseCompany" column="sub_disease_company"/>
                <result property="isOk" column="sub_is_ok"/>
                <result property="remark" column="sub_remark"/>
                <result property="createBy" column="sub_create_by"/>
                <result property="createTime" column="sub_create_time"/>
                <result property="updateBy" column="sub_update_by"/>
                <result property="updateTime" column="sub_update_time"/>
                <result property="deleted" column="sub_deleted"/>
        </resultMap>
    <resultMap type="TjAskHistorys" id="TjAskHistorysResult">
        <result property="diseaseId" column="sub_disease_id"/>
        <result property="askId" column="sub_ask_id"/>
        <result property="diseaseName" column="sub_disease_name"/>
        <result property="diseaseData" column="sub_disease_data"/>
        <result property="diseaseCompany" column="sub_disease_company"/>
        <result property="isOk" column="sub_is_ok"/>
        <result property="remark" column="sub_remark"/>
        <result property="createBy" column="sub_create_by"/>
        <result property="createTime" column="sub_create_time"/>
        <result property="updateBy" column="sub_update_by"/>
        <result property="updateTime" column="sub_update_time"/>
        <result property="deleted" column="sub_deleted"/>
    </resultMap>
    <sql id="selectTjAskMedicalHistoryVo">
        select ask_id, cus_id, cus_name, work, work_status, medical_history, chuchao, jingqi, zhouqi, mociage, zinv, liuchan,
               zaochan, sichan, yichangtai, xiyan, xiyanpinlv, xiyanyear, yinjiu, yinjiupinlv, yinjiuyear, qita, remark, create_by,
               create_time, update_by, update_time, deleted,from_by,zzsjj,contact_poison,gong_zhong,gong_ling,jhgl
        select ask_id,
               cus_id,
               cus_name,
               work,
               work_status,
               medical_history_ids,
               medical_history,
               medical_history_other,
               chuchao,
               jingqi,
               zhouqi,
               mociage,
               zinv,
               liuchan,
               zaochan,
               sichan,
               yichangtai,
               xiyan,
               xiyanpinlv,
               xiyanyear,
               yinjiu,
               yinjiupinlv,
               yinjiuyear,
               qita,
               remark,
               create_by,
               create_time,
               update_by,
               update_time,
               deleted,
               from_by,
               zzsjj,
               contact_poison,
               gong_zhong,
               gong_ling,
               jhgl,
               dwmc,
               ygdw
        from tj_ask_medical_history
    </sql>
    <select id="selectTjAskMedicalHistoryList" parameterType="TjAskMedicalHistory" resultMap="TjAskMedicalHistoryResult">
    <select id="selectTjAskMedicalHistoryList" parameterType="TjAskMedicalHistory"
            resultMap="TjAskMedicalHistoryResult">
        <include refid="selectTjAskMedicalHistoryVo"/>
        <where>
                        <if test="cusName != null  and cusName != ''">
                            and cus_name like concat('%', #{cusName}, '%')
                        </if>
            <if test="cusName != null  and cusName != ''">
                and cus_name like concat('%', #{cusName}, '%')
            </if>
        </where>
    </select>
    <select id="selectTjAskMedicalHistoryByAskId" parameterType="Long"
            resultMap="TjAskMedicalHistoryTjAskHistorysResult">
            select a.ask_id, a.cus_id, a.cus_name, a.work, a.work_status, a.medical_history, a.chuchao, a.jingqi, a.zhouqi, a.mociage, a.zinv, a.liuchan, a.zaochan, a.sichan, a.yichangtai, a.xiyan, a.xiyanpinlv, a.xiyanyear, a.yinjiu, a.yinjiupinlv, a.yinjiuyear, a.qita, a.remark, a.create_by, a.create_time, a.update_by, a.update_time, a.deleted, a.from_by,
 b.disease_id as
                sub_disease_id, b.ask_id as
                sub_ask_id, b.disease_name as
                sub_disease_name, b.disease_data as
                sub_disease_data, b.disease_company as
                sub_disease_company, b.is_ok as
                sub_is_ok, b.remark as
                sub_remark, b.create_by as
                sub_create_by, b.create_time as
                sub_create_time, b.update_by as
                sub_update_by, b.update_time as
                sub_update_time, b.deleted as
                sub_deleted
            from tj_ask_medical_history a
            left join tj_ask_historys b on b.ask_id = a.ask_id
            where a.ask_id = #{askId}
        select a.ask_id,
               a.cus_id,
               a.cus_name,
               a.work,
               a.work_status,
               a.medical_history_ids,
               a.medical_history,
               a.medical_history_other,
               a.chuchao,
               a.jingqi,
               a.zhouqi,
               a.mociage,
               a.zinv,
               a.liuchan,
               a.zaochan,
               a.sichan,
               a.yichangtai,
               a.xiyan,
               a.xiyanpinlv,
               a.xiyanyear,
               a.yinjiu,
               a.yinjiupinlv,
               a.yinjiuyear,
               a.qita,
               a.remark,
               a.create_by,
               a.create_time,
               a.update_by,
               a.update_time,
               a.deleted,
               a.from_by,
               b.disease_id      as
                   sub_disease_id,
               b.ask_id          as
                   sub_ask_id,
               b.disease_name    as
                   sub_disease_name,
               b.disease_data    as
                   sub_disease_data,
               b.disease_company as
                   sub_disease_company,
               b.is_ok           as
                   sub_is_ok,
               b.remark          as
                   sub_remark,
               b.create_by       as
                   sub_create_by,
               b.create_time     as
                   sub_create_time,
               b.update_by       as
                   sub_update_by,
               b.update_time     as
                   sub_update_time,
               b.deleted         as
                   sub_deleted,
            a.dwmc,
            a.ygdw
        from tj_ask_medical_history a
                 left join tj_ask_historys b on b.ask_id = a.ask_id
        where a.ask_id = #{askId}
    </select>
    <insert id="insertTjAskMedicalHistory" parameterType="TjAskMedicalHistory" useGeneratedKeys="true"
            keyProperty="askId">
        insert into tj_ask_medical_history
        <trim prefix="(" suffix=")" suffixOverrides=",">
                    <if test="cusId != null">cus_id,
                    </if>
                    <if test="cusName != null">cus_name,
                    </if>
                    <if test="work != null">work,
                    </if>
                    <if test="workStatus != null">work_status,
                    </if>
                    <if test="medicalHistory != null">medical_history,
                    </if>
                    <if test="chuchao != null">chuchao,
                    </if>
                    <if test="jingqi != null">jingqi,
                    </if>
                    <if test="zhouqi != null">zhouqi,
                    </if>
                    <if test="mociage != null">mociage,
                    </if>
                    <if test="zinv != null">zinv,
                    </if>
                    <if test="liuchan != null">liuchan,
                    </if>
                    <if test="zaochan != null">zaochan,
                    </if>
                    <if test="sichan != null">sichan,
                    </if>
                    <if test="yichangtai != null">yichangtai,
                    </if>
                    <if test="xiyan != null">xiyan,
                    </if>
                    <if test="xiyanpinlv != null">xiyanpinlv,
                    </if>
                    <if test="xiyanyear != null">xiyanyear,
                    </if>
                    <if test="yinjiu != null">yinjiu,
                    </if>
                    <if test="yinjiupinlv != null">yinjiupinlv,
                    </if>
                    <if test="yinjiuyear != null">yinjiuyear,
                    </if>
                    <if test="qita != null">qita,
                    </if>
                    <if test="remark != null">remark,
                    </if>
                    <if test="createBy != null">create_by,
                    </if>
                    <if test="createTime != null">create_time,
                    </if>
                    <if test="updateBy != null">update_by,
                    </if>
                    <if test="updateTime != null">update_time,
                    </if>
                    <if test="deleted != null">deleted,
                    </if>
                    <if test="fromBy != null">from_by,
                    </if>
            <if test="cusId != null">cus_id,
            </if>
            <if test="cusName != null">cus_name,
            </if>
            <if test="work != null">work,
            </if>
            <if test="workStatus != null">work_status,
            </if>
            <if test="medicalHistoryIds != null">medical_history_ids,
            </if>
            <if test="medicalHistory != null">medical_history,
            </if>
            <if test="medicalHistoryOther != null">medical_history_other,
            </if>
            <if test="chuchao != null">chuchao,
            </if>
            <if test="jingqi != null">jingqi,
            </if>
            <if test="zhouqi != null">zhouqi,
            </if>
            <if test="mociage != null">mociage,
            </if>
            <if test="zinv != null">zinv,
            </if>
            <if test="liuchan != null">liuchan,
            </if>
            <if test="zaochan != null">zaochan,
            </if>
            <if test="sichan != null">sichan,
            </if>
            <if test="yichangtai != null">yichangtai,
            </if>
            <if test="xiyan != null">xiyan,
            </if>
            <if test="xiyanpinlv != null">xiyanpinlv,
            </if>
            <if test="xiyanyear != null">xiyanyear,
            </if>
            <if test="yinjiu != null">yinjiu,
            </if>
            <if test="yinjiupinlv != null">yinjiupinlv,
            </if>
            <if test="yinjiuyear != null">yinjiuyear,
            </if>
            <if test="qita != null">qita,
            </if>
            <if test="remark != null">remark,
            </if>
            <if test="createBy != null">create_by,
            </if>
            <if test="createTime != null">create_time,
            </if>
            <if test="updateBy != null">update_by,
            </if>
            <if test="updateTime != null">update_time,
            </if>
            <if test="deleted != null">deleted,
            </if>
            <if test="fromBy != null">from_by,
            </if>
            <if test="dwmc != null">dwmc,
            </if>
            <if test="ygdw != null">ygdw,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
                    <if test="cusId != null">#{cusId},
                    </if>
                    <if test="cusName != null">#{cusName},
                    </if>
                    <if test="work != null">#{work},
                    </if>
                    <if test="workStatus != null">#{workStatus},
                    </if>
                    <if test="medicalHistory != null">#{medicalHistory},
                    </if>
                    <if test="chuchao != null">#{chuchao},
                    </if>
                    <if test="jingqi != null">#{jingqi},
                    </if>
                    <if test="zhouqi != null">#{zhouqi},
                    </if>
                    <if test="mociage != null">#{mociage},
                    </if>
                    <if test="zinv != null">#{zinv},
                    </if>
                    <if test="liuchan != null">#{liuchan},
                    </if>
                    <if test="zaochan != null">#{zaochan},
                    </if>
                    <if test="sichan != null">#{sichan},
                    </if>
                    <if test="yichangtai != null">#{yichangtai},
                    </if>
                    <if test="xiyan != null">#{xiyan},
                    </if>
                    <if test="xiyanpinlv != null">#{xiyanpinlv},
                    </if>
                    <if test="xiyanyear != null">#{xiyanyear},
                    </if>
                    <if test="yinjiu != null">#{yinjiu},
                    </if>
                    <if test="yinjiupinlv != null">#{yinjiupinlv},
                    </if>
                    <if test="yinjiuyear != null">#{yinjiuyear},
                    </if>
                    <if test="qita != null">#{qita},
                    </if>
                    <if test="remark != null">#{remark},
                    </if>
                    <if test="createBy != null">#{createBy},
                    </if>
                    <if test="createTime != null">#{createTime},
                    </if>
                    <if test="updateBy != null">#{updateBy},
                    </if>
                    <if test="updateTime != null">#{updateTime},
                    </if>
                    <if test="deleted != null">#{deleted},
                    </if>
                    <if test="fromBy != null">#{fromBy},
                    </if>
            <if test="cusId != null">#{cusId},
            </if>
            <if test="cusName != null">#{cusName},
            </if>
            <if test="work != null">#{work},
            </if>
            <if test="workStatus != null">#{workStatus},
            </if>
            <if test="medicalHistoryIds != null">#{medicalHistoryIds},
            </if>
            <if test="medicalHistory != null">#{medicalHistory},
            </if>
            <if test="medicalHistoryOther != null">#{medicalHistoryOther},
            </if>
            <if test="chuchao != null">#{chuchao},
            </if>
            <if test="jingqi != null">#{jingqi},
            </if>
            <if test="zhouqi != null">#{zhouqi},
            </if>
            <if test="mociage != null">#{mociage},
            </if>
            <if test="zinv != null">#{zinv},
            </if>
            <if test="liuchan != null">#{liuchan},
            </if>
            <if test="zaochan != null">#{zaochan},
            </if>
            <if test="sichan != null">#{sichan},
            </if>
            <if test="yichangtai != null">#{yichangtai},
            </if>
            <if test="xiyan != null">#{xiyan},
            </if>
            <if test="xiyanpinlv != null">#{xiyanpinlv},
            </if>
            <if test="xiyanyear != null">#{xiyanyear},
            </if>
            <if test="yinjiu != null">#{yinjiu},
            </if>
            <if test="yinjiupinlv != null">#{yinjiupinlv},
            </if>
            <if test="yinjiuyear != null">#{yinjiuyear},
            </if>
            <if test="qita != null">#{qita},
            </if>
            <if test="remark != null">#{remark},
            </if>
            <if test="createBy != null">#{createBy},
            </if>
            <if test="createTime != null">#{createTime},
            </if>
            <if test="updateBy != null">#{updateBy},
            </if>
            <if test="updateTime != null">#{updateTime},
            </if>
            <if test="deleted != null">#{deleted},
            </if>
            <if test="fromBy != null">#{fromBy},
            </if>
            <if test="dwmc != null">#{dwmc},
            </if>
            <if test="ygdw != null">#{ygdw},
            </if>
        </trim>
    </insert>
    <update id="updateTjAskMedicalHistory" parameterType="TjAskMedicalHistory">
        update tj_ask_medical_history
        <trim prefix="SET" suffixOverrides=",">
                    <if test="cusId != null">cus_id =
                        #{cusId},
                    </if>
                    <if test="cusName != null">cus_name =
                        #{cusName},
                    </if>
                    <if test="work != null">work =
                        #{work},
                    </if>
                    <if test="workStatus != null">work_status =
                        #{workStatus},
                    </if>
                    <if test="medicalHistory != null">medical_history =
                        #{medicalHistory},
                    </if>
                    <if test="chuchao != null">chuchao =
                        #{chuchao},
                    </if>
                    <if test="jingqi != null">jingqi =
                        #{jingqi},
                    </if>
                    <if test="zhouqi != null">zhouqi =
                        #{zhouqi},
                    </if>
                    <if test="mociage != null">mociage =
                        #{mociage},
                    </if>
                    <if test="zinv != null">zinv =
                        #{zinv},
                    </if>
                    <if test="liuchan != null">liuchan =
                        #{liuchan},
                    </if>
                    <if test="zaochan != null">zaochan =
                        #{zaochan},
                    </if>
                    <if test="sichan != null">sichan =
                        #{sichan},
                    </if>
                    <if test="yichangtai != null">yichangtai =
                        #{yichangtai},
                    </if>
                    <if test="xiyan != null">xiyan =
                        #{xiyan},
                    </if>
                    <if test="xiyanpinlv != null">xiyanpinlv =
                        #{xiyanpinlv},
                    </if>
                    <if test="xiyanyear != null">xiyanyear =
                        #{xiyanyear},
                    </if>
                    <if test="yinjiu != null">yinjiu =
                        #{yinjiu},
                    </if>
                    <if test="yinjiupinlv != null">yinjiupinlv =
                        #{yinjiupinlv},
                    </if>
                    <if test="yinjiuyear != null">yinjiuyear =
                        #{yinjiuyear},
                    </if>
                    <if test="qita != null">qita =
                        #{qita},
                    </if>
                    <if test="remark != null">remark =
                        #{remark},
                    </if>
                    <if test="createBy != null">create_by =
                        #{createBy},
                    </if>
                    <if test="createTime != null">create_time =
                        #{createTime},
                    </if>
                    <if test="updateBy != null">update_by =
                        #{updateBy},
                    </if>
                    <if test="updateTime != null">update_time =
                        #{updateTime},
                    </if>
                    <if test="deleted != null">deleted =
                        #{deleted},
                    </if>
                    <if test="fromBy != null">from_By =
                        #{fromBy},
                    </if>
            <if test="cusId != null">cus_id =
                #{cusId},
            </if>
            <if test="cusName != null">cus_name =
                #{cusName},
            </if>
            <if test="work != null">work =
                #{work},
            </if>
            <if test="workStatus != null">work_status =
                #{workStatus},
            </if>
            <if test="medicalHistoryIds != null">medical_history_ids =
                #{medicalHistoryIds},
            </if>
            <if test="medicalHistory != null">medical_history =
                #{medicalHistory},
            </if>
            <if test="medicalHistoryOther != null">medical_history_other =
                #{medicalHistoryOther},
            </if>
            <if test="chuchao != null">chuchao =
                #{chuchao},
            </if>
            <if test="jingqi != null">jingqi =
                #{jingqi},
            </if>
            <if test="zhouqi != null">zhouqi =
                #{zhouqi},
            </if>
            <if test="mociage != null">mociage =
                #{mociage},
            </if>
            <if test="zinv != null">zinv =
                #{zinv},
            </if>
            <if test="liuchan != null">liuchan =
                #{liuchan},
            </if>
            <if test="zaochan != null">zaochan =
                #{zaochan},
            </if>
            <if test="sichan != null">sichan =
                #{sichan},
            </if>
            <if test="yichangtai != null">yichangtai =
                #{yichangtai},
            </if>
            <if test="xiyan != null">xiyan =
                #{xiyan},
            </if>
            <if test="xiyanpinlv != null">xiyanpinlv =
                #{xiyanpinlv},
            </if>
            <if test="xiyanyear != null">xiyanyear =
                #{xiyanyear},
            </if>
            <if test="yinjiu != null">yinjiu =
                #{yinjiu},
            </if>
            <if test="yinjiupinlv != null">yinjiupinlv =
                #{yinjiupinlv},
            </if>
            <if test="yinjiuyear != null">yinjiuyear =
                #{yinjiuyear},
            </if>
            <if test="qita != null">qita =
                #{qita},
            </if>
            <if test="remark != null">remark =
                #{remark},
            </if>
            <if test="createBy != null">create_by =
                #{createBy},
            </if>
            <if test="createTime != null">create_time =
                #{createTime},
            </if>
            <if test="updateBy != null">update_by =
                #{updateBy},
            </if>
            <if test="updateTime != null">update_time =
                #{updateTime},
            </if>
            <if test="deleted != null">deleted =
                #{deleted},
            </if>
            <if test="fromBy != null">from_By =
                #{fromBy},
            </if>
            <if test="dwmc != null">dwmc =
                #{dwmc},
            </if>
            <if test="ygdw != null">ygdw =
                #{ygdw},
            </if>
        </trim>
        where ask_id = #{askId}
    </update>
    <delete id="deleteTjAskMedicalHistoryByAskId" parameterType="Long">
        delete
        from tj_ask_medical_history where ask_id = #{askId}
        from tj_ask_medical_history
        where ask_id = #{askId}
    </delete>
    <delete id="deleteTjAskMedicalHistoryByAskIds" parameterType="String">
@@ -323,23 +436,25 @@
        </foreach>
    </delete>
        <delete id="deleteTjAskHistorysByAskIds" parameterType="String">
            delete from tj_ask_historys where ask_id in
            <foreach item="askId" collection="array" open="(" separator="," close=")">
                #{askId}
            </foreach>
        </delete>
    <delete id="deleteTjAskHistorysByAskIds" parameterType="String">
        delete from tj_ask_historys where ask_id in
        <foreach item="askId" collection="array" open="(" separator="," close=")">
            #{askId}
        </foreach>
    </delete>
        <delete id="deleteTjAskHistorysByAskId" parameterType="Long">
            delete
            from tj_ask_historys where ask_id = #{askId}
        </delete>
    <delete id="deleteTjAskHistorysByAskId" parameterType="Long">
        delete
        from tj_ask_historys
        where ask_id = #{askId}
    </delete>
        <insert id="batchTjAskHistorys">
            insert into tj_ask_historys
            ( disease_id            , ask_id            , disease_name            , disease_data            , disease_company            , is_ok            , remark            , create_by            , create_time            , update_by            , update_time            , deleted) values
            <foreach item="item" index="index" collection="list" separator=",">
                ( #{item.diseaseId
    <insert id="batchTjAskHistorys">
        insert into tj_ask_historys
        ( disease_id , ask_id , disease_name , disease_data , disease_company , is_ok , remark , create_by , create_time
        , update_by , update_time , deleted) values
        <foreach item="item" index="index" collection="list" separator=",">
            ( #{item.diseaseId
                }, #{item.askId
                }, #{item.diseaseName
                }, #{item.diseaseData
@@ -352,8 +467,8 @@
                }, #{item.updateTime
                }, #{item.deleted
                })
            </foreach>
        </insert>
        </foreach>
    </insert>
    <select id="selectTjAskMedicalHistoryByTjNum" parameterType="String" resultMap="TjAskMedicalHistoryResult">
ltkj-hosp/src/main/resources/mapper/hosp/TjOrderMapper.xml
@@ -36,6 +36,13 @@
        <result property="confirmDoctor" column="confirm_doctor"/>
        <result property="confirmTime" column="confirm_time"/>
        <result property="confirmStatus" column="confirm_status"/>
        <result property="zhiyeJhgln" column="zhiye_jhgln"/>
        <result property="zhiyeJhgly" column="zhiye_jhgly"/>
        <result property="zhiyeKsjhrq" column="zhiye_ksjhrq"/>
        <result property="zhiyeGh" column="zhiye_gh"/>
        <result property="zhiyeCj" column="zhiye_cj"/>
        <result property="zhiyeJl" column="zhiye_jl"/>
        <result property="zhiyeJg" column="zhiye_jg"/>
    </resultMap>
    <sql id="selectTjOrderVo">
@@ -77,7 +84,7 @@
               heshou_time,
               is_hz,
               get_type,
               tj_category
               tj_category,zhiye_jhgln,zhiye_jhgly,zhiye_ksjhrq,zhiye_gh,zhiye_cj,zhiye_jl,zhiye_jg
        from tj_order
    </sql>
@@ -209,6 +216,13 @@
            <if test="isHz != null">is_hz,</if>
            <if test="getType != null">get_type,</if>
            <if test="tjCategory != null">tj_category,</if>
            <if test="zhiyeJhgln != null">zhiye_jhgln,</if>
            <if test="zhiyeJhgly != null">zhiye_jhgly,</if>
            <if test="zhiyeKsjhrq != null">zhiye_ksjhrq,</if>
            <if test="zhiyeGh != null">zhiye_gh,</if>
            <if test="zhiyeCj != null">zhiye_cj,</if>
            <if test="zhiyeJl != null">zhiye_jl,</if>
            <if test="zhiyeJg != null">zhiye_jg,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="userId != null">#{userId},</if>
@@ -249,6 +263,13 @@
            <if test="isHz != null">#{isHz},</if>
            <if test="getType != null">#{getType},</if>
            <if test="tjCategory != null">#{tjCategory},</if>
            <if test="zhiyeJhgln != null">#{zhiyeJhgln},</if>
            <if test="zhiyeJhgly != null">#{zhiyeJhgly},</if>
            <if test="zhiyeKsjhrq != null">#{zhiyeKsjhrq},</if>
            <if test="zhiyeGh != null">#{zhiyeGh},</if>
            <if test="zhiyeCj != null">#{zhiyeCj},</if>
            <if test="zhiyeJl != null">#{zhiyeJl},</if>
            <if test="zhiyeJg != null">#{zhiyeJg},</if>
        </trim>
    </insert>
@@ -294,6 +315,13 @@
            <if test="isHz != null">is_hz = #{isHz},</if>
            <if test="getType != null">get_type = #{getType},</if>
            <if test="tjCategory != null">tj_category = #{tjCategory},</if>
            <if test="zhiyeJhgln != null">zhiye_jhgln = #{zhiyeJhgln},</if>
            <if test="zhiyeJhgly != null">zhiye_jhgly = #{zhiyeJhgly},</if>
            <if test="zhiyeKsjhrq != null">zhiye_ksjhrq = #{zhiyeKsjhrq},</if>
            <if test="zhiyeGh != null">zhiye_gh = #{zhiyeGh},</if>
            <if test="zhiyeCj != null">zhiye_cj = #{zhiyeCj},</if>
            <if test="zhiyeJl != null">zhiye_jl = #{zhiyeJl},</if>
            <if test="zhiyeJg != null">zhiye_jg = #{zhiyeJg},</if>
        </trim>
        where order_id = #{orderId}
    </update>