Browse Source

update:模板协议管理

yonge 3 years ago
parent
commit
e0b0977f23

+ 25 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/TenantContractTemplateDao.java

@@ -0,0 +1,25 @@
+package com.ym.mec.biz.dal.dao;
+
+import java.util.List;
+import java.util.Map;
+
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.biz.dal.dto.TenantContractTemplateDto;
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
+
+public interface TenantContractTemplateDao extends BaseDAO<Integer, TenantContractTemplate> {
+
+	List<TenantContractTemplateDto> queryPageList(Map<String, Object> params);
+	
+	/**
+	 * 获取最新协议模板
+	 * @param owner
+	 * @param type
+	 * @return
+	 */
+	TenantContractTemplate queryLatestContractTemplate(@Param("owner") String owner, @Param("type") String type, @Param("tenantId") Integer tenantId);
+	
+	int disableContract(@Param("owner") String owner, @Param("type") String type, @Param("tenantId") Integer tenantId);
+}

+ 16 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/TenantContractTemplateDto.java

@@ -0,0 +1,16 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
+
+public class TenantContractTemplateDto extends TenantContractTemplate {
+
+	private String latestOperator;
+
+	public String getLatestOperator() {
+		return latestOperator;
+	}
+
+	public void setLatestOperator(String latestOperator) {
+		this.latestOperator = latestOperator;
+	}
+}

+ 159 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/TenantContractTemplate.java

@@ -0,0 +1,159 @@
+package com.ym.mec.biz.dal.entity;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+/**
+ * 对应数据库表(tenant_contract_template):
+ */
+public class TenantContractTemplate {
+
+	@ApiModelProperty(value = "编号")
+	private Integer id;
+
+	@ApiModelProperty(value = "协议名称")
+	private String name;
+
+	@ApiModelProperty(value = "协议类型")
+	private String type;
+
+	@ApiModelProperty(value = "协议内容")
+	private String contractTemplateContent;
+
+	@ApiModelProperty(value = "原始协议文件url")
+	private String origanalFileUrl;
+
+	@ApiModelProperty(value = "协议号")
+	private String contractNo;
+
+	@ApiModelProperty(value = "是否启用(1-启用  0-不启用)")
+	private Boolean status;
+
+	@ApiModelProperty(value = "协议版本号")
+	private Integer version;
+
+	@ApiModelProperty(value = "最后修改人编号")
+	private Integer modifyBy;
+
+	@ApiModelProperty(value = "最后修改时间")
+	private java.util.Date updateTime;
+
+	@ApiModelProperty(value = "创建时间")
+	private java.util.Date createTime;
+
+	@ApiModelProperty(value = "甲方")
+	private String owner;
+	
+	private Integer tenantId;
+
+	public void setId(Integer id) {
+		this.id = id;
+	}
+
+	public Integer getId() {
+		return this.id;
+	}
+
+	public void setName(String name) {
+		this.name = name;
+	}
+
+	public String getName() {
+		return this.name;
+	}
+
+	public void setContractTemplateContent(String contractTemplateContent) {
+		this.contractTemplateContent = contractTemplateContent;
+	}
+
+	public String getContractTemplateContent() {
+		return this.contractTemplateContent;
+	}
+
+	public void setOriganalFileUrl(String origanalFileUrl) {
+		this.origanalFileUrl = origanalFileUrl;
+	}
+
+	public String getOriganalFileUrl() {
+		return this.origanalFileUrl;
+	}
+
+	public void setContractNo(String contractNo) {
+		this.contractNo = contractNo;
+	}
+
+	public String getContractNo() {
+		return this.contractNo;
+	}
+
+	public void setStatus(boolean status) {
+		this.status = status;
+	}
+
+	public boolean getStatus() {
+		return this.status;
+	}
+
+	public void setVersion(Integer version) {
+		this.version = version;
+	}
+
+	public Integer getVersion() {
+		return this.version;
+	}
+
+	public void setModifyBy(Integer modifyBy) {
+		this.modifyBy = modifyBy;
+	}
+
+	public Integer getModifyBy() {
+		return this.modifyBy;
+	}
+
+	public void setUpdateTime(java.util.Date updateTime) {
+		this.updateTime = updateTime;
+	}
+
+	public java.util.Date getUpdateTime() {
+		return this.updateTime;
+	}
+
+	public void setCreateTime(java.util.Date createTime) {
+		this.createTime = createTime;
+	}
+
+	public java.util.Date getCreateTime() {
+		return this.createTime;
+	}
+
+	public String getType() {
+		return type;
+	}
+
+	public void setType(String type) {
+		this.type = type;
+	}
+
+	public String getOwner() {
+		return owner;
+	}
+
+	public void setOwner(String owner) {
+		this.owner = owner;
+	}
+
+	public Integer getTenantId() {
+		return tenantId;
+	}
+
+	public void setTenantId(Integer tenantId) {
+		this.tenantId = tenantId;
+	}
+
+	@Override
+	public String toString() {
+		return ToStringBuilder.reflectionToString(this);
+	}
+
+}

