Sfoglia il codice sorgente

修正诊断程序的问题

itcast 1 anno fa
parent
commit
0c24a1657e

+ 44 - 0
src/main/java/com/om/entity/po/DiagClients.java

@@ -0,0 +1,44 @@
+package com.om.entity.po;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-02-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("diag_clients")
+@ApiModel(value="diag和客户端关联表", description="")
+public class DiagClients implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "关联表id")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "diagId")
+    private Integer diagId;
+
+
+    @ApiModelProperty(value = "客户端编号")
+    private String clientNum;
+
+
+}

+ 5 - 0
src/main/java/com/om/entity/vo/DiagnosisVersionVO.java

@@ -20,6 +20,11 @@ public class DiagnosisVersionVO implements Serializable {
     private String[] language;
     private String[] descriptionList;
     private String fileUrl;
+    private String fileName;
     private String diagnosisFileSize;
+    private Integer status;
+    private String username;
+    private String version;
+    private String savePath;
 
 }

+ 17 - 0
src/main/java/com/om/mapper/DiagClientsMapper.java

@@ -0,0 +1,17 @@
+package com.om.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.om.entity.po.Admin;
+import com.om.entity.po.DiagClients;
+
+/**
+ * <p>
+ *  Mapper 接口
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-01-26
+ */
+public interface DiagClientsMapper extends BaseMapper<DiagClients> {
+
+}

+ 23 - 0
src/main/java/com/om/service/IDiagClientsService.java

@@ -0,0 +1,23 @@
+package com.om.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.om.entity.dto.AdminAddDTO;
+import com.om.entity.dto.AdminQueryPageDTO;
+import com.om.entity.po.Admin;
+import com.om.entity.po.DiagClients;
+import com.om.entity.vo.AdminLoginVO;
+import com.om.entity.vo.AdminQueryPageVO;
+import com.om.utils.Result;
+
+/**
+ * <p>
+ *  服务类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-01-26
+ */
+public interface IDiagClientsService extends IService<DiagClients> {
+
+
+}

+ 47 - 0
src/main/java/com/om/service/impl/DiagclientsServiceImpl.java

@@ -0,0 +1,47 @@
+package com.om.service.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.om.constant.RedisConstant;
+import com.om.entity.dto.AdminAddDTO;
+import com.om.entity.dto.AdminQueryPageDTO;
+import com.om.entity.po.Admin;
+import com.om.entity.po.DiagClients;
+import com.om.entity.vo.AdminLoginVO;
+import com.om.entity.vo.AdminQueryPageVO;
+import com.om.exception.BadReqException;
+import com.om.exception.BizException;
+import com.om.mapper.DiagClientsMapper;
+import com.om.service.IDiagClientsService;
+import com.om.utils.AdminContext;
+import com.om.utils.JwtUtils;
+import com.om.utils.Result;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Service;
+import org.springframework.util.DigestUtils;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * <p>
+ *  服务实现类
+ * </p>
+ *
+ * @author bmmx
+ * @since 2024-01-26
+ */
+@Service
+public class DiagclientsServiceImpl extends ServiceImpl<DiagClientsMapper, DiagClients> implements IDiagClientsService {
+
+
+
+
+}

+ 129 - 65
src/main/java/com/om/service/impl/DiagnosisVersionInfoServiceImpl.java

@@ -20,6 +20,7 @@ import org.apache.commons.lang.StringUtils;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -42,28 +43,14 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
     IClientService clientService;
     @Resource
     IUserService userService;
