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/dto/InputDocDto.java b/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java index 4380626c..2d44b92c 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java +++ b/tall/src/main/java/com/ccsens/tall/bean/dto/InputDocDto.java @@ -59,7 +59,7 @@ public class InputDocDto { @ApiModelProperty("任务id") private Long taskId; @NotEmpty(message = "文档名称不能为空") - @ApiModelProperty("文件名称") + @ApiModelProperty("文档名称") private String[] fileName; } @@ -93,8 +93,8 @@ public class InputDocDto { @Data @ApiModel("修改上传文件的备注信息") public static class UpdateDocOfRemark{ - @NotNull(message = "请选择要删除的备注信息") - @ApiModelProperty("文档上传记录id") + @NotNull(message = "请选择要修改输入文件上传id") + @ApiModelProperty("输入文件上传id") private Long recordId; @ApiModelProperty("备注信息") private String remark; 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/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/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/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/bean/vo/TaskVo.java b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java index 829dcc21..b6f975e4 100644 --- a/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java +++ b/tall/src/main/java/com/ccsens/tall/bean/vo/TaskVo.java @@ -155,7 +155,7 @@ public class TaskVo { private String importParam; @ApiModelProperty("优先级 默认0 3,紧急重要 2,紧急不重要 1,重要不紧急 0,不重要不紧急") private Byte priority; - @ApiModelProperty("是否是里程碑 0否 1是 2普通任务 3关键任务") + @ApiModelProperty("是否是里程碑 0否 1里程碑 2普通任务 3关键任务") private Byte milestone; @ApiModelProperty("提醒的信息") private List remindInfoList; 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/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; 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 dc79d93b..008bf71a 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProRoleService.java @@ -379,6 +379,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/DebugController.java b/tall/src/main/java/com/ccsens/tall/web/DebugController.java index 8beb2ccd..2b292916 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/java/com/ccsens/tall/web/InputDocController.java b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java index 633673e5..c44a22f4 100644 --- a/tall/src/main/java/com/ccsens/tall/web/InputDocController.java +++ b/tall/src/main/java/com/ccsens/tall/web/InputDocController.java @@ -30,9 +30,11 @@ import java.util.List; @RestController @RequestMapping("/inputDoc") public class InputDocController { + @Autowired private IInputDocService iInputDocService; - @MustLogin + + /*@MustLogin @ApiOperation(value = "添加输入文档", notes = "1007:添加输入文档") @RequestMapping(value = "/addInputDoc", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) public JsonResponse addInputDoc(@ApiParam @Validated @RequestBody QueryDto params) { @@ -40,7 +42,7 @@ public class InputDocController { //iInputDocService.addInputDoc(params.getParam(),params.getUserId()); log.info("添加输入文档"); return JsonResponse.newInstance().ok(); - } + }*/ @MustLogin @ApiOperation(value = "通过任务id查询输入文档", notes = "1007:通过任务id查询输入文档") 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-dev.yml b/tall/src/main/resources/application-dev.yml index a9224030..b99ba8b1 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 42358e7d..c8697ed1 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/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 + SELECT + q.id AS questionId, + o.id, + o.CODE, + o.sort, + o.hospital, + o.START, + o.END + FROM + t_question_ocr o, + t_question q + WHERE + o.CODE = q.CODE + AND o.sort = q.sort + AND o.CODE = #{code} + AND o.hospital = #{hospitalId} + AND o.rec_status = 0 + AND q.rec_status = 0 + + \ No newline at end of file diff --git a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml index 0e86b75b..7d68c55b 100644 --- a/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml +++ b/tcm/src/main/resources/mapper_dao/ReportCodeDao.xml @@ -96,12 +96,14 @@ + + @@ -116,13 +118,15 @@ c1.sort as fSort, c1.remark as fRemark, c1.report_type as fReportType, + c1.record_type as fRecordType, c2.id as sId, c2.code as sCode, c2.`name` as sName, c2.must as sMust, c2.sort as sSort, c2.remark as sRemark, - c2.report_type as sReportType + c2.report_type as sReportType, + c2.record_type as sRecordType FROM t_report_code c1 LEFT JOIN ( diff --git a/tcm/src/main/resources/mapper_raw/QuestionOcrMapper.xml b/tcm/src/main/resources/mapper_raw/QuestionOcrMapper.xml new file mode 100644 index 00000000..234718b9 --- /dev/null +++ b/tcm/src/main/resources/mapper_raw/QuestionOcrMapper.xml @@ -0,0 +1,305 @@ + + + + + + + + + + + + + + + + + + + + + + + + + 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, code, sort, hospital, start, end, remark, operator, created_at, updated_at, rec_status + + + + + delete from t_question_ocr + where id = #{id,jdbcType=BIGINT} + + + delete from t_question_ocr + + + + + + insert into t_question_ocr (id, code, sort, + hospital, start, end, + remark, operator, created_at, + updated_at, rec_status) + values (#{id,jdbcType=BIGINT}, #{code,jdbcType=VARCHAR}, #{sort,jdbcType=INTEGER}, + #{hospital,jdbcType=BIGINT}, #{start,jdbcType=VARCHAR}, #{end,jdbcType=VARCHAR}, + #{remark,jdbcType=VARCHAR}, #{operator,jdbcType=BIGINT}, #{createdAt,jdbcType=TIMESTAMP}, + #{updatedAt,jdbcType=TIMESTAMP}, #{recStatus,jdbcType=TINYINT}) + + + insert into t_question_ocr + + + id, + + + code, + + + sort, + + + hospital, + + + start, + + + end, + + + remark, + + + operator, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{code,jdbcType=VARCHAR}, + + + #{sort,jdbcType=INTEGER}, + + + #{hospital,jdbcType=BIGINT}, + + + #{start,jdbcType=VARCHAR}, + + + #{end,jdbcType=VARCHAR}, + + + #{remark,jdbcType=VARCHAR}, + + + #{operator,jdbcType=BIGINT}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_question_ocr + + + id = #{record.id,jdbcType=BIGINT}, + + + code = #{record.code,jdbcType=VARCHAR}, + + + sort = #{record.sort,jdbcType=INTEGER}, + + + hospital = #{record.hospital,jdbcType=BIGINT}, + + + start = #{record.start,jdbcType=VARCHAR}, + + + end = #{record.end,jdbcType=VARCHAR}, + + + remark = #{record.remark,jdbcType=VARCHAR}, + + + operator = #{record.operator,jdbcType=BIGINT}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_question_ocr + set id = #{record.id,jdbcType=BIGINT}, + code = #{record.code,jdbcType=VARCHAR}, + sort = #{record.sort,jdbcType=INTEGER}, + hospital = #{record.hospital,jdbcType=BIGINT}, + start = #{record.start,jdbcType=VARCHAR}, + end = #{record.end,jdbcType=VARCHAR}, + remark = #{record.remark,jdbcType=VARCHAR}, + operator = #{record.operator,jdbcType=BIGINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_question_ocr + + + code = #{code,jdbcType=VARCHAR}, + + + sort = #{sort,jdbcType=INTEGER}, + + + hospital = #{hospital,jdbcType=BIGINT}, + + + start = #{start,jdbcType=VARCHAR}, + + + end = #{end,jdbcType=VARCHAR}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + operator = #{operator,jdbcType=BIGINT}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_question_ocr + set code = #{code,jdbcType=VARCHAR}, + sort = #{sort,jdbcType=INTEGER}, + hospital = #{hospital,jdbcType=BIGINT}, + start = #{start,jdbcType=VARCHAR}, + end = #{end,jdbcType=VARCHAR}, + remark = #{remark,jdbcType=VARCHAR}, + operator = #{operator,jdbcType=BIGINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file 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/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 9e0276ca..e621ef2d 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -9,6 +9,8 @@ public enum CodeEnum { */ SUCCESS(200, "ok", true), SYS_ERROR(500, "网络繁忙,请您稍后重试", false), + THIRD_ERROR(-1, "调用第三方刚接口异常", false), + FILE_FORMAT_ERROR(1, "文件格式错误", true), AUDITED(2, "已经审核通过,不重复提交。", true), POSITION_NO_FOUND(3, "未找到对应职务,请重新选择职务。", true), @@ -245,5 +247,9 @@ public enum CodeEnum { private Integer code; private String msg; private boolean success; + + public void setMsg(String msg) { + this.msg = msg; + } } 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..82452479 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,10 +79,41 @@ 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)); - MultiValueMap paramMap = transMultiValueMap(json); + MultiValueMap paramMap; + if (params == null) { + paramMap = new LinkedMultiValueMap<>(); + } else { + JSONObject json = JSON.parseObject(JSON.toJSONString(params)); + paramMap = transMultiValueMap(json); + } + HttpHeaders headers = new HttpHeaders(); headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); HttpEntity formEntity = new HttpEntity<>(paramMap, headers); diff --git a/util/src/main/java/com/ccsens/util/baidu/BaiDuDto.java b/util/src/main/java/com/ccsens/util/baidu/BaiDuDto.java new file mode 100644 index 00000000..e336a488 --- /dev/null +++ b/util/src/main/java/com/ccsens/util/baidu/BaiDuDto.java @@ -0,0 +1,19 @@ +package com.ccsens.util.baidu; + +import io.swagger.annotations.ApiModel; +import lombok.Data; + +/** + * @description: + * @author: whj + * @time: 2021/3/31 16:39 + */ +public class BaiDuDto { + + @ApiModel("通用文字识别(标准版)-请求参数") + @Data + public static class GeneralBasic{ + private String image; + private String url; + } +} diff --git a/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java b/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java new file mode 100644 index 00000000..1dc4b127 --- /dev/null +++ b/util/src/main/java/com/ccsens/util/baidu/BaiDuUtil.java @@ -0,0 +1,95 @@ +package com.ccsens.util.baidu; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.RedisUtil; +import com.ccsens.util.RestTemplateUtil; +import com.ccsens.util.exception.BaseException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +import javax.annotation.PostConstruct; +import javax.annotation.Resource; + +/** + * @description: 百度API + * @author: whj + * @time: 2021/3/31 15:30 + */ +@Component +@Slf4j +public class BaiDuUtil { + + @Resource + private RedisUtil redisUtil; + private static BaiDuUtil util; + /**token_appKey*/ + private static final String tokenKey = "baidu_token_"; + + private static final String authUrl = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id={}&client_secret={}"; + private static final String generalBasicUrl = "https://aip.baidubce.com/rest/2.0/ocr/v1/general_basic?access_token={}"; + + @PostConstruct + public void init(){ + util = this; + util.redisUtil = this.redisUtil; + } + + /** + * 获取token + * @param appKey appKey + * @param secretKey secretKey + * @return token + */ + public static String getToken(String appKey, String secretKey){ + log.info("获取百度认证:{},{}", appKey, secretKey); + String key = tokenKey + appKey; + String token = (String) util.redisUtil.get(key); + log.info("缓存token:{}", token); + if (StrUtil.isNotEmpty(token)) { + return token; + } + String url = StrUtil.format(authUrl, appKey, secretKey); + String result = RestTemplateUtil.postUrlEncode(url, null); + log.info("获取百度认证:{}", result); + JSONObject json = JSONObject.parseObject(result); + if (json.containsKey(Code.ERROR)) { + log.info("获取token失败"); + CodeEnum thirdError = CodeEnum.THIRD_ERROR; + thirdError.setMsg(result); + throw new BaseException(thirdError); + } + token = json.getString(Code.ACCESS_TOKEN); + // 有效期,减10分钟 + int expiresTime = json.getIntValue(Code.EXPIRES_TIME) - 10*60; + util.redisUtil.set(key, token, expiresTime); + return token; + } + + + public static BaiDuVo.GeneralBasic generalBasic(String appKey, String secretKey, BaiDuDto.GeneralBasic basic) { + String token = getToken(appKey, secretKey); + String url = StrUtil.format(generalBasicUrl, token); +// String result = RestTemplateUtil.postBody(url, basic); + String result = RestTemplateUtil.postUrlEncode(url, basic); + log.info("调用通用文字识别(标准版)结果:{}", result); + if (result.contains(Code.GENERAL_BASIC_ERROR)) { + CodeEnum thirdError = CodeEnum.THIRD_ERROR; + thirdError.setMsg(result); + throw new BaseException(thirdError); + } + BaiDuVo.GeneralBasic basicVo = JSONObject.parseObject(result, BaiDuVo.GeneralBasic.class); + return basicVo; + } + + private static class Code{ + private final static String ERROR = "error"; + private final static String GENERAL_BASIC_ERROR = "error_code"; + private final static String ERROR_DESC = "error_description"; + private final static String ACCESS_TOKEN = "access_token"; + private final static String EXPIRES_TIME = "expires_in"; + + } + +} diff --git a/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java b/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java new file mode 100644 index 00000000..4c722df6 --- /dev/null +++ b/util/src/main/java/com/ccsens/util/baidu/BaiDuVo.java @@ -0,0 +1,33 @@ +package com.ccsens.util.baidu; + +import com.alibaba.fastjson.annotation.JSONField; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: whj + * @time: 2021/3/31 16:11 + */ +public class BaiDuVo { + + @ApiModel("通用文字识别(标准版)") + @Data + public static class GeneralBasic{ + @JSONField(name="log_id") + private String logId; + @JSONField(name="words_result") + private List wordsResult; + @JSONField(name="words_result_num") + private int wordsResultNum; + } + + @Data + @ApiModel("文字识别-文字") + public static class GeneralWord{ + private String words; + } +} 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()); +// } }