+ 40 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/TenantContractTemplateService.java

@@ -0,0 +1,40 @@
+package com.ym.mec.biz.service;
+
+import com.ym.mec.biz.dal.dto.TenantContractTemplateDto;
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.service.BaseService;
+
+public interface TenantContractTemplateService extends BaseService<Integer, TenantContractTemplate> {
+	
+	/**
+	 * 分页查询
+	 * @param queryInfo
+	 * @return
+	 */
+	PageInfo<TenantContractTemplateDto> queryPageList(QueryInfo queryInfo);
+	
+	/**
+	 * 启用协议
+	 * @param id
+	 * @param userId 操作人
+	 * @return
+	 */
+	boolean enableContract(Integer id, Integer userId);
+
+	/**
+	 * 更新协议版本
+	 * @return
+	 */
+	boolean updateContractVersion();
+	
+	/**
+	 * 查询最新协议模板
+	 * @param owner
+	 * @param type
+	 * @return
+	 */
+	String queryLatestContractTemplate(String owner, String type);
+	
+}

+ 9 - 9
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ContractServiceImpl.java

@@ -923,15 +923,15 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			throw new BizException("机构配置信息查询失败");
 		}
 		
-		params.put("compayName", tenantInfo.getTsignName());
+		params.put("companyName", tenantInfo.getTsignName());
 		params.put("sealPicture", tenantConfig.getCorporateChops());
         
 		if (studentInfo.getTenantId() == 1) {
 			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				params.put("compayName", "深圳大雅乐盟网络教育股份有限公司");
+				params.put("companyName", "深圳大雅乐盟网络教育股份有限公司");
 				params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png");
 			} else {
-				params.put("compayName", "武汉长乐长风乐器销售有限公司");
+				params.put("companyName", "武汉长乐长风乐器销售有限公司");
 				params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png");
 			}
 		}
@@ -1049,15 +1049,15 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			throw new BizException("机构配置信息查询失败");
 		}
 		
-		params.put("compayName", tenantInfo.getTsignName());
+		params.put("companyName", tenantInfo.getTsignName());
 		params.put("sealPicture", tenantConfig.getCorporateChops());
         
 		if (studentInfo.getTenantId() == 1) {
 			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				//params.put("compayName", "深圳大雅乐盟网络教育股份有限公司");
+				//params.put("companyName", "深圳大雅乐盟网络教育股份有限公司");
 				//params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png");
 			} else {
-				params.put("compayName", "武汉长乐长风乐器销售有限公司");
+				params.put("companyName", "武汉长乐长风乐器销售有限公司");
 				params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png");
 			}
 		}
@@ -1143,15 +1143,15 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			throw new BizException("机构配置信息查询失败");
 		}
 		
-		params.put("compayName", tenantInfo.getTsignName());
+		params.put("companyName", tenantInfo.getTsignName());
 		params.put("sealPicture", tenantConfig.getCorporateChops());
         
 		if (studentInfo.getTenantId() == 1) {
 			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				//params.put("compayName", "深圳大雅乐盟网络教育股份有限公司");
+				//params.put("companyName", "深圳大雅乐盟网络教育股份有限公司");
 				//params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png");
 			} else {
-				params.put("compayName", "武汉长乐长风乐器销售有限公司");
+				params.put("companyName", "武汉长乐长风乐器销售有限公司");
 				params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png");
 			}
 		}