+    @Resource
+    IDiagClientsService diagClientsService;
     @Override
     public Result add(DiagnosisVersionVO diagnosisVersionVO) {
         DiagnosisVersionInfo info = new DiagnosisVersionInfo();
-        //copy了文件地址和名称,品牌名称,文件大小
-        info.setBrandCode(diagnosisVersionVO.getBrandCode());
+        //客户端编号,需要取id,后面在进行设置
 
-        //获取user用户。保存当前操作人
-//        Integer userId = UserContext.getUserId();
-        //用户信息
-//        User user = userService.getById(userId);
-//
-//        log.info("========当前用户名{}==={}======",user,userId);
-//        info.setUsername(user.getUsername());
-//        info.setAdminId(userId);
-        //版本号
-        info.setVersionNum("1.0");
-        //状态码
-        info.setStatus(0);
         //文件地址
-        if (diagnosisVersionVO.getFileUrl() == null){
-            diagnosisVersionVO.setFileUrl("null");
-        }
         info.setFile(diagnosisVersionVO.getFileUrl());
         //文件大小
         info.setDiagnosisFileSize(diagnosisVersionVO.getDiagnosisFileSize());
@@ -71,20 +58,22 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
         info.setBrandCode(diagnosisVersionVO.getBrandCode());
         //诊断程序名称
         info.setDiagnosisName(diagnosisVersionVO.getDiagnosisName());
-        log.info("========{}========",diagnosisVersionVO);
-        //客户端编号
-        String s = "";
-        for (int i = 0; i < diagnosisVersionVO.getClientNums().length; i++) {
-            s = s +( i != diagnosisVersionVO.getClientNums().length-1?diagnosisVersionVO.getClientNums()[i]+",":diagnosisVersionVO.getClientNums()[i]);
+        //程序状态
+        info.setStatus(diagnosisVersionVO.getStatus());
+        //设置用户名
+        info.setUsername(diagnosisVersionVO.getUsername());
+        //版本号
+        info.setVersionNum(diagnosisVersionVO.getVersion());
+        //保存地址
+        info.setSavePath(diagnosisVersionVO.getSavePath());
 
-        }
-        info.setClientNumber(s);
         //保存
         this.save(info);
+
         LambdaQueryWrapper<DiagnosisVersionInfo> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(DiagnosisVersionInfo::getFile,diagnosisVersionVO.getFileUrl());
         queryWrapper.eq(DiagnosisVersionInfo::getDiagnosisName,diagnosisVersionVO.getDiagnosisName());
         queryWrapper.eq(DiagnosisVersionInfo::getBrandCode,diagnosisVersionVO.getBrandCode());
+        queryWrapper.eq(DiagnosisVersionInfo::getUsername,diagnosisVersionVO.getUsername());
         //保存后获取
         DiagnosisVersionInfo versionInfo = getOne(queryWrapper);
         log.info("==========={}=========",versionInfo);
@@ -93,10 +82,16 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
             DiagnosisVersionDescribe describe = new DiagnosisVersionDescribe();
             describe.setDiagnosisId(versionInfo.getId());
             describe.setDescription(diagnosisVersionVO.getDescriptionList()[i]);
-            describe.setLanguage(diagnosisVersionVO.getLanguage().toString());
+            describe.setLanguage(diagnosisVersionVO.getLanguage()[i]);
             describeService.save(describe);
         }
-        log.info("============================");
+        for (int i = 0; i < diagnosisVersionVO.getClientNums().length; i++) {
+            DiagClients diagClients = new DiagClients();
+            diagClients.setDiagId(versionInfo.getId());
+            diagClients.setClientNum(diagnosisVersionVO.getClientNums()[i]);
+            diagClientsService.save(diagClients);
+        }
+
 
         return Result.ok();
     }
