Compare commits

...

2 Commits

  1. 8
      acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java
  2. 2
      acupuncture-framework/src/main/java/com/acupuncture/framework/web/service/WebDmsLoginService.java
  3. 8
      acupuncture-generator/src/main/resources/mbg.xml
  4. 3
      acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ExternalDto.java
  5. 11
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatment.java
  6. 60
      acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatmentExample.java
  7. 1
      acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/PmsTreatmentVo.java
  8. 2
      acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/ExternalDao.java
  9. 4
      acupuncture-system/src/main/java/com/acupuncture/system/service/ExternalService.java
  10. 2
      acupuncture-system/src/main/java/com/acupuncture/system/service/PmsTreatmentService.java
  11. 42
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java
  12. 20
      acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java
  13. 24
      acupuncture-system/src/main/resources/mapper/dao/ExternalDao.xml
  14. 1
      acupuncture-system/src/main/resources/mapper/dao/PmsTreatmentDao.xml
  15. 33
      acupuncture-system/src/main/resources/mapper/system/PmsTreatmentMapper.xml

8
acupuncture-admin/src/main/java/com/acupuncture/web/controller/web/ExternalController.java

@ -111,7 +111,7 @@ public class ExternalController {
@ApiOperation("上传数据")
@PostMapping("/http/uploadMemberInfo")
public Object add(@RequestBody String str){
log.info("str:{}", str);
JSONArray objects = new JSONArray(str);
List<ExternalDto.RtcfInfoDto> list = new ArrayList<>();
for (Object object : objects) {
@ -180,15 +180,15 @@ public class ExternalController {
return externalService.list();
}
@ApiOperation("根据住院号/门诊号查询人体成分信息")
@ApiOperation("根据诊疗档案ID查询人体成分信息")
@PostMapping("/api/http/selectByMemberId")
public JsonResponse<UplRtcfInfoVo.Result> selectByMemberId(@RequestBody @Validated ExternalDto.MemberDto dto){
return JsonResponse.ok(externalService.selectByMemberId(dto.getMemberId()));
return JsonResponse.ok(externalService.selectByMemberId(dto.getId(), dto.getMemberId()));
}
@ApiOperation("根据住院号/门诊号查询人体成分报告")
@PostMapping("/api/http/selectReportByMemberId")
public JsonResponse<UplReportImage> selectReportByMemberId(@RequestBody @Validated ExternalDto.MemberDto dto){
return JsonResponse.ok(externalService.selectReportByMemberId(dto.getMemberId()));
return JsonResponse.ok(externalService.selectReportByMemberId(dto.getId()));
}
}

2
acupuncture-framework/src/main/java/com/acupuncture/framework/web/service/WebDmsLoginService.java

@ -62,7 +62,7 @@ public class WebDmsLoginService
public String login(String username, String password, String code, String uuid)
{
// 验证码校验
validateCaptcha(username, code, uuid);
// validateCaptcha(username, code, uuid);
// 登录前置校验
loginPreCheck(username, password);
// 用户验证

8
acupuncture-generator/src/main/resources/mbg.xml

@ -74,14 +74,14 @@
<!-- <table tableName="zytz_qms_scale_consti_ysfa" domainObjectName="ZytzQmsScaleConstiYsfa" enableDeleteByExample="false"/>-->
<!-- <table tableName="zytz_qms_scale_question" domainObjectName="ZytzQmsScaleQuestion" enableDeleteByExample="false"/>-->
<!-- <table tableName="zytz_qms_scale_question_option" domainObjectName="ZytzQmsScaleQuestionOption" enableDeleteByExample="false"/>-->
<table tableName="zytz_rms_report" domainObjectName="ZytzRmsReport" enableDeleteByExample="false"/>
<table tableName="zytz_rms_report_result" domainObjectName="ZytzRmsReportResult" enableDeleteByExample="false"/>
<table tableName="zytz_rms_report_ysjy" domainObjectName="ZytzRmsReportYsjy" enableDeleteByExample="false"/>
<!-- <table tableName="zytz_rms_report" domainObjectName="ZytzRmsReport" enableDeleteByExample="false"/>-->
<!-- <table tableName="zytz_rms_report_result" domainObjectName="ZytzRmsReportResult" enableDeleteByExample="false"/>-->
<!-- <table tableName="zytz_rms_report_ysjy" domainObjectName="ZytzRmsReportYsjy" enableDeleteByExample="false"/>-->
<!-- <table tableName="fms_followup_queue" domainObjectName="FmsFollowupQueue" enableDeleteByExample="false"/>-->
<!-- <table tableName="fms_followup_task" domainObjectName="FmsFollowupTask" enableDeleteByExample="false"/>-->
<!-- <table tableName="fms_patient_queue_relation" domainObjectName="FmsPatientQueueRelation" enableDeleteByExample="false"/>-->
<!-- <table tableName="pms_patient" domainObjectName="PmsPatient" enableDeleteByExample="false"/>-->
<!-- <table tableName="pms_treatment" domainObjectName="PmsTreatment" enableDeleteByExample="false"/>-->
<table tableName="pms_treatment" domainObjectName="PmsTreatment" enableDeleteByExample="false"/>
<!-- <table tableName="pms_treatment_record" domainObjectName="PmsTreatmentRecord" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_type" domainObjectName="RmsReportType" enableDeleteByExample="false"/>-->
<!-- <table tableName="rms_report_management" domainObjectName="RmsReportManagement" enableDeleteByExample="false"/>-->

3
acupuncture-system/src/main/java/com/acupuncture/system/domain/dto/ExternalDto.java

@ -24,8 +24,9 @@ public class ExternalDto {
@Data
public static class MemberDto{
@NotNull
// @NotNull
private String memberId;
private Long id;
}
@Data

11
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatment.java

@ -48,6 +48,8 @@ public class PmsTreatment implements Serializable {
private Byte status;
private Long memberId;
private Byte delFlag;
private Long tenantId;
@ -240,6 +242,14 @@ public class PmsTreatment implements Serializable {
this.status = status;
}
public Long getMemberId() {
return memberId;
}
public void setMemberId(Long memberId) {
this.memberId = memberId;
}
public Byte getDelFlag() {
return delFlag;
}
@ -324,6 +334,7 @@ public class PmsTreatment implements Serializable {
sb.append(", diagnosisCode=").append(diagnosisCode);
sb.append(", diagnosisName=").append(diagnosisName);
sb.append(", status=").append(status);
sb.append(", memberId=").append(memberId);
sb.append(", delFlag=").append(delFlag);
sb.append(", tenantId=").append(tenantId);
sb.append(", createBy=").append(createBy);

60
acupuncture-system/src/main/java/com/acupuncture/system/domain/po/PmsTreatmentExample.java

@ -1562,6 +1562,66 @@ public class PmsTreatmentExample {
return (Criteria) this;
}
public Criteria andMemberIdIsNull() {
addCriterion("member_id is null");
return (Criteria) this;
}
public Criteria andMemberIdIsNotNull() {
addCriterion("member_id is not null");
return (Criteria) this;
}
public Criteria andMemberIdEqualTo(Long value) {
addCriterion("member_id =", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotEqualTo(Long value) {
addCriterion("member_id <>", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdGreaterThan(Long value) {
addCriterion("member_id >", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdGreaterThanOrEqualTo(Long value) {
addCriterion("member_id >=", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdLessThan(Long value) {
addCriterion("member_id <", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdLessThanOrEqualTo(Long value) {
addCriterion("member_id <=", value, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdIn(List<Long> values) {
addCriterion("member_id in", values, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotIn(List<Long> values) {
addCriterion("member_id not in", values, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdBetween(Long value1, Long value2) {
addCriterion("member_id between", value1, value2, "memberId");
return (Criteria) this;
}
public Criteria andMemberIdNotBetween(Long value1, Long value2) {
addCriterion("member_id not between", value1, value2, "memberId");
return (Criteria) this;
}
public Criteria andDelFlagIsNull() {
addCriterion("del_flag is null");
return (Criteria) this;

1
acupuncture-system/src/main/java/com/acupuncture/system/domain/vo/PmsTreatmentVo.java

@ -56,6 +56,7 @@ public class PmsTreatmentVo {
private String tenantName;
private String zyzdQt;
private Long memberId;
@Data
public static class QueueVo{

2
acupuncture-system/src/main/java/com/acupuncture/system/persist/dao/ExternalDao.java

@ -16,4 +16,6 @@ import java.util.List;
public interface ExternalDao {
List<ExternalVo.Result> select(@Param("query") ExternalDto.Query query);
List<ExternalVo.Result> selectByMemberId(@Param("query") ExternalDto.Query query);
}

4
acupuncture-system/src/main/java/com/acupuncture/system/service/ExternalService.java

@ -45,13 +45,13 @@ public interface ExternalService {
* @param membreId
* @return
*/
UplRtcfInfoVo.Result selectByMemberId(String membreId);
UplRtcfInfoVo.Result selectByMemberId(Long id, String membreId);
/**
* 根据住院号/门诊号查询人体成分信息
* @param membreId
* @return
*/
UplReportImage selectReportByMemberId(String membreId);
UplReportImage selectReportByMemberId(Long id);
}

2
acupuncture-system/src/main/java/com/acupuncture/system/service/PmsTreatmentService.java

@ -23,6 +23,8 @@ public interface PmsTreatmentService {
*/
void addTreatment(PmsTreatmentDto.TreatmentAdd dto);
Long getMemberId();
/**
* 修改诊疗档案
* @param dto

42
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/ExternalServiceImpl.java

@ -3,15 +3,14 @@ package com.acupuncture.system.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.acupuncture.common.core.redis.RedisCache;
import com.acupuncture.system.domain.dto.ExternalDto;
import com.acupuncture.system.domain.po.UplReportImage;
import com.acupuncture.system.domain.po.UplReportImageExample;
import com.acupuncture.system.domain.po.UplRtcfInfo;
import com.acupuncture.system.domain.po.UplRtcfInfoExample;
import com.acupuncture.system.domain.po.*;
import com.acupuncture.system.domain.vo.ExternalVo;
import com.acupuncture.system.domain.vo.UplRtcfInfoVo;
import com.acupuncture.system.persist.dao.ExternalDao;
import com.acupuncture.system.persist.mapper.PmsTreatmentMapper;
import com.acupuncture.system.persist.mapper.UplReportImageMapper;
import com.acupuncture.system.persist.mapper.UplRtcfInfoMapper;
import com.acupuncture.system.service.ExternalService;
@ -38,12 +37,20 @@ public class ExternalServiceImpl implements ExternalService {
private ExternalDao externalDao;
@Resource
private RedisCache redisCache;
@Resource
private PmsTreatmentMapper pmsTreatmentMapper;
@Override
public ExternalVo.Result query(String from, String memberid) {
ExternalDto.Query query = new ExternalDto.Query();
query.setFrom(from);
query.setMemberid(memberid);
//先根据memberId字段查询,查询空再根据门诊号查询
List<ExternalVo.Result> results = externalDao.selectByMemberId(query);
if (CollectionUtil.isNotEmpty(results)) {
return results.get(0);
}
List<ExternalVo.Result> select = externalDao.select(query);
if (CollectionUtil.isNotEmpty(select)) {
return select.get(0);
@ -166,27 +173,44 @@ public class ExternalServiceImpl implements ExternalService {
}
@Override
public List<UplRtcfInfo> list() {
return uplRtcfInfoMapper.selectByExample(new UplRtcfInfoExample());
}
@Override
public UplRtcfInfoVo.Result selectByMemberId(String membreId) {
public UplRtcfInfoVo.Result selectByMemberId(Long id, String membreId) {
//查询诊疗档案
PmsTreatment pmsTreatment = pmsTreatmentMapper.selectByPrimaryKey(id);
if (pmsTreatment == null || pmsTreatment.getDelFlag() == 1 || StrUtil.isEmpty(pmsTreatment.getVisitNumber()) || pmsTreatment.getMemberId() == null) {
return new UplRtcfInfoVo.Result();
}
Long memberId = pmsTreatment.getMemberId();
if (memberId != null) {
UplRtcfInfoExample uplRtcfInfoExample = new UplRtcfInfoExample();
uplRtcfInfoExample.createCriteria().andMemberidEqualTo(membreId).andDelFlagEqualTo((byte) 0);
uplRtcfInfoExample.createCriteria().andMemberidEqualTo(memberId + "").andDelFlagEqualTo((byte) 0);
uplRtcfInfoExample.setOrderByClause("id desc");
List<UplRtcfInfo> uplRtcfInfos = uplRtcfInfoMapper.selectByExample(uplRtcfInfoExample);
if (CollectionUtil.isNotEmpty(uplRtcfInfos)) {
return BeanUtil.copyProperties(uplRtcfInfos.get(0), UplRtcfInfoVo.Result.class);
}
}
if (StrUtil.isNotEmpty(pmsTreatment.getVisitNumber())) {
UplRtcfInfoExample uplRtcfInfoExample1 = new UplRtcfInfoExample();
uplRtcfInfoExample1.createCriteria().andMemberidEqualTo(pmsTreatment.getVisitNumber()).andDelFlagEqualTo((byte) 0);
uplRtcfInfoExample1.setOrderByClause("id desc");
List<UplRtcfInfo> uplRtcfInfos = uplRtcfInfoMapper.selectByExample(uplRtcfInfoExample1);
if (CollectionUtil.isNotEmpty(uplRtcfInfos)) {
return BeanUtil.copyProperties(uplRtcfInfos.get(0), UplRtcfInfoVo.Result.class);
}
}
return new UplRtcfInfoVo.Result();
}
@Override
public UplReportImage selectReportByMemberId(String membreId) {
public UplReportImage selectReportByMemberId(Long id) {
UplReportImageExample uplReportImageExample = new UplReportImageExample();
uplReportImageExample.createCriteria().andMemberIdEqualTo(membreId).andDelFlagEqualTo((byte) 0);
uplReportImageExample.createCriteria().andMemberIdEqualTo(id + "").andDelFlagEqualTo((byte) 0);
List<UplReportImage> uplReportImages = uplReportImageMapper.selectByExample(uplReportImageExample);
if (CollectionUtil.isNotEmpty(uplReportImages)) {
return uplReportImages.get(0);

20
acupuncture-system/src/main/java/com/acupuncture/system/service/impl/PmsTreatmentServiceImpl.java

@ -32,6 +32,7 @@ import com.acupuncture.system.service.PmsTreatmentService;
import com.deepoove.poi.XWPFTemplate;
import com.deepoove.poi.data.*;
import com.deepoove.poi.data.style.BorderStyle;
import lombok.Synchronized;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
@ -107,6 +108,7 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
pmsTreatment.setPinyinFull(PinyinUtil.getPinyin(pmsTreatment.getName(), ""));
pmsTreatment.setPinyinSimple(PinyinUtil.getFirstLetter(pmsTreatment.getName(), ""));
pmsTreatment.setId(IdUtil.getSnowflakeNextId());
pmsTreatment.setMemberId(getMemberId());
pmsTreatment.setTenantId(SecurityUtils.getTenantId());
pmsTreatment.setDelFlag((byte) 0);
pmsTreatment.setCreateBy(SecurityUtils.getUsername());
@ -146,6 +148,24 @@ public class PmsTreatmentServiceImpl implements PmsTreatmentService {
}
}
@Override
@Synchronized
public Long getMemberId() {
//编码生成规则: 年+月+日+每天该租户的最大编码+1
//生成最小的编码
Date now = new Date();
String date = DateUtil.format(now, "yyMMdd") + "0000";
Long minMemberId = Long.parseLong(date);
PmsTreatmentExample pmsTreatmentExample = new PmsTreatmentExample();
pmsTreatmentExample.createCriteria().andDelFlagEqualTo((byte) 0).andTenantIdEqualTo(SecurityUtils.getTenantId()).andMemberIdGreaterThan(minMemberId);
pmsTreatmentExample.setOrderByClause("create_time desc");
List<PmsTreatment> pmsTreatments = treatmentMapper.selectByExample(pmsTreatmentExample);
if (CollectionUtil.isEmpty(pmsTreatments)) {
return minMemberId + 1;
}
return pmsTreatments.get(0).getMemberId() + 1;
}
@Override
public void updateTreatment(PmsTreatmentDto.TreatmentUpdateDTO dto) {
PmsTreatment pmsTreatment = BeanUtil.copyProperties(dto, PmsTreatment.class);

24
acupuncture-system/src/main/resources/mapper/dao/ExternalDao.xml

@ -25,4 +25,28 @@
</where>
</select>
<select id="selectByMemberId" resultType="com.acupuncture.system.domain.vo.ExternalVo$Result"
parameterType="com.acupuncture.system.domain.dto.ExternalDto$Query">
select
t.member_id as memberid,
t.name as name,
t.gender as sex,
t.birth_date as birthYear,
t.phone as phone,
t.tenant_id as gid
from
pms_treatment t
left join
pms_patient p on t.patient_id = p.id
<where>
t.del_flag = 0
<if test="query.memberid != null and query.memberid != ''">
and t.member_id = #{query.memberid}
</if>
<if test="query.from != null and query.from != ''">
and t.tenant_id = #{query.from}
</if>
</where>
</select>
</mapper>

1
acupuncture-system/src/main/resources/mapper/dao/PmsTreatmentDao.xml

@ -25,6 +25,7 @@
diagnosis_code as diagnosisCode,
diagnosis_name as diagnosisName,
status,
member_id as memberId,
create_by as createBy,
create_time as createTime
from pms_treatment

33
acupuncture-system/src/main/resources/mapper/system/PmsTreatmentMapper.xml

@ -24,6 +24,7 @@
<result column="diagnosis_code" jdbcType="VARCHAR" property="diagnosisCode" />
<result column="diagnosis_name" jdbcType="VARCHAR" property="diagnosisName" />
<result column="status" jdbcType="TINYINT" property="status" />
<result column="member_id" jdbcType="BIGINT" property="memberId" />
<result column="del_flag" jdbcType="TINYINT" property="delFlag" />
<result column="tenant_id" jdbcType="BIGINT" property="tenantId" />
<result column="create_by" jdbcType="VARCHAR" property="createBy" />
@ -93,8 +94,8 @@
<sql id="Base_Column_List">
id, patient_id, name, pinyin_full, pinyin_simple, gender, age, birth_date, ethnicity,
education_years, phone, id_card_type, id_card, visit_type, visit_number, visit_time,
discharge_time, doctor, dept_name, diagnosis_code, diagnosis_name, status, del_flag,
tenant_id, create_by, create_time, update_by, update_time, remark
discharge_time, doctor, dept_name, diagnosis_code, diagnosis_name, status, member_id,
del_flag, tenant_id, create_by, create_time, update_by, update_time, remark
</sql>
<select id="selectByExample" parameterType="com.acupuncture.system.domain.po.PmsTreatmentExample" resultMap="BaseResultMap">
select
@ -128,9 +129,10 @@
id_card, visit_type, visit_number,
visit_time, discharge_time, doctor,
dept_name, diagnosis_code, diagnosis_name,
status, del_flag, tenant_id,
create_by, create_time, update_by,
update_time, remark)
status, member_id, del_flag,
tenant_id, create_by, create_time,
update_by, update_time, remark
)
values (#{id,jdbcType=BIGINT}, #{patientId,jdbcType=BIGINT}, #{name,jdbcType=VARCHAR},
#{pinyinFull,jdbcType=VARCHAR}, #{pinyinSimple,jdbcType=VARCHAR}, #{gender,jdbcType=TINYINT},
#{age,jdbcType=INTEGER}, #{birthDate,jdbcType=DATE}, #{ethnicity,jdbcType=VARCHAR},
@ -138,9 +140,10 @@
#{idCard,jdbcType=VARCHAR}, #{visitType,jdbcType=TINYINT}, #{visitNumber,jdbcType=VARCHAR},
#{visitTime,jdbcType=TIMESTAMP}, #{dischargeTime,jdbcType=TIMESTAMP}, #{doctor,jdbcType=VARCHAR},
#{deptName,jdbcType=VARCHAR}, #{diagnosisCode,jdbcType=VARCHAR}, #{diagnosisName,jdbcType=VARCHAR},
#{status,jdbcType=TINYINT}, #{delFlag,jdbcType=TINYINT}, #{tenantId,jdbcType=BIGINT},
#{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP}, #{updateBy,jdbcType=VARCHAR},
#{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR})
#{status,jdbcType=TINYINT}, #{memberId,jdbcType=BIGINT}, #{delFlag,jdbcType=TINYINT},
#{tenantId,jdbcType=BIGINT}, #{createBy,jdbcType=VARCHAR}, #{createTime,jdbcType=TIMESTAMP},
#{updateBy,jdbcType=VARCHAR}, #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.acupuncture.system.domain.po.PmsTreatment">
insert into pms_treatment
@ -211,6 +214,9 @@
<if test="status != null">
status,
</if>
<if test="memberId != null">
member_id,
</if>
<if test="delFlag != null">
del_flag,
</if>
@ -300,6 +306,9 @@
<if test="status != null">
#{status,jdbcType=TINYINT},
</if>
<if test="memberId != null">
#{memberId,jdbcType=BIGINT},
</if>
<if test="delFlag != null">
#{delFlag,jdbcType=TINYINT},
</if>
@ -398,6 +407,9 @@
<if test="record.status != null">
status = #{record.status,jdbcType=TINYINT},
</if>
<if test="record.memberId != null">
member_id = #{record.memberId,jdbcType=BIGINT},
</if>
<if test="record.delFlag != null">
del_flag = #{record.delFlag,jdbcType=TINYINT},
</if>
@ -448,6 +460,7 @@
diagnosis_code = #{record.diagnosisCode,jdbcType=VARCHAR},
diagnosis_name = #{record.diagnosisName,jdbcType=VARCHAR},
status = #{record.status,jdbcType=TINYINT},
member_id = #{record.memberId,jdbcType=BIGINT},
del_flag = #{record.delFlag,jdbcType=TINYINT},
tenant_id = #{record.tenantId,jdbcType=BIGINT},
create_by = #{record.createBy,jdbcType=VARCHAR},
@ -525,6 +538,9 @@
<if test="status != null">
status = #{status,jdbcType=TINYINT},
</if>
<if test="memberId != null">
member_id = #{memberId,jdbcType=BIGINT},
</if>
<if test="delFlag != null">
del_flag = #{delFlag,jdbcType=TINYINT},
</if>
@ -572,6 +588,7 @@
diagnosis_code = #{diagnosisCode,jdbcType=VARCHAR},
diagnosis_name = #{diagnosisName,jdbcType=VARCHAR},
status = #{status,jdbcType=TINYINT},
member_id = #{memberId,jdbcType=BIGINT},
del_flag = #{delFlag,jdbcType=TINYINT},
tenant_id = #{tenantId,jdbcType=BIGINT},
create_by = #{createBy,jdbcType=VARCHAR},

Loading…
Cancel
Save