From 9e7dc630b1cba14d99853f84a82fc63e4b4a287a Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 31 Mar 2021 16:09:44 +0800 Subject: [PATCH 1/3] =?UTF-8?q?20210331=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/ParameterService.java | 59 +++++++++++++-- .../src/main/resources/application.yml | 4 +- .../java/com/ccsens/tall/bean/vo/FileVo.java | 20 +++++ .../com/ccsens/tall/web/DebugController.java | 23 +++++- tall/src/main/resources/application-dev.yml | 3 +- tall/src/main/resources/application-prod.yml | 3 +- tall/src/main/resources/application-test.yml | 2 +- tall/src/main/resources/application.yml | 4 +- .../main/java/com/ccsens/util/CRCUtil.java | 6 ++ .../main/java/com/ccsens/util/PropUtil.java | 5 ++ .../com/ccsens/util/RestTemplateUtil.java | 28 +++++++ .../test/java/com/ccsens/util/OtherTest.java | 75 ++++++++++++++++++- 12 files changed, 214 insertions(+), 18 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java diff --git a/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java b/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java index cb99042c..fd2f0c1d 100644 --- a/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java +++ b/beneficiation/src/main/java/com/ccsens/beneficiation/service/ParameterService.java @@ -19,6 +19,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.*; /** @@ -59,12 +60,20 @@ public class ParameterService implements IParameterService{ if(CollectionUtil.isNotEmpty(transducers)){ transducers.forEach(transducer -> { String type = "变频器".equalsIgnoreCase(transducer.getTitle()) ? "transducer" : "solenoidValue"; + int x = "变频器".equalsIgnoreCase(transducer.getTitle()) ? 0 : 1; if(CollectionUtil.isNotEmpty(transducer.getValues())){ int i = transducer.getValues().size() <= 1 ? 0 : 1; for (ParameterVo.TransducerValue value : transducer.getValues()) { String a = i == 0 ? "" : Integer.toString(i); value.setKey("实时/设置" + a); value.setType(type + a); + BigDecimal currentTime; + if(x == 0){ + currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(100), 0, BigDecimal.ROUND_HALF_UP); + }else { + currentTime = value.getCurrentTimeValue().divide(BigDecimal.valueOf(10),1,BigDecimal.ROUND_HALF_UP).multiply(BigDecimal.valueOf(4)); + } + value.setCurrentTimeValue(currentTime); i++; } } @@ -118,22 +127,53 @@ public class ParameterService implements IParameterService{ } //电磁阀1 ParameterDto.Parameter solenoidValue1 = param.getSolenoidValue1(); - transducer(solenoidValue1); + if(ObjectUtil.isNotNull(solenoidValue1)) { + if (ObjectUtil.isNotNull(solenoidValue1.getSettingValue())) { + solenoidValue1.setSettingValue(solenoidValue1.getSettingValue().multiply(BigDecimal.valueOf(100))); + } + transducer(solenoidValue1); + } //电磁阀2 ParameterDto.Parameter solenoidValue2 = param.getSolenoidValue2(); - transducer(solenoidValue2); + if(ObjectUtil.isNotNull(solenoidValue2)){ + if(ObjectUtil.isNotNull(solenoidValue2.getSettingValue())){ + solenoidValue2.setSettingValue(solenoidValue2.getSettingValue().multiply(BigDecimal.valueOf(100))); + } + transducer(solenoidValue2); + } + //变频器1 ParameterDto.Parameter transducer1 = param.getTransducer1(); - transducer(transducer1); + if(ObjectUtil.isNotNull(transducer1)) { + if (ObjectUtil.isNotNull(transducer1.getSettingValue())) { + transducer1.setSettingValue(transducer1.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer1); + } //变频器2 ParameterDto.Parameter transducer2 = param.getTransducer1(); - transducer(transducer2); + if(ObjectUtil.isNotNull(transducer2)) { + if (ObjectUtil.isNotNull(transducer2.getSettingValue())) { + transducer2.setSettingValue(transducer2.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer2); + } //变频器3 ParameterDto.Parameter transducer3 = param.getTransducer1(); - transducer(transducer3); + if(ObjectUtil.isNotNull(transducer3)) { + if (ObjectUtil.isNotNull(transducer3.getSettingValue())) { + transducer3.setSettingValue(transducer3.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer3); + } //变频器4 ParameterDto.Parameter transducer4 = param.getTransducer1(); - transducer(transducer4); + if(ObjectUtil.isNotNull(transducer4)) { + if (ObjectUtil.isNotNull(transducer4.getSettingValue())) { + transducer4.setSettingValue(transducer4.getSettingValue().add(BigDecimal.valueOf(4))); + } + transducer(transducer4); + } //电耳1 ParameterDto.ParameterThreshold electricEar1 = param.getElectricEar1(); @@ -217,6 +257,7 @@ public class ParameterService implements IParameterService{ // byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,uc1,uc2}; byte[] center = new byte[]{(byte)0x10,(byte)0x10,addr1,addr2,0x00,0x01,0x02,uc1,uc2}; + byte[] crc = new byte[2]; CRCUtil.crc16(crc,center,0,center.length); log.info("计算crc校验:{}---{}",crc[0],crc[1]); @@ -227,6 +268,9 @@ public class ParameterService implements IParameterService{ System.arraycopy(crc,0,all,header.length + center.length,crc.length); all[2] = (byte) (all.length - 3); + for (int i = 0; i < all.length; i++) { + log.info("发送数据:{}",Integer.toHexString(all[i] & 0xFF)); + } sendInMessage(all); } } @@ -237,7 +281,8 @@ public class ParameterService implements IParameterService{ */ private void sendInMessage(byte[] all) throws Exception { Set userIdSet = new HashSet<>(); - userIdSet.add(String.valueOf(1)); +// userIdSet.add(String.valueOf(1)); + userIdSet.add(String.valueOf(2)); MessageRule messageRule = MessageRule.defaultRule(MessageConstant.DomainType.User); messageRule.setAckRule(MessageRule.AckRule.NONE); messageRule.setOfflineDiscard((byte) 1); diff --git a/beneficiation/src/main/resources/application.yml b/beneficiation/src/main/resources/application.yml index 1ac895fc..ac92adb9 100644 --- a/beneficiation/src/main/resources/application.yml +++ b/beneficiation/src/main/resources/application.yml @@ -1,6 +1,6 @@ spring: profiles: - active: prod - include: common, util-prod + active: test + include: common, util-test diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java new file mode 100644 index 00000000..ab97b920 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/FileVo.java @@ -0,0 +1,20 @@ +package com.ccsens.tall.bean.vo; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +@Data +public class FileVo { + @ApiModel("文件查询-返回") + @Data + public static class FilePosition{ + @ApiModelProperty("id") + private Long id; + @ApiModelProperty("文件名") + private String name; + @ApiModelProperty("存储路径") + private String path; + @ApiModelProperty("查看路径") + private String visitUrl; + } +} diff --git a/tall/src/main/java/com/ccsens/tall/web/DebugController.java b/tall/src/main/java/com/ccsens/tall/web/DebugController.java index ef1de5d3..dcf9d815 100644 --- a/tall/src/main/java/com/ccsens/tall/web/DebugController.java +++ b/tall/src/main/java/com/ccsens/tall/web/DebugController.java @@ -1,9 +1,9 @@ package com.ccsens.tall.web; +import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.message.SyncMessageWithStartDto; -import com.ccsens.util.JacksonUtil; -import com.ccsens.util.JsonResponse; -import com.ccsens.util.RedisUtil; +import com.ccsens.tall.bean.vo.FileVo; +import com.ccsens.util.*; import com.ccsens.util.bean.message.common.InMessage; import com.ccsens.util.bean.message.common.MessageConstant; import com.ccsens.util.bean.message.common.MessageRule; @@ -22,7 +22,9 @@ import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; @Slf4j @Api(tags = "DEBUG" , description = "DebugController | ") @@ -114,4 +116,19 @@ public class DebugController { } + @ApiOperation(value = "/测试",notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value="htt",method = RequestMethod.GET,produces = {"application/json;charset=UTF-8"}) + public JsonResponse https(HttpServletRequest request) throws Exception { + String requestUrl = "http://localhost:8001/file/query"; + List files = new ArrayList<>(); + files.add(1321760076465311744L); + + String c = RestTemplateUtil.postBody1(requestUrl,files); + + JsonResponse a = JSONObject.parseObject(c,JsonResponse.class); + + return a; + } } diff --git a/tall/src/main/resources/application-dev.yml b/tall/src/main/resources/application-dev.yml index 58302ba7..9a6e63b0 100644 --- a/tall/src/main/resources/application-dev.yml +++ b/tall/src/main/resources/application-dev.yml @@ -39,4 +39,5 @@ wx: file: path: /home/cloud/tall/uploads/ domain: http://localhost:7030/v1.0/ - imgDomain: http://localhost:7030/v1.0/uploads \ No newline at end of file + imgDomain: http://localhost:7030/v1.0/uploads +filedeal: http://localhost:8001/file/query \ No newline at end of file diff --git a/tall/src/main/resources/application-prod.yml b/tall/src/main/resources/application-prod.yml index e31f8289..1b0a8a8e 100644 --- a/tall/src/main/resources/application-prod.yml +++ b/tall/src/main/resources/application-prod.yml @@ -45,4 +45,5 @@ wx: file: path: /home/cloud/tall/uploads/ domain: https://www.tall.wiki/gateway/tall/v1.0/ - imgDomain: https://www.tall.wiki/gateway/tall/v1.0/uploads \ No newline at end of file + imgDomain: https://www.tall.wiki/gateway/tall/v1.0/uploads +filedeal: https://www.tall.wiki/file/query \ No newline at end of file diff --git a/tall/src/main/resources/application-test.yml b/tall/src/main/resources/application-test.yml index a5ca95a5..bc6800cf 100644 --- a/tall/src/main/resources/application-test.yml +++ b/tall/src/main/resources/application-test.yml @@ -46,7 +46,7 @@ file: path: /home/cloud/tall/uploads/ domain: https://test.tall.wiki/gateway/tall/v1.0/ imgDomain: https://test.tall.wiki/gateway/tall/v1.0/uploads - +filedeal: https://test.tall.wiki/file/query #file: # domain: http://192.168.0.99/gateway/tall/v1.0/ # imgDomain: http://192.168.0.99/gateway/tall/v1.0/uploads \ No newline at end of file diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/util/src/main/java/com/ccsens/util/CRCUtil.java b/util/src/main/java/com/ccsens/util/CRCUtil.java index f4dea530..94a41ba0 100644 --- a/util/src/main/java/com/ccsens/util/CRCUtil.java +++ b/util/src/main/java/com/ccsens/util/CRCUtil.java @@ -1,7 +1,13 @@ package com.ccsens.util; +import lombok.extern.slf4j.Slf4j; + +@Slf4j public class CRCUtil { public static void crc16(byte crc[], byte data[], int index, int len) { + for (int i = 0; i < len; i++) { + log.info("发送数据:{}",Integer.toHexString(data[i] & 0xFF)); + } // 预置16位crc寄存器,初值全部为1 int wcrc = 0xFFFF; // 定义中间变量 diff --git a/util/src/main/java/com/ccsens/util/PropUtil.java b/util/src/main/java/com/ccsens/util/PropUtil.java index 4d0898e3..61beb6c4 100644 --- a/util/src/main/java/com/ccsens/util/PropUtil.java +++ b/util/src/main/java/com/ccsens/util/PropUtil.java @@ -28,6 +28,7 @@ public class PropUtil { public static String queryVisitUrls; public static String getWpsFilePath; public static String accessPath; + public static String filedeal; @Value("${saveWpsFile:}") public void setSaveWpsFile(String saveWpsFile) { @@ -99,4 +100,8 @@ public class PropUtil { public void setAccessPath(String accessPath) { PropUtil.accessPath = accessPath; } + @Value("${filedeal:}") + public void setFiledeal(String filedeal) { + PropUtil.filedeal = filedeal; + } } diff --git a/util/src/main/java/com/ccsens/util/RestTemplateUtil.java b/util/src/main/java/com/ccsens/util/RestTemplateUtil.java index ff73a2ab..06e7a4d5 100644 --- a/util/src/main/java/com/ccsens/util/RestTemplateUtil.java +++ b/util/src/main/java/com/ccsens/util/RestTemplateUtil.java @@ -2,6 +2,7 @@ package com.ccsens.util; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ccsens.util.exception.BaseException; import lombok.extern.slf4j.Slf4j; @@ -18,6 +19,7 @@ import org.springframework.web.client.RestTemplate; import javax.annotation.PostConstruct; import java.net.URI; import java.net.URISyntaxException; +import java.util.List; import java.util.Map; @Slf4j @@ -54,6 +56,7 @@ public class RestTemplateUtil { log.info("entity:{}",entity); return JSONObject.parseObject(entity.getBody(), returnClass); } + public static String postBody(String url, Object params) { log.info("路径:{}, 参数:{}", url, params); HttpHeaders httpHeaders = new HttpHeaders(); @@ -76,6 +79,31 @@ public class RestTemplateUtil { log.info("返回:{}", response); return response.getBody(); } + + public static String postBody1(String url, List params) { + log.info("路径:{}, 参数:{}", url, params); + HttpHeaders httpHeaders = new HttpHeaders(); + MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8"); + httpHeaders.setContentType(type); + +// MultiValueMap map=new LinkedMultiValueMap<>(); + +// JSONObject json = JSON.parseObject(JSON.toJSONString(params)); + + + HttpEntity> objectHttpEntity = new HttpEntity<>(params,httpHeaders); + URI uri = null; + try { + uri = new URI(url); + }catch (URISyntaxException e) { + log.error("转换路径异常:{}", e); + throw new BaseException(CodeEnum.URL_ERROR); + } + + ResponseEntity response = util.restTemplate.postForEntity(uri, objectHttpEntity, String.class); + log.info("返回:{}", response); + return response.getBody(); + } public static String postUrlEncode(String url, Object params) { log.info("请求路径:{},请求参数:{}", url, params); JSONObject json = JSON.parseObject(JSON.toJSONString(params)); diff --git a/util/src/test/java/com/ccsens/util/OtherTest.java b/util/src/test/java/com/ccsens/util/OtherTest.java index dd8d7733..b2fbc3d4 100644 --- a/util/src/test/java/com/ccsens/util/OtherTest.java +++ b/util/src/test/java/com/ccsens/util/OtherTest.java @@ -6,11 +6,16 @@ import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.junit.Test; +import javax.net.ssl.HttpsURLConnection; +import javax.net.ssl.SSLContext; +import javax.net.ssl.SSLSocketFactory; +import javax.net.ssl.TrustManager; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import java.io.File; +import java.io.*; import java.math.BigDecimal; +import java.net.URL; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Comparator; @@ -120,5 +125,73 @@ public class OtherTest { } + @Test + public void test8(){ + System.out.println(Byte.parseByte("-1") & 0xff); + } +// +// /** +// * 发送https请求 +// * +// * @param requestUrl 请求地址 +// * @param requestMethod 请求方式(GET、POST) +// * @param postStr 提交的数据 +// * @return String(Json) +// */ +// @Test +// public void test9(String requestUrl, String requestMethod, String postStr) throws Exception { +// +// requestUrl = "http://localhost:8001/file/query"; +// requestMethod = "POST"; +// List files = new ArrayList<>(); +// files.add(1321760076465311744L); +// +// postStr = JacksonUtil.beanToJson(files); +// +// StringBuffer buffer = null; +// // 创建SSLContext对象,并使用我们指定的信任管理器初始化 +// TrustManager[] tm = {new MyX509TrustManager()}; +// SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE"); +// sslContext.init(null, tm, new java.security.SecureRandom()); +// // 从上述SSLContext对象中得到SSLSocketFactory对象 +// SSLSocketFactory ssf = sslContext.getSocketFactory(); +// +// URL url = new URL(requestUrl); +// HttpsURLConnection conn = (HttpsURLConnection) url.openConnection(); +// conn.setSSLSocketFactory(ssf); +// +// conn.setDoOutput(true); +// conn.setDoInput(true); +// conn.setUseCaches(false); +// // 设置请求方式(GET/POST) +// conn.setRequestMethod(requestMethod); +// +// // 当outputStr不为null时向输出流写数据 +// if (null != postStr) { +// OutputStream outputStream = conn.getOutputStream(); +// // 注意编码格式 +// outputStream.write(postStr.getBytes("UTF-8")); +// outputStream.close(); +// } +// +// // 从输入流读取返回内容 +// InputStream inputStream = conn.getInputStream(); +// InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8"); +// BufferedReader bufferedReader = new BufferedReader(inputStreamReader); +// String str = null; +// buffer = new StringBuffer(); +// while ((str = bufferedReader.readLine()) != null) { +// buffer.append(str); +// } +// +// // 释放资源 +// bufferedReader.close(); +// inputStreamReader.close(); +// inputStream.close(); +// inputStream = null; +// conn.disconnect(); +//// return buffer == null ? null : buffer.toString(); +// System.out.println( buffer == null ? null : buffer.toString()); +// } } From d5080e501682d0325d0b965aa6d5e7aa7e0af9e1 Mon Sep 17 00:00:00 2001 From: zy_Java <654600784@qq.com> Date: Wed, 31 Mar 2021 16:44:38 +0800 Subject: [PATCH 2/3] =?UTF-8?q?20210331=E6=9F=A5=E8=AF=A2=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/vo/InputDocVo.java | 19 +++--- .../ccsens/tall/service/InputDocService.java | 67 ++++++++++++++----- 2 files changed, 60 insertions(+), 26 deletions(-) diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java index 2db98de8..89d5ffb1 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/InputDocVo.java @@ -25,18 +25,17 @@ public class InputDocVo { private String docName; @ApiModelProperty("是否上传 0否 1是") private Byte isUpload; -// @ApiModelProperty("文档中的文件id") @ApiModelProperty("文档中的文件") private List records = new ArrayList<>(); } - @Data - @ApiModel("该记录中的文件") - public static class File{ - @ApiModelProperty("文件名称") - private String fileName; - @ApiModelProperty("文件访问路径") - private String fileUrl; - } +// @Data +// @ApiModel("该记录中的文件") +// public static class File{ +// @ApiModelProperty("文件名称") +// private String fileName; +// @ApiModelProperty("文件访问路径") +// private String fileUrl; +// } @Data @ApiModel("该文档下的记录列表") @@ -49,7 +48,7 @@ public class InputDocVo { @ApiModelProperty("备注") private String remark; @ApiModelProperty("文件列表") - private List fileList = new ArrayList<>(); + private List fileList = new ArrayList<>(); } @Data diff --git a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java index 7cf8822c..37e99a99 100644 --- a/tall/src/main/java/com/ccsens/tall/service/InputDocService.java +++ b/tall/src/main/java/com/ccsens/tall/service/InputDocService.java @@ -6,11 +6,14 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.ccsens.tall.bean.dto.InputDocDto; import com.ccsens.tall.bean.dto.LwbsDto; import com.ccsens.tall.bean.po.*; +import com.ccsens.tall.bean.vo.FileVo; import com.ccsens.tall.bean.vo.InputDocVo; import com.ccsens.tall.bean.vo.LwbsVo; import com.ccsens.tall.bean.vo.TaskVo; @@ -20,13 +23,21 @@ import com.ccsens.tall.persist.mapper.*; import com.ccsens.tall.util.TaskUtil; import com.ccsens.util.CodeEnum; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.PropUtil; +import com.ccsens.util.RestTemplateUtil; import com.ccsens.util.exception.BaseException; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.*; +@Slf4j @Service +@Transactional(propagation = Propagation.REQUIRED,rollbackFor = Exception.class) public class InputDocService implements IInputDocService { @Resource public ProMemberMapper proMemberMapper; @@ -165,24 +176,48 @@ public class InputDocService implements IInputDocService { List docByTasks = iInputDocDao.findDocByTask(param.getTaskId()); for (InputDocVo.DocOfTask docs:docByTasks){ for (InputDocVo.Record record:docs.getRecords()){ - if (record.getFileIds().contains(",")){ - String[] split = record.getFileIds().split(","); - for (int i = 0; i < split.length; i++) { - File file = fileMapper.selectByPrimaryKey(Long.valueOf(split[i])); - InputDocVo.File nowFile = new InputDocVo.File(); - nowFile.setFileName(file.getFileName()); - nowFile.setFileUrl(file.getVisitLocation()); - record.getFileList().add(nowFile); - } - }else{ - if (StrUtil.isNotBlank(record.getFileIds())){ - File file = fileMapper.selectByPrimaryKey(Long.valueOf(record.getFileIds())); - InputDocVo.File nowFile = new InputDocVo.File(); - nowFile.setFileName(file.getFileName()); - nowFile.setFileUrl(file.getVisitLocation()); - record.getFileList().add(nowFile); + if(ObjectUtil.isNotNull(record.getFileIds())) { + try { + //拆分文件id + String[] split = record.getFileIds().split(","); + List splits =new ArrayList<>(Arrays.asList(split)); + if(split.length != 0){ + //获取文件项目的路径 + String requestUrl = PropUtil.filedeal; + //通过文件id查询文件信息 + String c = RestTemplateUtil.postBody1(requestUrl,splits); + JsonResponse> a = JSONObject.parseObject(c,JsonResponse.class); + if(ObjectUtil.isNotNull(a) && ObjectUtil.isNotNull(a.getData())){ + List fileList = a.getData(); + record.setFileList(fileList); + } + } + }catch (Exception e){ + log.info("查询文件信息失败:{}", e); } + } + +// if (record.getFileIds().contains(",")){ +// String[] split = record.getFileIds().split(","); +// for (int i = 0; i < split.length; i++) { +// +// +//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(split[i])); +//// InputDocVo.File nowFile = new InputDocVo.File(); +//// nowFile.setFileName(file.getFileName()); +//// nowFile.setFileUrl(file.getVisitLocation()); +//// record.getFileList().add(nowFile); +// } +// }else{ +// if (StrUtil.isNotBlank(record.getFileIds())){ +//// File file = fileMapper.selectByPrimaryKey(Long.valueOf(record.getFileIds())); +//// InputDocVo.File nowFile = new InputDocVo.File(); +//// nowFile.setFileName(file.getFileName()); +//// nowFile.setFileUrl(file.getVisitLocation()); +//// record.getFileList().add(nowFile); +// } +// } } } return docByTasks; From 038fd94744141027e30f692ac504d016a7fcb7de Mon Sep 17 00:00:00 2001 From: ma <1062634917@qq.com> Date: Wed, 31 Mar 2021 17:56:45 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=8F=92=E4=BB=B6=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ccsens/tall/bean/dto/PluginDto.java | 90 ++- .../tall/bean/po/ProPluginPreviewFile.java | 95 +++ .../bean/po/ProPluginPreviewFileExample.java | 631 ++++++++++++++++++ .../com/ccsens/tall/bean/po/SysPlugin.java | 45 +- .../ccsens/tall/bean/po/SysPluginExample.java | 228 ++++++- .../com/ccsens/tall/bean/vo/PluginVo.java | 41 ++ .../persist/dao/ProPluginPreviewFileDao.java | 9 + .../tall/persist/dao/TaskPluginDao.java | 26 + .../mapper/ProPluginPreviewFileMapper.java | 30 + .../tall/service/ISysPluginService.java | 34 +- .../ccsens/tall/service/ProRoleService.java | 3 + .../ccsens/tall/service/SysPluginService.java | 189 +++++- .../com/ccsens/tall/web/PluginController.java | 53 +- tall/src/main/resources/application.yml | 4 +- .../resources/mapper_dao/TaskPluginDao.xml | 62 ++ .../mapper_raw/ProPluginPreviewFileMapper.xml | 243 +++++++ .../resources/mapper_raw/SysPluginMapper.xml | 80 ++- 17 files changed, 1799 insertions(+), 64 deletions(-) create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java create mode 100644 tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java create mode 100644 tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java create mode 100644 tall/src/main/resources/mapper_dao/TaskPluginDao.xml create mode 100644 tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml diff --git a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java index 7d909550..670aec7a 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/PluginDto.java @@ -5,9 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NonNull; -import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import javax.validation.constraints.Size; +import javax.validation.constraints.*; import java.util.List; /** @@ -18,14 +16,94 @@ public class PluginDto { @Data @ApiModel("添加插件") public static class SaveSysPlugin { - @NotEmpty + @NotEmpty(message = "请输入插件名") @ApiModelProperty("插件名(英文的code)") private String name; - @NotEmpty - @ApiModelProperty("插件描述") + @Size(max = 100,message = "详情不能超过一百字") + @NotEmpty(message = "请输入插件详情") + @ApiModelProperty("插件详情") private String description; @ApiModelProperty("插件展示位置 默认2:0不显示,1任务头上右侧图标,2任务详情显示按钮,3任务展开面板显示(特殊形式)") private byte showType = 2; + @ApiModelProperty("插件图标") + private Long pluginIcon; + @ApiModelProperty("插件作者") + private Long pluginAuthor; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)") + private Byte pluginClass; + @ApiModelProperty("预览图片") + private List previewImgs; + } + @Data + @ApiModel("添加插件预览图") + public static class PreviewImg { + @ApiModelProperty("预览图id") + private Long previewId; + @Size(max = 100,message = "详情不能超过一百字") + @ApiModelProperty("预览图描述") + private String previewDescription; + } + + @Data + @ApiModel("根据任务id查询插件列表(已添加的)") + public static class FindPluginByTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)单选") + private Byte pluginType; + } + + @Data + @ApiModel("根据任务id查询插件列表(该任务未添加的的)") + public static class FindPluginByTaskNo { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件类型(0-公共,1-会务,2-医疗,3-pims)单选") + private Byte pluginType; + @ApiModelProperty("页数") + private Integer pageNum = 1; + @ApiModelProperty("每页多少条") + private Integer pageSize = 10; + } + + @Data + @ApiModel("给任务添加插件") + public static class AddPluginForTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @NotNull(message = "请选择插件") + @ApiModelProperty("插件id") + private Long pluginId; + } + + @Data + @ApiModel("给任务删除插件") + public static class DeletePluginForTask { + @NotNull(message = "请选择任务") + @ApiModelProperty("任务id") + private Long taskId; + @NotNull(message = "获取角色信息失败") + @ApiModelProperty("角色id") + private Long roleId; + @NotNull(message = "请选择插件") + @ApiModelProperty("插件id") + private Long pluginId; } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java new file mode 100644 index 00000000..f2cdd59c --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFile.java @@ -0,0 +1,95 @@ +package com.ccsens.tall.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class ProPluginPreviewFile implements Serializable { + private Long id; + + private Long pluginId; + + private Long fileId; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private String previewDescription; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getPluginId() { + return pluginId; + } + + public void setPluginId(Long pluginId) { + this.pluginId = pluginId; + } + + public Long getFileId() { + return fileId; + } + + public void setFileId(Long fileId) { + this.fileId = fileId; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + public String getPreviewDescription() { + return previewDescription; + } + + public void setPreviewDescription(String previewDescription) { + this.previewDescription = previewDescription == null ? null : previewDescription.trim(); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", pluginId=").append(pluginId); + sb.append(", fileId=").append(fileId); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append(", previewDescription=").append(previewDescription); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java new file mode 100644 index 00000000..cfa71850 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/bean/po/ProPluginPreviewFileExample.java @@ -0,0 +1,631 @@ +package com.ccsens.tall.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class ProPluginPreviewFileExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public ProPluginPreviewFileExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPluginIdIsNull() { + addCriterion("plugin_id is null"); + return (Criteria) this; + } + + public Criteria andPluginIdIsNotNull() { + addCriterion("plugin_id is not null"); + return (Criteria) this; + } + + public Criteria andPluginIdEqualTo(Long value) { + addCriterion("plugin_id =", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotEqualTo(Long value) { + addCriterion("plugin_id <>", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdGreaterThan(Long value) { + addCriterion("plugin_id >", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_id >=", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdLessThan(Long value) { + addCriterion("plugin_id <", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdLessThanOrEqualTo(Long value) { + addCriterion("plugin_id <=", value, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdIn(List values) { + addCriterion("plugin_id in", values, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotIn(List values) { + addCriterion("plugin_id not in", values, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdBetween(Long value1, Long value2) { + addCriterion("plugin_id between", value1, value2, "pluginId"); + return (Criteria) this; + } + + public Criteria andPluginIdNotBetween(Long value1, Long value2) { + addCriterion("plugin_id not between", value1, value2, "pluginId"); + return (Criteria) this; + } + + public Criteria andFileIdIsNull() { + addCriterion("file_id is null"); + return (Criteria) this; + } + + public Criteria andFileIdIsNotNull() { + addCriterion("file_id is not null"); + return (Criteria) this; + } + + public Criteria andFileIdEqualTo(Long value) { + addCriterion("file_id =", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotEqualTo(Long value) { + addCriterion("file_id <>", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdGreaterThan(Long value) { + addCriterion("file_id >", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdGreaterThanOrEqualTo(Long value) { + addCriterion("file_id >=", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdLessThan(Long value) { + addCriterion("file_id <", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdLessThanOrEqualTo(Long value) { + addCriterion("file_id <=", value, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdIn(List values) { + addCriterion("file_id in", values, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotIn(List values) { + addCriterion("file_id not in", values, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdBetween(Long value1, Long value2) { + addCriterion("file_id between", value1, value2, "fileId"); + return (Criteria) this; + } + + public Criteria andFileIdNotBetween(Long value1, Long value2) { + addCriterion("file_id not between", value1, value2, "fileId"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIsNull() { + addCriterion("preview_description is null"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIsNotNull() { + addCriterion("preview_description is not null"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionEqualTo(String value) { + addCriterion("preview_description =", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotEqualTo(String value) { + addCriterion("preview_description <>", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionGreaterThan(String value) { + addCriterion("preview_description >", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionGreaterThanOrEqualTo(String value) { + addCriterion("preview_description >=", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLessThan(String value) { + addCriterion("preview_description <", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLessThanOrEqualTo(String value) { + addCriterion("preview_description <=", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionLike(String value) { + addCriterion("preview_description like", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotLike(String value) { + addCriterion("preview_description not like", value, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionIn(List values) { + addCriterion("preview_description in", values, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotIn(List values) { + addCriterion("preview_description not in", values, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionBetween(String value1, String value2) { + addCriterion("preview_description between", value1, value2, "previewDescription"); + return (Criteria) this; + } + + public Criteria andPreviewDescriptionNotBetween(String value1, String value2) { + addCriterion("preview_description not between", value1, value2, "previewDescription"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java index bc03deca..2ea36184 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPlugin.java @@ -12,13 +12,19 @@ public class SysPlugin implements Serializable { private Byte scene; + private Byte showType; + private Date createdAt; private Date updatedAt; private Byte recStatus; - private Byte showType; + private Long pluginIcon; + + private Long pluginAuthor; + + private Byte pluginClass; private static final long serialVersionUID = 1L; @@ -54,6 +60,14 @@ public class SysPlugin implements Serializable { this.scene = scene; } + public Byte getShowType() { + return showType; + } + + public void setShowType(Byte showType) { + this.showType = showType; + } + public Date getCreatedAt() { return createdAt; } @@ -78,12 +92,28 @@ public class SysPlugin implements Serializable { this.recStatus = recStatus; } - public Byte getShowType() { - return showType; + public Long getPluginIcon() { + return pluginIcon; } - public void setShowType(Byte showType) { - this.showType = showType; + public void setPluginIcon(Long pluginIcon) { + this.pluginIcon = pluginIcon; + } + + public Long getPluginAuthor() { + return pluginAuthor; + } + + public void setPluginAuthor(Long pluginAuthor) { + this.pluginAuthor = pluginAuthor; + } + + public Byte getPluginClass() { + return pluginClass; + } + + public void setPluginClass(Byte pluginClass) { + this.pluginClass = pluginClass; } @Override @@ -96,10 +126,13 @@ public class SysPlugin implements Serializable { sb.append(", name=").append(name); sb.append(", description=").append(description); sb.append(", scene=").append(scene); + sb.append(", showType=").append(showType); sb.append(", createdAt=").append(createdAt); sb.append(", updatedAt=").append(updatedAt); sb.append(", recStatus=").append(recStatus); - sb.append(", showType=").append(showType); + sb.append(", pluginIcon=").append(pluginIcon); + sb.append(", pluginAuthor=").append(pluginAuthor); + sb.append(", pluginClass=").append(pluginClass); sb.append("]"); return sb.toString(); } diff --git a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java index 21985a1d..15bb9464 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java +++ b/tall/src/main/java/com/ccsens/tall/bean/po/SysPluginExample.java @@ -365,6 +365,66 @@ public class SysPluginExample { return (Criteria) this; } + public Criteria andShowTypeIsNull() { + addCriterion("show_type is null"); + return (Criteria) this; + } + + public Criteria andShowTypeIsNotNull() { + addCriterion("show_type is not null"); + return (Criteria) this; + } + + public Criteria andShowTypeEqualTo(Byte value) { + addCriterion("show_type =", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotEqualTo(Byte value) { + addCriterion("show_type <>", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThan(Byte value) { + addCriterion("show_type >", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("show_type >=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThan(Byte value) { + addCriterion("show_type <", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeLessThanOrEqualTo(Byte value) { + addCriterion("show_type <=", value, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeIn(List values) { + addCriterion("show_type in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotIn(List values) { + addCriterion("show_type not in", values, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeBetween(Byte value1, Byte value2) { + addCriterion("show_type between", value1, value2, "showType"); + return (Criteria) this; + } + + public Criteria andShowTypeNotBetween(Byte value1, Byte value2) { + addCriterion("show_type not between", value1, value2, "showType"); + return (Criteria) this; + } + public Criteria andCreatedAtIsNull() { addCriterion("created_at is null"); return (Criteria) this; @@ -545,63 +605,183 @@ public class SysPluginExample { return (Criteria) this; } - public Criteria andShowTypeIsNull() { - addCriterion("show_type is null"); + public Criteria andPluginIconIsNull() { + addCriterion("plugin_icon is null"); return (Criteria) this; } - public Criteria andShowTypeIsNotNull() { - addCriterion("show_type is not null"); + public Criteria andPluginIconIsNotNull() { + addCriterion("plugin_icon is not null"); return (Criteria) this; } - public Criteria andShowTypeEqualTo(Byte value) { - addCriterion("show_type =", value, "showType"); + public Criteria andPluginIconEqualTo(Long value) { + addCriterion("plugin_icon =", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotEqualTo(Byte value) { - addCriterion("show_type <>", value, "showType"); + public Criteria andPluginIconNotEqualTo(Long value) { + addCriterion("plugin_icon <>", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeGreaterThan(Byte value) { - addCriterion("show_type >", value, "showType"); + public Criteria andPluginIconGreaterThan(Long value) { + addCriterion("plugin_icon >", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeGreaterThanOrEqualTo(Byte value) { - addCriterion("show_type >=", value, "showType"); + public Criteria andPluginIconGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_icon >=", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeLessThan(Byte value) { - addCriterion("show_type <", value, "showType"); + public Criteria andPluginIconLessThan(Long value) { + addCriterion("plugin_icon <", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeLessThanOrEqualTo(Byte value) { - addCriterion("show_type <=", value, "showType"); + public Criteria andPluginIconLessThanOrEqualTo(Long value) { + addCriterion("plugin_icon <=", value, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeIn(List values) { - addCriterion("show_type in", values, "showType"); + public Criteria andPluginIconIn(List values) { + addCriterion("plugin_icon in", values, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotIn(List values) { - addCriterion("show_type not in", values, "showType"); + public Criteria andPluginIconNotIn(List values) { + addCriterion("plugin_icon not in", values, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeBetween(Byte value1, Byte value2) { - addCriterion("show_type between", value1, value2, "showType"); + public Criteria andPluginIconBetween(Long value1, Long value2) { + addCriterion("plugin_icon between", value1, value2, "pluginIcon"); return (Criteria) this; } - public Criteria andShowTypeNotBetween(Byte value1, Byte value2) { - addCriterion("show_type not between", value1, value2, "showType"); + public Criteria andPluginIconNotBetween(Long value1, Long value2) { + addCriterion("plugin_icon not between", value1, value2, "pluginIcon"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIsNull() { + addCriterion("plugin_author is null"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIsNotNull() { + addCriterion("plugin_author is not null"); + return (Criteria) this; + } + + public Criteria andPluginAuthorEqualTo(Long value) { + addCriterion("plugin_author =", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotEqualTo(Long value) { + addCriterion("plugin_author <>", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorGreaterThan(Long value) { + addCriterion("plugin_author >", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorGreaterThanOrEqualTo(Long value) { + addCriterion("plugin_author >=", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorLessThan(Long value) { + addCriterion("plugin_author <", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorLessThanOrEqualTo(Long value) { + addCriterion("plugin_author <=", value, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorIn(List values) { + addCriterion("plugin_author in", values, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotIn(List values) { + addCriterion("plugin_author not in", values, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorBetween(Long value1, Long value2) { + addCriterion("plugin_author between", value1, value2, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginAuthorNotBetween(Long value1, Long value2) { + addCriterion("plugin_author not between", value1, value2, "pluginAuthor"); + return (Criteria) this; + } + + public Criteria andPluginClassIsNull() { + addCriterion("plugin_class is null"); + return (Criteria) this; + } + + public Criteria andPluginClassIsNotNull() { + addCriterion("plugin_class is not null"); + return (Criteria) this; + } + + public Criteria andPluginClassEqualTo(Byte value) { + addCriterion("plugin_class =", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotEqualTo(Byte value) { + addCriterion("plugin_class <>", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassGreaterThan(Byte value) { + addCriterion("plugin_class >", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassGreaterThanOrEqualTo(Byte value) { + addCriterion("plugin_class >=", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassLessThan(Byte value) { + addCriterion("plugin_class <", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassLessThanOrEqualTo(Byte value) { + addCriterion("plugin_class <=", value, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassIn(List values) { + addCriterion("plugin_class in", values, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotIn(List values) { + addCriterion("plugin_class not in", values, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassBetween(Byte value1, Byte value2) { + addCriterion("plugin_class between", value1, value2, "pluginClass"); + return (Criteria) this; + } + + public Criteria andPluginClassNotBetween(Byte value1, Byte value2) { + addCriterion("plugin_class not between", value1, value2, "pluginClass"); return (Criteria) this; } } diff --git a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java index 9ab4ceca..5c579a65 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/PluginVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.ArrayList; import java.util.List; @Data @@ -121,6 +122,46 @@ public class PluginVo { private String projectName; } + @Data + @ApiModel("根据任务id查找插件列表(已添加)") + public static class PluginByTaskAdded { + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件图标") + private Long pluginIcon; + @ApiModelProperty("插件图标") + private String iconUrl; + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("插件描述") + private String description; + @ApiModelProperty("插件作者") + private Long pluginAuthor; + @ApiModelProperty("插件预览图片") + private List previewImgs = new ArrayList<>(); + + public PluginByTaskAdded() { + } + } + @Data + @ApiModel("插件预览图信息(已添加)") + public static class ImgByTaskAdded { + @ApiModelProperty("预览图id") + private Long previewId; + @ApiModelProperty("预览图描述") + private String previewDescription; + } + @Data + @ApiModel("根据任务id查找插件列表(已添加)") + public static class PluginByTaskAdded1 { + @ApiModelProperty("插件名称") + private String pluginName; + @ApiModelProperty("插件id") + private Long pluginId; + @ApiModelProperty("插件描述") + private String description; + + } } diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java new file mode 100644 index 00000000..75a126be --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/ProPluginPreviewFileDao.java @@ -0,0 +1,9 @@ +package com.ccsens.tall.persist.dao; + +import com.ccsens.tall.persist.mapper.ProPluginPreviewFileMapper; + +/** + * @author mz + */ +public interface ProPluginPreviewFileDao extends ProPluginPreviewFileMapper { +} diff --git a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java index cfcc2da2..827ba286 100644 --- a/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java +++ b/tall/src/main/java/com/ccsens/tall/persist/dao/TaskPluginDao.java @@ -1,8 +1,34 @@ package com.ccsens.tall.persist.dao; +import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.persist.mapper.ProTaskPluginMapper; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + +/** + * @author mz + */ @Repository public interface TaskPluginDao extends ProTaskPluginMapper{ + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param taskId 任务id + * @param roleId 角色id + * @param pluginName 插件名称 + * @param pluginType 插件类型 + * @return + */ + List findPluginOfAdded(@Param("taskId") Long taskId,@Param("roleId") Long roleId,@Param("pluginName") String pluginName,@Param("pluginType") Byte pluginType); + + /** + * 根据任务id查询插件列表(该任务未添加的) + * @param taskId 任务id + * @param roleId 角色id + * @param pluginName 插件名称 + * @param pluginType 插件类型 + * @return + */ + List findPluginOfNoAdded(@Param("taskId") Long taskId,@Param("roleId") Long roleId,@Param("pluginName") String pluginName,@Param("pluginType") Byte pluginType); } diff --git a/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java new file mode 100644 index 00000000..f82ca886 --- /dev/null +++ b/tall/src/main/java/com/ccsens/tall/persist/mapper/ProPluginPreviewFileMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.tall.persist.mapper; + +import com.ccsens.tall.bean.po.ProPluginPreviewFile; +import com.ccsens.tall.bean.po.ProPluginPreviewFileExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface ProPluginPreviewFileMapper { + long countByExample(ProPluginPreviewFileExample example); + + int deleteByExample(ProPluginPreviewFileExample example); + + int deleteByPrimaryKey(Long id); + + int insert(ProPluginPreviewFile record); + + int insertSelective(ProPluginPreviewFile record); + + List selectByExample(ProPluginPreviewFileExample example); + + ProPluginPreviewFile selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") ProPluginPreviewFile record, @Param("example") ProPluginPreviewFileExample example); + + int updateByExample(@Param("record") ProPluginPreviewFile record, @Param("example") ProPluginPreviewFileExample example); + + int updateByPrimaryKeySelective(ProPluginPreviewFile record); + + int updateByPrimaryKey(ProPluginPreviewFile record); +} \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java index f0e27b76..0f9748c8 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ISysPluginService.java @@ -2,12 +2,18 @@ package com.ccsens.tall.service; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.vo.PluginVo; +import com.github.pagehelper.PageInfo; import java.util.List; public interface ISysPluginService { - void saveSysPlugin(PluginDto.SaveSysPlugin saveSysPlugin); + /** + * 添加插件(插件总表) + * @param param + * @param userId + */ + void saveSysPlugin(PluginDto.SaveSysPlugin param,Long userId); List getPluginAll(); @@ -17,4 +23,30 @@ public interface ISysPluginService { Long getTaskDetailIdByPlugin(Long taskPluginId); + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param param + * @return + */ + List findPluginOfAdded(PluginDto.FindPluginByTask param); + + /** + * 根据任务id查询插件列表(该任务未添加的的) + * @param param + * @return + */ + PageInfo findPluginOfNoAdded(PluginDto.FindPluginByTaskNo param); + + /** + * 给任务添加插件 + * @param param + */ + void addPluginForTask(PluginDto.AddPluginForTask param,Long userId); + + /** + * 给任务删除插件 + * @param param + * @param userId + */ + void deletePluginForTask(PluginDto.DeletePluginForTask param, Long userId); } diff --git a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java index 67dfd654..78a07e36 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -256,6 +256,9 @@ public class ProRoleService implements IProRoleService { @Override public int selectPowerByRoleName(Long userId, Long projectId) { int power = 0; + if (null == userId || null == projectId){ + return power; + } SysProject project = projectDao.selectByPrimaryKey(projectId); if (ObjectUtil.isNotNull(project)) { if (project.getCreatorId().longValue() == userId) { diff --git a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java index 20482654..6f5d5a92 100644 --- a/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java +++ b/tall/src/main/java/com/ccsens/tall/service/SysPluginService.java @@ -2,11 +2,16 @@ package com.ccsens.tall.service; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.ObjectUtil; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.po.*; import com.ccsens.tall.bean.vo.PluginVo; import com.ccsens.tall.persist.dao.*; +import com.ccsens.util.WebConstant; +import com.ccsens.util.exception.BaseException; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -34,19 +39,190 @@ public class SysPluginService implements ISysPluginService{ private SigninFieldDao signinFieldDao; @Resource private Snowflake snowflake; + @Resource + private ProPluginPreviewFileDao proPluginPreviewFileDao; + @Resource + private ProRoleService proRoleService; + @Resource + private ProRoleDao proRoleDao; + @Resource + private ProMemberDao proMemberDao; + @Resource + private ProMemberRoleDao proMemberRoleDao; + @Resource + private TaskSubTimeDao taskSubTimeDao; /** * 添加插件 - * @param saveSysPlugin + * @param param */ @Override - public void saveSysPlugin(PluginDto.SaveSysPlugin saveSysPlugin) { + public void saveSysPlugin(PluginDto.SaveSysPlugin param,Long userId) { SysPlugin sysPlugin = new SysPlugin(); sysPlugin.setId(snowflake.nextId()); - sysPlugin.setName(saveSysPlugin.getName()); - sysPlugin.setDescription(saveSysPlugin.getDescription()); - sysPlugin.setShowType(saveSysPlugin.getShowType()); + sysPlugin.setName(param.getName()); + sysPlugin.setDescription(param.getDescription()); + sysPlugin.setShowType(param.getShowType()); + sysPlugin.setPluginIcon(param.getPluginIcon()); + sysPlugin.setPluginAuthor(param.getPluginAuthor()); + sysPlugin.setPluginClass(param.getPluginClass()); sysPluginDao.insertSelective(sysPlugin); + + //预览表中添加数据 + if (CollectionUtil.isNotEmpty(param.getPreviewImgs())){ + param.getPreviewImgs().forEach(previewImg -> { + ProPluginPreviewFile previewFile = new ProPluginPreviewFile(); + previewFile.setId(snowflake.nextId()); + previewFile.setPluginId(sysPlugin.getId()); + previewFile.setFileId(previewImg.getPreviewId()); + previewFile.setPreviewDescription(previewImg.getPreviewDescription()); + proPluginPreviewFileDao.insertSelective(previewFile); + }); + } + } + + /** + * 根据任务id查询插件列表(该任务已添加的) + * @param param + * @return + */ + @Override + public List findPluginOfAdded(PluginDto.FindPluginByTask param) { + List plugins = taskPluginDao.findPluginOfAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); + plugins.forEach(plugin -> { + ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); + example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); + List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); + proPluginPreviewFiles.forEach(previewFile -> { + PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); + img.setPreviewId(previewFile.getId()); + img.setPreviewDescription(previewFile.getPreviewDescription()); + plugin.getPreviewImgs().add(img); + }); + }); + return plugins; + } + + /** + * 根据任务id查询插件列表(该任务未添加的的) + * @param param + * @return + */ + @Override + public PageInfo findPluginOfNoAdded(PluginDto.FindPluginByTaskNo param) { + PageHelper.startPage(param.getPageNum(),param.getPageSize()); + List plugins = taskPluginDao.findPluginOfNoAdded(param.getTaskId(),param.getRoleId(),param.getPluginName(),param.getPluginType()); + plugins.forEach(plugin -> { + ProPluginPreviewFileExample example = new ProPluginPreviewFileExample(); + example.createCriteria().andPluginIdEqualTo(plugin.getPluginId()).andRecStatusEqualTo((byte)0); + List proPluginPreviewFiles = proPluginPreviewFileDao.selectByExample(example); + proPluginPreviewFiles.forEach(previewFile -> { + PluginVo.ImgByTaskAdded img = new PluginVo.ImgByTaskAdded(); + img.setPreviewId(previewFile.getId()); + img.setPreviewDescription(previewFile.getPreviewDescription()); + plugin.getPreviewImgs().add(img); + }); + }); + return new PageInfo<>(plugins); + } + + /** + * 给任务添加插件 + */ + @Override + public void addPluginForTask(PluginDto.AddPluginForTask param,Long currentUserId) { + //查找分解任务,通过分级任务找到任务详情 + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); + if (ObjectUtil.isNull(proTaskSubTime)){ + throw new BaseException("获取任务信息错误"); + } + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if (ObjectUtil.isNull(taskDetail)){ + throw new BaseException("获取任务信息错误"); + } + //查找权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, taskDetail.getProjectId()); + //当前用户是否是此任务的负责人 + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + if (executorRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { + flag = true; + } else { + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(taskDetail.getProjectId()); + List memberList = proMemberDao.selectByExample(memberExample); + if (CollectionUtil.isNotEmpty(memberList)) { + if (ObjectUtil.isNotNull(executorRole)) { + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if (proMemberRoleDao.countByExample(memberRoleExample) != 0) { + flag = true; + } + } + } + } + + //给任务添加插件 + if (1 < power || flag){ + ProTaskPlugin taskPlugin = new ProTaskPlugin(); + taskPlugin.setId(snowflake.nextId()); + taskPlugin.setPluginId(param.getPluginId()); + taskPlugin.setTaskDetailId(taskDetail.getId()); + taskPlugin.setMemberRoleId(param.getRoleId()); + taskPluginDao.insertSelective(taskPlugin); + }else { + throw new BaseException("权限不足"); + } + } + + /** + * 给任务删除插件 + * @param param + * @param currentUserId + */ + @Override + public void deletePluginForTask(PluginDto.DeletePluginForTask param, Long currentUserId) { + //查找分解任务,通过分级任务找到任务详情 + ProTaskSubTime proTaskSubTime = taskSubTimeDao.selectByPrimaryKey(param.getTaskId()); + if (ObjectUtil.isNull(proTaskSubTime)){ + throw new BaseException("获取任务信息错误"); + } + ProTaskDetail taskDetail = taskDetailDao.selectByPrimaryKey(proTaskSubTime.getTaskDetailId()); + if (ObjectUtil.isNull(taskDetail)){ + throw new BaseException("获取任务信息错误"); + } + //查找权限 + int power = proRoleService.selectPowerByRoleName(currentUserId, taskDetail.getProjectId()); + //当前用户是否是此任务的负责人 + boolean flag = false; + ProRole executorRole = proRoleDao.selectByPrimaryKey(taskDetail.getExecutorRole()); + if (executorRole.getName().equalsIgnoreCase(WebConstant.ROLE_NAME.AllMember.phase)) { + flag = true; + } else { + ProMemberExample memberExample = new ProMemberExample(); + memberExample.createCriteria().andUserIdEqualTo(currentUserId).andProjectIdEqualTo(taskDetail.getProjectId()); + List memberList = proMemberDao.selectByExample(memberExample); + if (CollectionUtil.isNotEmpty(memberList)) { + if (ObjectUtil.isNotNull(executorRole)) { + ProMemberRoleExample memberRoleExample = new ProMemberRoleExample(); + memberRoleExample.createCriteria().andRoleIdEqualTo(executorRole.getId()).andMemberIdEqualTo(memberList.get(0).getId()); + if (proMemberRoleDao.countByExample(memberRoleExample) != 0) { + flag = true; + } + } + } + } + + //给任务删除插件 + if (1 < power || flag){ + ProTaskPluginExample taskPluginExample = new ProTaskPluginExample(); + taskPluginExample.createCriteria().andPluginIdEqualTo(param.getPluginId()) + .andTaskDetailIdEqualTo(taskDetail.getId()) + .andMemberRoleIdNotEqualTo(param.getRoleId()); + taskPluginDao.deleteByExample(taskPluginExample); + }else { + throw new BaseException("权限不足"); + } } @Override @@ -55,6 +231,7 @@ public class SysPluginService implements ISysPluginService{ return pluginInfoList; } + /** * 透过插件id查询签到的信息 */ @@ -135,4 +312,6 @@ public class SysPluginService implements ISysPluginService{ } return taskDetailId; } + + } diff --git a/tall/src/main/java/com/ccsens/tall/web/PluginController.java b/tall/src/main/java/com/ccsens/tall/web/PluginController.java index 51c54e2f..1845ebfd 100644 --- a/tall/src/main/java/com/ccsens/tall/web/PluginController.java +++ b/tall/src/main/java/com/ccsens/tall/web/PluginController.java @@ -1,5 +1,6 @@ package com.ccsens.tall.web; +import com.ccsens.tall.annotation.MustLoginTall; import com.ccsens.tall.bean.dto.PluginDto; import com.ccsens.tall.bean.dto.TaskDto; import com.ccsens.tall.bean.dto.WeekMeetingDto; @@ -11,6 +12,7 @@ import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.annotation.OperateType; import com.ccsens.util.bean.dto.QueryDto; +import com.github.pagehelper.PageInfo; import io.jsonwebtoken.Claims; import io.swagger.annotations.*; import lombok.extern.slf4j.Slf4j; @@ -30,13 +32,56 @@ public class PluginController { @Autowired private ISysPluginService sysPluginService; - @ApiOperation(value = "添加插件", notes = "") + @MustLoginTall + @ApiOperation(value = "添加插件(插件总表)", notes = "") @ApiImplicitParams({ }) @RequestMapping(value = "/save", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse saveSysPlugin(HttpServletRequest request, @ApiParam @Validated @RequestBody PluginDto.SaveSysPlugin saveSysPlugin) throws Exception { - log.info("添加一个插件:{}",saveSysPlugin); - sysPluginService.saveSysPlugin(saveSysPlugin); + public JsonResponse saveSysPlugin(HttpServletRequest request, @ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("添加一个插件:{}",params); + sysPluginService.saveSysPlugin(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @ApiOperation(value = "根据任务id查询插件列表(该任务已添加的)", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/findPluginOfAdded", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> findPluginOfAdded(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("根据任务id查询已添加插件列表:{}",params); + List pluginByTaskAddedList = sysPluginService.findPluginOfAdded(params.getParam()); + return JsonResponse.newInstance().ok(pluginByTaskAddedList); + } + + @ApiOperation(value = "根据任务id查询插件列表(该任务未添加的的)", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/findPluginOfNoAdded", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> findPluginOfNoAdded(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("根据任务id查询未添加插件列表:{}",params); + PageInfo pluginByTaskNoAddedList = sysPluginService.findPluginOfNoAdded(params.getParam()); + return JsonResponse.newInstance().ok(pluginByTaskNoAddedList); + } + + @MustLoginTall + @ApiOperation(value = "给任务添加插件", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/addPluginForTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse addPluginForTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("给任务添加插件:{}",params); + sysPluginService.addPluginForTask(params.getParam(),params.getUserId()); + return JsonResponse.newInstance().ok(); + } + + @MustLoginTall + @ApiOperation(value = "给任务删除插件", notes = "") + @ApiImplicitParams({ + }) + @RequestMapping(value = "/deletePluginForTask", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse deletePluginForTask(@ApiParam @Validated @RequestBody QueryDto params) throws Exception { + log.info("给任务删除插件:{}",params); + sysPluginService.deletePluginForTask(params.getParam(),params.getUserId()); return JsonResponse.newInstance().ok(); } diff --git a/tall/src/main/resources/application.yml b/tall/src/main/resources/application.yml index ebc544af..b5408a3a 100644 --- a/tall/src/main/resources/application.yml +++ b/tall/src/main/resources/application.yml @@ -1,5 +1,5 @@ spring: profiles: - active: test - include: util-test,common + active: dev + include: util-dev,common diff --git a/tall/src/main/resources/mapper_dao/TaskPluginDao.xml b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml new file mode 100644 index 00000000..dac81809 --- /dev/null +++ b/tall/src/main/resources/mapper_dao/TaskPluginDao.xml @@ -0,0 +1,62 @@ + + + + + + + + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml b/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml new file mode 100644 index 00000000..71400d6d --- /dev/null +++ b/tall/src/main/resources/mapper_raw/ProPluginPreviewFileMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, plugin_id, file_id, created_at, updated_at, rec_status, preview_description + + + + + delete from t_pro_plugin_preview_file + where id = #{id,jdbcType=BIGINT} + + + delete from t_pro_plugin_preview_file + + + + + + insert into t_pro_plugin_preview_file (id, plugin_id, file_id, + created_at, updated_at, rec_status, + preview_description) + values (#{id,jdbcType=BIGINT}, #{pluginId,jdbcType=BIGINT}, #{fileId,jdbcType=BIGINT}, + #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}, + #{previewDescription,jdbcType=VARCHAR}) + + + insert into t_pro_plugin_preview_file + + + id, + + + plugin_id, + + + file_id, + + + created_at, + + + updated_at, + + + rec_status, + + + preview_description, + + + + + #{id,jdbcType=BIGINT}, + + + #{pluginId,jdbcType=BIGINT}, + + + #{fileId,jdbcType=BIGINT}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + #{previewDescription,jdbcType=VARCHAR}, + + + + + + update t_pro_plugin_preview_file + + + id = #{record.id,jdbcType=BIGINT}, + + + plugin_id = #{record.pluginId,jdbcType=BIGINT}, + + + file_id = #{record.fileId,jdbcType=BIGINT}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + preview_description = #{record.previewDescription,jdbcType=VARCHAR}, + + + + + + + + update t_pro_plugin_preview_file + set id = #{record.id,jdbcType=BIGINT}, + plugin_id = #{record.pluginId,jdbcType=BIGINT}, + file_id = #{record.fileId,jdbcType=BIGINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT}, + preview_description = #{record.previewDescription,jdbcType=VARCHAR} + + + + + + update t_pro_plugin_preview_file + + + plugin_id = #{pluginId,jdbcType=BIGINT}, + + + file_id = #{fileId,jdbcType=BIGINT}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + preview_description = #{previewDescription,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_pro_plugin_preview_file + set plugin_id = #{pluginId,jdbcType=BIGINT}, + file_id = #{fileId,jdbcType=BIGINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT}, + preview_description = #{previewDescription,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml index d9e9f440..0756b261 100644 --- a/tall/src/main/resources/mapper_raw/SysPluginMapper.xml +++ b/tall/src/main/resources/mapper_raw/SysPluginMapper.xml @@ -6,10 +6,13 @@ + - + + + @@ -70,7 +73,8 @@ - id, name, description, scene, created_at, updated_at, rec_status, show_type + id, name, description, scene, show_type, created_at, updated_at, rec_status, plugin_icon, + plugin_author, plugin_class