@@ -109,62 +104,131 @@ public class DiagnosisVersionInfoServiceImpl extends ServiceImpl<DiagnosisVersio
     @Override
     public Result edit(DiagnosisVersionVO diagnosisVersionVO) {
         Integer diaId = diagnosisVersionVO.getId();
-        DiagnosisVersionInfo versionInfo = getById(diaId);
-        versionInfo.setBrandCode(diagnosisVersionVO.getBrandCode());
-        String s = "";
-        for (int i = 0; i < diagnosisVersionVO.getClientNums().length; i++) {
-            s = s +( i != diagnosisVersionVO.getClientNums().length-1?diagnosisVersionVO.getClientNums()[i]+",":diagnosisVersionVO.getClientNums()[i]);
+        DiagnosisVersionVO versionVO = getVO(diaId);
+        BeanUtil.copyProperties(diagnosisVersionVO,versionVO);
+
+        DiagnosisVersionInfo info = new DiagnosisVersionInfo();
+        DiagnosisVersionInfo info2 = this.getById(diaId);//查询到copy过去
+        BeanUtil.copyProperties(info2,info);
+        BeanUtil.copyProperties(diagnosisVersionVO,info);
+        this.update(info,null);
 
+        //客户端编号也要更改
+        String[] clientNums = diagnosisVersionVO.getClientNums();
+        LambdaQueryWrapper<DiagClients> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(DiagClients::getDiagId,diaId);
+        //先删除
+        diagClientsService.remove(queryWrapper);
+        //在增加
+        for (int i = 0; i < clientNums.length; i++) {
+            DiagClients diagClients = new DiagClients();
+            diagClients.setClientNum(clientNums[i]);
+            diagClients.setDiagId(diaId);
+            diagClientsService.save(diagClients);
         }
-        versionInfo.setClientNumber(s);
-        this.update(versionInfo,null);
 
-        LambdaQueryWrapper<DiagnosisVersionDescribe> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(DiagnosisVersionDescribe::getDiagnosisId,diaId);
-        queryWrapper.eq(DiagnosisVersionDescribe::getLanguage,diagnosisVersionVO.getLanguage());
-        DiagnosisVersionDescribe one = describeService.getOne(queryWrapper);
-        one.setDescription(diagnosisVersionVO.getDescriptionList()[0]);
-        describeService.update(one,null);
+
+
+
 
         return Result.ok();
     }
 
-    @Override
-    public Result getByUserId(Integer id) {
+    private DiagnosisVersionVO getVO(Integer id){
         DiagnosisVersionInfo versionInfo = this.getById(id);
-        if (versionInfo == null){
-            return Result.ok();
+
+        DiagnosisVersionVO versionVO = new DiagnosisVersionVO();
+        BeanUtil.copyProperties(versionInfo,versionVO);
+        LambdaQueryWrapper<DiagClients> clientQueryWrapper = new LambdaQueryWrapper<>();
+        clientQueryWrapper.eq(DiagClients::getDiagId,id);
+        List<DiagClients> diagClients = diagClientsService.list(clientQueryWrapper);
+        String [] s = new String[diagClients.size()];
+        for (int i = 0; i < diagClients.size(); i++) {
+            s[i] = diagClients.get(i).getClientNum();
+        }
+        versionVO.setClientNums(s);
+        //语言和描述
+        LambdaQueryWrapper<DiagnosisVersionDescribe> describeLambdaQueryWrapper = new LambdaQueryWrapper<>();
+        describeLambdaQueryWrapper.eq(DiagnosisVersionDescribe::getDiagnosisId,id);
+        List<DiagnosisVersionDescribe> describes = describeService.list(describeLambdaQueryWrapper);
+        String [] l = new String[describes.size()];
+        String [] d = new String[describes.size()];
+        for (int i = 0; i < describes.size(); i++) {
+            l[i] = describes.get(i).getLanguage();
+            d[i] = describes.get(i).getDescription();
         }
-        DiagnosisInfoDTO diagnosisInfo = new DiagnosisInfoDTO();
-        diagnosisInfo.setId(id);
-        diagnosisInfo.setBrandName(versionInfo.getBrandCode());
-        //根据客户端信息,获取客户端名称
-        LambdaQueryWrapper<Client> queryWrapper = new LambdaQueryWrapper<>();
-        queryWrapper.eq(Client::getName,diagnosisInfo.getClientName());
-        Client client = clientService.getOne(queryWrapper);
-
-        diagnosisInfo.setClientName(client.getName());
-        diagnosisInfo.setCreateTime(versionInfo.getCreateTime());
-        diagnosisInfo.setDiagnosisName(versionInfo.getDiagnosisName());
-        diagnosisInfo.setFileSize(versionInfo.getDiagnosisFileSize());
-        diagnosisInfo.setStatus(diagnosisInfo.getStatus());
-        diagnosisInfo.setUsername(diagnosisInfo.getUsername());
-        diagnosisInfo.setVersion(versionInfo.getVersionNum());
-
-
-        return Result.ok(diagnosisInfo);
+        versionVO.setDescriptionList(d);
+        versionVO.setLanguage(l);
+        log.info("=====getByUserId={}======",versionVO);
+        return versionVO;
+    }
+
+    @Override
+    public Result getByUserId(Integer id) {
+        DiagnosisVersionVO versionVO = this.getVO(id);
+
+
+        return Result.ok(versionVO);
     }
 
 
     @Override
     public Result getPageList(Integer pageIndex,
                               Integer pageSize) {
-        log.info("---------{}",pageIndex);
-        log.info("---------{}",pageSize);
 
         Page<DiagnosisVersionInfo> page = this.lambdaQuery()
                 .page(new Page<>(pageIndex,pageSize));
-        return Result.ok(page);
+        //获取总的数据
+        List<DiagnosisVersionInfo> diagLists = page.getRecords();
+        List<DiagnosisVersionVO> diagVOLists = new ArrayList<>();
+        for (int i = 0; i < diagLists.size(); i++) {
+            //然后取得客户端编号
+            DiagnosisVersionInfo info = diagLists.get(i);
+            //创建前端传输数据
+            DiagnosisVersionVO versionVO = new DiagnosisVersionVO();
+            BeanUtil.copyProperties(info,versionVO);
+            Integer diagId = info.getId();
+            LambdaQueryWrapper<DiagClients> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.eq(DiagClients::getDiagId,diagId);
+            List<DiagClients> diagClients = diagClientsService.list(queryWrapper);
+            log.info("====diagClients={}",diagClients);
+            String [] s = new String[diagClients.size()];
+
+            for (int j = 0; j < diagClients.size(); j++) {
+                    s[j] = diagClients.get(j).getClientNum();
+            }
+            //传入客户端num
+            versionVO.setClientNums(s);
+
+            //传输描述和语言集合
+            LambdaQueryWrapper<DiagnosisVersionDescribe> describeQueryWrapper = new LambdaQueryWrapper<>();
+            describeQueryWrapper.eq(DiagnosisVersionDescribe::getDiagnosisId,diagId);
+            List<DiagnosisVersionDescribe> describeList = describeService.list(describeQueryWrapper);
+            log.info("List<DiagnosisVersionDescribe> describeList ={}",describeList);
+            String [] language = new String[describeList.size()];
+            String [] description = new String[describeList.size()];
+            for (int i1 = 0; i1 < describeList.size(); i1++) {
+                DiagnosisVersionDescribe describe = describeList.get(i1);
+                language[i1] = describe.getLanguage();
+                description[i1] = describe.getDescription();
+            }
+            //传入客户端
+            versionVO.setLanguage(language);
+            versionVO.setDescriptionList(description);
+
+            diagVOLists.add(versionVO);
+
+
+        }
+        Page<DiagnosisVersionVO> pageVO = new Page<>();
+        BeanUtil.copyProperties(page,pageVO);
+        pageVO.setRecords(diagVOLists);
+
+        log.info("====={}=======",pageVO.getRecords());
+
+
+
+        return Result.ok(pageVO);
     }
 
     @Override

+ 5 - 0
src/main/resources/mapper/DiagClientsMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.om.mapper.DiagClientsMapper">
+
+</mapper>

+ 0 - 0
src/main/resources/mapper/DictMapper.xml → src/main/resources/mapper/IDiagClientsService.xml