zhaowenxuan
2025-05-13 1755b1e774b784a3ed15d9df730ac977461a0e69
2025-05-13-2
4个文件已修改
1个文件已添加
501 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/dto/PutAskMedicalHistoryDto.java 289 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjAskMedicalHistoryController.java 130 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskHistorys.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskMedicalHistory.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-hosp/src/main/resources/mapper/hosp/TjAskMedicalHistoryMapper.xml 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/dto/PutAskMedicalHistoryDto.java
New file
@@ -0,0 +1,289 @@
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.List;
/**
 * @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,14 @@
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 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;
@@ -191,11 +195,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 +281,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 +301,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 +325,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,9 +355,17 @@
            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 +397,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-hosp/src/main/java/com/ltkj/hosp/domain/TjAskHistorys.java
@@ -88,6 +88,31 @@
    @ApiModelProperty(value = "疾病类型")
    private String type;
    private Integer dataType;
    public Long getIcdId() {
        return icdId;
    }
    public void setIcdId(Long icdId) {
        this.icdId = icdId;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public Integer getDataType() {
        return dataType;
    }
    public void setDataType(Integer dataType) {
        this.dataType = dataType;
    }
    public void setDiseaseId(Long diseaseId) {
        this.diseaseId = diseaseId;
ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjAskMedicalHistory.java
@@ -255,4 +255,27 @@
    @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/resources/mapper/hosp/TjAskMedicalHistoryMapper.xml
@@ -36,10 +36,14 @@
            <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="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">
@@ -65,7 +69,9 @@
    <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
               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>
@@ -93,7 +99,9 @@
                sub_create_time, b.update_by as
                sub_update_by, b.update_time as
                sub_update_time, b.deleted as
                sub_deleted
                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}
@@ -159,6 +167,10 @@
                    </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},
@@ -217,6 +229,10 @@
                    </if>
                    <if test="fromBy != null">#{fromBy},
                    </if>
            <if test="dwmc != null">#{dwmc},
            </if>
            <if test="ygdw != null">#{ygdw},
            </if>
        </trim>
    </insert>
@@ -307,6 +323,12 @@
                    <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>