+ 98 - 0
mec-biz/src/main/java/com/ym/mec/biz/service/impl/TenantContractTemplateServiceImpl.java

@@ -0,0 +1,98 @@
+package com.ym.mec.biz.service.impl;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.ym.mec.biz.dal.dao.TenantContractTemplateDao;
+import com.ym.mec.biz.dal.dto.TenantContractTemplateDto;
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
+import com.ym.mec.biz.service.TenantContractTemplateService;
+import com.ym.mec.common.dal.BaseDAO;
+import com.ym.mec.common.exception.BizException;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.service.impl.BaseServiceImpl;
+import com.ym.mec.common.tenant.TenantContextHolder;
+import com.ym.mec.util.collection.MapUtil;
+
+@Service
+public class TenantContractTemplateServiceImpl extends BaseServiceImpl<Integer, TenantContractTemplate>  implements TenantContractTemplateService {
+	
+	@Autowired
+	private TenantContractTemplateDao tenantContractTemplateDao;
+
+	@Override
+	public BaseDAO<Integer, TenantContractTemplate> getDAO() {
+		return tenantContractTemplateDao;
+	}
+
+	@Override
+	public PageInfo<TenantContractTemplateDto> queryPageList(QueryInfo queryInfo) {
+		PageInfo<TenantContractTemplateDto> pageInfo = new PageInfo<TenantContractTemplateDto>(queryInfo.getPage(), queryInfo.getRows());
+		Map<String, Object> params = new HashMap<String, Object>();
+		MapUtil.populateMap(params, queryInfo);
+		
+		List<TenantContractTemplateDto> dataList = null;
+		int count = this.findCount(params);
+		if (count > 0) {
+			pageInfo.setTotal(count);
+			params.put("offset", pageInfo.getOffset());
+			dataList = tenantContractTemplateDao.queryPageList(params);
+		}
+		if (count == 0) {
+			dataList = new ArrayList<TenantContractTemplateDto>();
+		}
+		pageInfo.setRows(dataList);
+		return pageInfo;
+	}
+
+	@Override
+	@Transactional
+	public boolean enableContract(Integer id, Integer userId) {
+		TenantContractTemplate tenantContractTemplate = tenantContractTemplateDao.get(id);
+		
+		if(tenantContractTemplate == null){
+			throw new BizException("未查询到协议模板");
+		}
+		
+		if(tenantContractTemplate.getStatus()){
+			return true;
+		}
+		
+		tenantContractTemplateDao.disableContract(tenantContractTemplate.getOwner(), tenantContractTemplate.getType(), tenantContractTemplate.getTenantId());
+		
+		Date date = new Date();
+		
+		tenantContractTemplate.setStatus(true);
+		tenantContractTemplate.setUpdateTime(date);
+		tenantContractTemplate.setModifyBy(userId);
+		
+		tenantContractTemplateDao.update(tenantContractTemplate);
+		
+		return true;
+	}
+
+	@Override
+	public boolean updateContractVersion() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public String queryLatestContractTemplate(String owner, String type) {
+		TenantContractTemplate tenantContractTemplate = tenantContractTemplateDao.queryLatestContractTemplate(owner, type, TenantContextHolder.getTenantId());
+		
+		if(tenantContractTemplate == null){
+			throw new BizException("未查询到协议模板");
+		}
+		return tenantContractTemplate.getContractTemplateContent();
+	}
+	
+}

+ 3 - 3
mec-biz/src/main/resources/config/contracts/product4.ftl

@@ -83,7 +83,7 @@
 <body style="font-family:'SimSun'">
     <div class="container">
         <h1>《产品与服务协议》</h1>
-                            甲方:${compayName} <br/>
+                            甲方:${companyName} <br/>
         <!-- <#if ownershipType == 'OWN'>
 		甲方:深圳大雅乐盟网络教育股份有限公司
 		<#else>
@@ -179,14 +179,14 @@
 
         <div class="signature">
         	<#if isShowVisualSeal>
-            <div class="sign">甲方签章:${compayName}<img class="cachet" src="${sealPicture!}" alt="" />
+            <div class="sign">甲方签章:${companyName}<img class="cachet" src="${sealPicture!}" alt="" />
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
             <div class="sign">乙方签章:${studentInfo.realName!}
                 <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         	<#else>
