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>