-            <div class="sign">甲方签章:${compayName}
+            <div class="sign">甲方签章:${companyName}
                 <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
             <div class="sign">乙方签章:

+ 139 - 0
mec-biz/src/main/resources/config/mybatis/TenantContractTemplateMapper.xml

@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<!-- 这个文件是自动生成的。 不要修改此文件。所有改动将在下次重新自动生成时丢失。 -->
+<mapper namespace="com.ym.mec.biz.dal.dao.TenantContractTemplateDao">
+
+	<resultMap type="com.ym.mec.biz.dal.entity.TenantContractTemplate"
+		id="TenantContractTemplate">
+		<result column="id_" property="id" />
+		<result column="name_" property="name" />
+		<result column="type_" property="type" />
+		<result column="contract_template_content_" property="contractTemplateContent" />
+		<result column="origanal_file_url_" property="origanalFileUrl" />
+		<result column="contract_no_" property="contractNo" />
+		<result column="status_" property="status" />
+		<result column="version_" property="version" />
+		<result column="modify_by_" property="modifyBy" />
+		<result column="update_time_" property="updateTime" />
+		<result column="create_time_" property="createTime" />
+		<result column="owner_" property="owner" />
+		<result column="tenant_id_" property="tenantId" />
+	</resultMap>
+	
+	<resultMap type="com.ym.mec.biz.dal.dto.TenantContractTemplateDto"
+		id="TenantContractTemplateDto">
+		<result column="latest_operator_" property="latestOperator" />
+	</resultMap>
+
+	<!-- 根据主键查询一条记录 -->
+	<select id="get" resultMap="TenantContractTemplate">
+		SELECT * FROM tenant_contract_template WHERE id_ = #{id}
+	</select>
+
+	<!-- 全查询 -->
+	<select id="findAll" resultMap="TenantContractTemplate">
+		SELECT * FROM tenant_contract_template ORDER BY id_
+	</select>
+
+	<!-- 向数据库增加一条记录 -->
+	<insert id="insert" parameterType="com.ym.mec.biz.dal.entity.TenantContractTemplate"
+		useGeneratedKeys="true" keyColumn="id" keyProperty="id">
+		<!-- <selectKey resultClass="int" keyProperty="id" > SELECT SEQ_WSDEFINITION_ID.nextval 
+			AS ID FROM DUAL </selectKey> -->
+		INSERT INTO tenant_contract_template
+		(id_,name_,type_,contract_template_content_,origanal_file_url_,contract_no_,status_,version_,modify_by_,update_time_,create_time_,owner_,tenant_id_)
+		VALUES(#{id},#{name},#{type},#{contractTemplateContent},#{origanalFileUrl},#{contractNo},#{status},#{version},#{modifyBy},#{updateTime},#{createTime},#{owner},#{tenantId})
+	</insert>
+
+	<!-- 根据主键查询一条记录 -->
+	<update id="update" parameterType="com.ym.mec.biz.dal.entity.TenantContractTemplate">
+		UPDATE tenant_contract_template
+		<set>
+			<if test="contractTemplateContent != null">
+				contract_template_content_ = #{contractTemplateContent},
+			</if>
+			<if test="status != null">
+				status_ = #{status},
+			</if>
+			<if test="type != null">
+				type_ = #{type},
+			</if>
+			<if test="origanalFileUrl != null">
+				origanal_file_url_ = #{origanalFileUrl},
+			</if>
+			<if test="id != null">
+				id_ = #{id},
+			</if>
+			<if test="updateTime != null">
+				update_time_ = #{updateTime},
+			</if>
+			<if test="version != null">
+				version_ = #{version},
+			</if>
+			<if test="modifyBy != null">
+				modify_by_ = #{modifyBy},
+			</if>
+			<if test="contractNo != null">
+				contract_no_ = #{contractNo},
+			</if>
+			<if test="name != null">
+				name_ = #{name},
+			</if>
+			<if test="createTime != null">
+				create_time_ = #{createTime},
+			</if>
+			<if test="owner != null">
+				owner_ = #{owner},
+			</if>
+		</set>
+		WHERE id_ = #{id} and tenant_id_ = #{tenantId}
+	</update>
+
+	<!-- 根据主键删除一条记录 -->
+	<delete id="delete">
+		DELETE FROM tenant_contract_template WHERE id_ = #{id}
+	</delete>
+
+	<!-- 分页查询 -->
+	<select id="queryPageList" resultMap="TenantContractTemplateDto"
+		parameterType="map">
+		SELECT tct.*,u.real_name_ latest_operator_ FROM tenant_contract_template tct left join sys_user u on tct.modify_by_ = u.id_ 
+		<where>
+			<if test="status != null">
+				and tct.status_ = #{status}
+			</if>
+			<if test="type != null">
+				and tct.type_ = #{type}
+			</if>
+			<if test="owner != null">
+				and tct.owner_ = #{owner}
+			</if>
+		</where>
+		ORDER BY id_
+		<include refid="global.limit" />
+	</select>
+
+	<!-- 查询当前表的总记录数 -->
+	<select id="queryCount" resultType="int">
+		SELECT COUNT(tct.id_) FROM tenant_contract_template tct
+		<where>
+			<if test="status != null">
+				and tct.status_ = #{status}
+			</if>
+			<if test="type != null">
+				and tct.type_ = #{type}
+			</if>
+			<if test="owner != null">
+				and tct.owner_ = #{owner}
+			</if>
+		</where>
+	</select>
+	
+	<select id="queryLatestContractTemplate" resultMap="TenantContractTemplate" parameterType="map">
+		SELECT * FROM tenant_contract_template where type_ = #{type} and owner_ = #{owner} and status_ = 1 and tenant_id_ = #{tenantId}
+	</select>
+	
+	<update id="disableContract" parameterType="map">
+		update tenant_contract_template set status_ = 0 where type_ = #{type} and owner_ = #{owner} and status_ = 1 and tenant_id_ = #{tenantId}
+	</update>
+</mapper>

+ 3 - 8
mec-common/common-core/src/main/java/com/ym/mec/common/service/BaseService.java

@@ -8,17 +8,12 @@ package com.ym.mec.common.service;
  * @create 2015年7月13日
  */
 import java.io.Serializable;
-import java.math.BigDecimal;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.util.*;
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
 
 import com.ym.mec.common.page.PageInfo;
 import com.ym.mec.common.page.QueryInfo;
-import org.apache.commons.lang3.StringUtils;
-import org.apache.ibatis.session.SqlSession;
-import org.springframework.util.CollectionUtils;
 
 public interface BaseService<PK extends Serializable, T> {
 	/**

+ 36 - 1
mec-util/src/main/java/com/ym/mec/util/freemarker/FreemarkerTemplateEngine.java

@@ -9,6 +9,7 @@ import java.util.Map;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import freemarker.cache.StringTemplateLoader;
 import freemarker.template.Configuration;
 import freemarker.template.DefaultObjectWrapper;
 import freemarker.template.Template;
@@ -17,7 +18,7 @@ public class FreemarkerTemplateEngine {
 	private static final Logger LOGGER = LoggerFactory.getLogger(FreemarkerTemplateEngine.class);
 
 	private final static FreemarkerTemplateEngine templateEngine = new FreemarkerTemplateEngine();
-
+	
 	private static Configuration cfg;
 
 	private FreemarkerTemplateEngine() {
@@ -94,4 +95,38 @@ public class FreemarkerTemplateEngine {
 		}
 	}
 
+	public void renderByString(Map<String, Object> data, String templateStr, File outputFile) {
+
+		FileWriter fw = null;
+		BufferedWriter bw = null;
+		String templateFileName = outputFile.getName();
+		try {
+			StringTemplateLoader stringTemplateLoader = new StringTemplateLoader();
+			stringTemplateLoader.putTemplate(templateFileName, templateStr);
+			cfg.setTemplateLoader(stringTemplateLoader);
+			Template temp = cfg.getTemplate(templateFileName);
+			fw = new FileWriter(outputFile);
+			bw = new BufferedWriter(fw);
+			temp.process(data, bw);
+			bw.flush();
+		} catch (Exception e) {
+			LOGGER.warn("模板渲染失败", e);
+		} finally {
+			if (bw != null) {
+				try {
+					bw.close();
+				} catch (IOException e) {
+					LOGGER.warn("BufferedWriter关闭异常");
+				}
+			}
+			if (fw != null) {
+				try {
+					fw.close();
+				} catch (IOException e) {
+					LOGGER.warn("FileWriter关闭异常");
+				}
+			}
+		}
+	}
+
 }

+ 88 - 0
mec-web/src/main/java/com/ym/mec/web/controller/TenantContractTemplateController.java

@@ -0,0 +1,88 @@
+package com.ym.mec.web.controller;
+
+import java.util.Date;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiOperation;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.ym.mec.auth.api.client.SysUserFeignService;
+import com.ym.mec.auth.api.entity.SysUser;
+import com.ym.mec.biz.dal.dto.TenantContractTemplateDto;
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
+import com.ym.mec.biz.service.TenantContractTemplateService;
+import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
+import com.ym.mec.common.page.PageInfo;
+import com.ym.mec.common.page.QueryInfo;
+import com.ym.mec.common.tenant.TenantContextHolder;
+
+@RequestMapping("tenantContractTemplate")
+@Api(tags = "机构协议模板")
+@RestController
+public class TenantContractTemplateController extends BaseController {
+
+	@Autowired
+	private TenantContractTemplateService tenantContractTemplateService;
+
+    @Autowired
+    private SysUserFeignService sysUserFeignService;
+
+	@ApiOperation("分页查询")
+	@GetMapping(value = "/list")
+	@PreAuthorize("@pcs.hasPermissions('tenantContractTemplate/list')")
+	public HttpResponseResult<PageInfo<TenantContractTemplateDto>> getList(QueryInfo queryInfo) {
+		return succeed(tenantContractTemplateService.queryPageList(queryInfo));
+	}
+
+	@ApiOperation("单查询")
+	@ApiImplicitParam(name = "id", value = "ID编号", required = true, dataType = "Integer", paramType = "path")
+	@GetMapping(value = "/query")
+	@PreAuthorize("@pcs.hasPermissions('tenantContractTemplate/query')")
+	public HttpResponseResult<TenantContractTemplate> query(Integer id) {
+		return succeed(tenantContractTemplateService.get(id));
+	}
+
+	@ApiOperation("新增")
+	@PostMapping(value = "/add", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@PreAuthorize("@pcs.hasPermissions('tenantContractTemplate/add')")
+	public Object add(TenantContractTemplate tenantContractTemplate) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+		Date date = new Date();
+		
+		tenantContractTemplate.setStatus(false);
+		tenantContractTemplate.setCreateTime(date);
+		tenantContractTemplate.setUpdateTime(date);
+		tenantContractTemplate.setModifyBy(sysUser.getId());
+		tenantContractTemplate.setTenantId(TenantContextHolder.getTenantId());
+		tenantContractTemplateService.insert(tenantContractTemplate);
+		return succeed();
+	}
+
+	@ApiOperation("更新")
+	@PostMapping(value = "/update", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@PreAuthorize("@pcs.hasPermissions('tenantContractTemplate/update')")
+	public Object update(TenantContractTemplate tenantContractTemplate) {
+		tenantContractTemplateService.update(tenantContractTemplate);
+		return succeed();
+	}
+
+	@ApiOperation("启用协议")
+	@PostMapping(value = "/updateStatus", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE, produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
+	@PreAuthorize("@pcs.hasPermissions('tenantContractTemplate/updateStatus')")
+	public Object enableContract(int id) {
+        SysUser sysUser = sysUserFeignService.queryUserInfo();
+        
+		tenantContractTemplateService.enableContract(id, sysUser.getId());
+		return succeed();
+	}
+
+}

+ 4 - 0
mec-web/src/main/java/com/ym/mec/web/controller/education/EduMusicScoreController.java

@@ -52,6 +52,10 @@ public class EduMusicScoreController extends BaseController {
         
         TenantConfig tenantConfig = tenantConfigService.getOne(new QueryWrapper<TenantConfig>().eq("tenant_id_", sysUser.getTenantId()));
         
+        if(tenantConfig == null){
+        	return failed("当前用户所在机构信息查询失败");
+        }
+        
         return succeed(sysMusicScoreCategoriesService.queryCategoriesTreeList(tenantConfig.getTeachingMaterialId()));
     }