yonge 3 years ago
parent
commit
7181af3a50

+ 5 - 3
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/OrganizationDao.java

@@ -1,12 +1,14 @@
 package com.ym.mec.biz.dal.dao;
 
-import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.common.dal.BaseDAO;
-import org.apache.ibatis.annotations.Param;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.ibatis.annotations.Param;
+
+import com.ym.mec.biz.dal.entity.Organization;
+import com.ym.mec.common.dal.BaseDAO;
+
 public interface OrganizationDao extends BaseDAO<Integer, Organization> {
 
     /**

+ 41 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/OrganizationDto.java

@@ -0,0 +1,41 @@
+package com.ym.mec.biz.dal.dto;
+
+import com.ym.mec.biz.dal.entity.Organization;
+
+public class OrganizationDto extends Organization {
+
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -3461575801207273457L;
+
+	private String corporateName;
+	
+	private String corporateCode;
+	
+	private String memberId;
+
+	public String getCorporateName() {
+		return corporateName;
+	}
+
+	public void setCorporateName(String corporateName) {
+		this.corporateName = corporateName;
+	}
+
+	public String getCorporateCode() {
+		return corporateCode;
+	}
+
+	public void setCorporateCode(String corporateCode) {
+		this.corporateCode = corporateCode;
+	}
+
+	public String getMemberId() {
+		return memberId;
+	}
+
+	public void setMemberId(String memberId) {
+		this.memberId = memberId;
+	}
+}

+ 16 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/HfMember.java

@@ -10,8 +10,15 @@ import java.math.BigDecimal;
 import java.util.Date;
 
 public class HfMember extends BaseEntity {
-    @ApiModelProperty(value = "id",required = true)
+    /**
+	 * 
+	 */
+	private static final long serialVersionUID = -490352140698445380L;
+
+	@ApiModelProperty(value = "id",required = true)
     private Integer Id;
+    
+    private Integer organId;
 
     @ApiModelProperty(value = "商户号",required = true)
     private String memberId;
@@ -283,4 +290,12 @@ public class HfMember extends BaseEntity {
     public void setRouteOrganId(Integer routeOrganId) {
         this.routeOrganId = routeOrganId;
     }
+
+	public Integer getOrganId() {
+		return organId;
+	}
+
+	public void setOrganId(Integer organId) {
+		this.organId = organId;
+	}
 }

+ 51 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/entity/Organization.java

@@ -1,19 +1,26 @@
 package com.ym.mec.biz.dal.entity;
 
-import com.ym.mec.biz.dal.enums.GradeTypeEnum;
-import com.ym.mec.biz.dal.enums.YesOrNoEnum;
-import com.ym.mec.common.entity.BaseEntity;
 import io.swagger.annotations.ApiModelProperty;
-import org.apache.commons.lang3.builder.ToStringBuilder;
 
 import java.util.Date;
 import java.util.List;
 
+import org.apache.commons.lang3.builder.ToStringBuilder;
+
+import com.ym.mec.biz.dal.enums.GradeTypeEnum;
+import com.ym.mec.biz.dal.enums.YesOrNoEnum;
+import com.ym.mec.common.entity.BaseEntity;
+
 /**
  * 对应数据库表(organization):
  */
 public class Organization extends BaseEntity {
 
+	/**
+	 * 
+	 */
+	private static final long serialVersionUID = -8979746516597046410L;
+
 	/**  */
 	private Integer id;
 	
@@ -29,6 +36,14 @@ public class Organization extends BaseEntity {
 	@ApiModelProperty(value = "区域编码",required = false)
 	private Integer areaId;
 	
+	private String corporateName;
+	
+	private String corporateCode;
+	
+	private String corporateSeal;
+	
+	private String corporateFinancialSeal;
+	
 	/** 创建时间 */
 	private Date createTime;
 	
@@ -166,4 +181,36 @@ public class Organization extends BaseEntity {
 		this.gradeType = gradeType;
 	}
 
+	public String getCorporateName() {
+		return corporateName;
+	}
+
+	public void setCorporateName(String corporateName) {
+		this.corporateName = corporateName;
+	}
+
+	public String getCorporateCode() {
+		return corporateCode;
+	}
+
+	public void setCorporateCode(String corporateCode) {
+		this.corporateCode = corporateCode;
+	}
+
+	public String getCorporateSeal() {
+		return corporateSeal;
+	}
+
+	public void setCorporateSeal(String corporateSeal) {
+		this.corporateSeal = corporateSeal;
+	}
+
+	public String getCorporateFinancialSeal() {
+		return corporateFinancialSeal;
+	}
+
+	public void setCorporateFinancialSeal(String corporateFinancialSeal) {
+		this.corporateFinancialSeal = corporateFinancialSeal;
+	}
+
 }

+ 0 - 8
mec-biz/src/main/java/com/ym/mec/biz/service/ContractService.java

@@ -8,7 +8,6 @@ import com.ym.mec.biz.dal.dto.OAFinancialDto;
 import com.ym.mec.biz.dal.entity.SysUserTsign;
 import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
-import com.ym.mec.common.entity.HttpResponseResult;
 
 public interface ContractService {
 
@@ -120,13 +119,6 @@ public interface ContractService {
 	void transferProduceContract(Integer userId, String musicGroupId, CourseViewTypeEnum courseViewType);
 
 	/**
-	 * 传递产品协议-仅生成课程协议
-	 * @param userId
-	 * @return
-	 */
-	HttpResponseResult transferProduceContractOnlyWithCourseList(Integer userId);
-
-	/**
 	 * 查询产品协议
 	 * @param userId
 	 * @return

+ 8 - 4
mec-biz/src/main/java/com/ym/mec/biz/service/OrganizationService.java

@@ -1,12 +1,15 @@
 package com.ym.mec.biz.service;
 
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
 import com.ym.mec.biz.dal.entity.Organization;
-import com.ym.mec.biz.dal.enums.SysUserRoleEnum;
 import com.ym.mec.biz.dal.page.EducationBaseQueryInfo;
 import com.ym.mec.common.service.BaseService;
 
-import java.util.*;
-
 public interface OrganizationService extends BaseService<Integer, Organization> {
 
     Set<Integer>  EXCLUDE_ORGAN_IDS = new HashSet<>(Arrays.asList(36,38,39,41,42,43,44,45,46,47,48,49,50,52,54,55,56,2,27,22,24));
@@ -75,5 +78,6 @@ public interface OrganizationService extends BaseService<Integer, Organization>
     * @date 2022/1/6 18:11
     */
     <T extends EducationBaseQueryInfo> T onlyEducation(T queryInfo);
-
+    
+    boolean updateBasicInfo(Organization organization);
 }

+ 3 - 3
mec-biz/src/main/java/com/ym/mec/biz/service/impl/CloudCoachPaymentProgramServiceImpl.java

@@ -94,18 +94,18 @@ public class CloudCoachPaymentProgramServiceImpl extends BaseServiceImpl<Long, C
 			cloudTeacherOrderDao.batchInsert(cloudTeacherOrder,cloudCoachPaymentProgram.getUserIds());
 		}else {
 			//推送缴费消息
-			TenantInfo tenantInfo = tenantInfoDao.selectById(cloudCoachPaymentProgram.getTenantId());
+			//TenantInfo tenantInfo = tenantInfoDao.selectById(cloudCoachPaymentProgram.getTenantId());
 			Map<Integer, String> phoneMaps = MapUtil.convertMybatisMap(teacherDao.queryPhoneByIds(StringUtils.join(userIds,",")));
 			String baseApiUrl = sysConfigDao.findConfigValue(SysConfigService.BASE_API_URL);
 			StringBuffer pushUrl = new StringBuffer(baseApiUrl).append("/#/studentMember?id=").append(cloudCoachPaymentProgram.getId());
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS, MessageTypeEnum.STUDENT_SMS_CLOUD_PAYMENT,phoneMaps,
-					null,0,"",null,tenantInfo.getName(), HttpUtil.getSortUrl(pushUrl.toString()));
+					null,0,"",null, HttpUtil.getSortUrl(pushUrl.toString()));
 
 			StringBuffer notifyUrl = new StringBuffer("8?").append(baseApiUrl).append("/#/studentMember?id=").append(cloudCoachPaymentProgram.getId());
 			Map<Integer, String> userIdMaps = new HashMap<>(userIds.size());
 			userIds.forEach(e->userIdMaps.put(e,e.toString()));
 			sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.STUDENT_PUSH_CLOUD_PAYMENT,userIdMaps,
-					null,0,notifyUrl.toString(),"STUDENT",tenantInfo.getName());
+					null,0,notifyUrl.toString(),"STUDENT");
 		}
 	}
 }

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

@@ -24,7 +24,6 @@ import org.springframework.beans.factory.InitializingBean;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Lazy;
-import org.springframework.http.HttpStatus;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Isolation;
@@ -39,7 +38,6 @@ import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.MusicGroupPaymentCalenderDao;
 import com.ym.mec.biz.dal.dao.MusicGroupStudentFeeDao;
 import com.ym.mec.biz.dal.dao.StudentDao;
-import java.nio.charset.Charset;
 import com.ym.mec.biz.dal.dao.StudentRegistrationDao;
 import com.ym.mec.biz.dal.dao.SysUserContractsDao;
 import com.ym.mec.biz.dal.dto.CirculationUser;
@@ -52,6 +50,7 @@ import com.ym.mec.biz.dal.entity.MusicGroupPaymentCalender;
 import com.ym.mec.biz.dal.entity.MusicGroupStudentFee;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectGoodsGroup;
 import com.ym.mec.biz.dal.entity.MusicGroupSubjectPlan;
+import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.entity.StudentRegistration;
 import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysUserContracts;
@@ -68,6 +67,7 @@ import com.ym.mec.biz.service.GoodsService;
 import com.ym.mec.biz.service.MusicGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectGoodsGroupService;
 import com.ym.mec.biz.service.MusicGroupSubjectPlanService;
+import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.StudentRegistrationService;
 import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.biz.service.SysUserContractsService;
@@ -76,8 +76,6 @@ import com.ym.mec.biz.service.TenantConfigService;
 import com.ym.mec.biz.service.TenantContractTemplateService;
 import com.ym.mec.biz.service.TenantInfoService;
 import com.ym.mec.biz.service.VipGroupService;
-import com.ym.mec.common.controller.BaseController;
-import com.ym.mec.common.entity.HttpResponseResult;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.thirdparty.eseal.ESealPlugin;
 import com.ym.mec.thirdparty.storage.StoragePluginContext;
@@ -155,6 +153,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
     private TenantConfigService tenantConfigService;
     
     @Autowired
+    private OrganizationService organizationService;
+    
+    @Autowired
     private TenantContractTemplateService tenantContractTemplateService;
 
     @Value("${contract.baseDir:/var/pdf}")
@@ -198,9 +199,9 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 
 		SysUserTsign sysUserTsign = null;
 
-		SysUserTsign orignSysUserTsign = sysUserTsignService.get(-userId);
+		SysUserTsign orignSysUserTsign = sysUserTsignService.queryByCardNo(organCode);
 
-		if (orignSysUserTsign == null || !StringUtils.equals(orignSysUserTsign.getCardNo(), organCode)) {
+		if (orignSysUserTsign == null) {
 
 			String accountId = eSealPlugin.createOrganAccount(orgName, organCode);
 			if (StringUtils.isBlank(accountId)) {
@@ -213,16 +214,7 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
 			}
 
 			sysUserTsign = new SysUserTsign(-userId, accountId, sealData, orgName, organCode, tenantId);
-
-			if (orignSysUserTsign == null) {
-				sysUserTsignService.insert(sysUserTsign);
-			} else {
-				orignSysUserTsign.setAccountId(accountId);
-				orignSysUserTsign.setSealData(sealData);
-				orignSysUserTsign.setName(orgName);
-				orignSysUserTsign.setCardNo(organCode);
-				sysUserTsignService.update(orignSysUserTsign);
-			}
+			sysUserTsignService.insert(sysUserTsign);
 
 		} else if (!StringUtils.equals(orignSysUserTsign.getName(), orgName)) {
 			if (eSealPlugin.updateOrganAccount(orignSysUserTsign.getAccountId(), orgName, organCode)) {
@@ -987,18 +979,21 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
             return;
         }
         
-		TenantInfo tenantInfo = tenantInfoService.get(studentInfo.getTenantId());
-		if(tenantInfo == null){
-			throw new BizException("机构信息不存在");
-		}
-		
-		TenantConfig tenantConfig = tenantConfigService.queryByTenantId(studentInfo.getTenantId());
-		if(tenantConfig == null){
-			throw new BizException("机构配置信息查询失败");
+        //如果分部有企业信息,就用分部上的企业信息,否则用机构上的企业信息
+        String companyName = null;
+        TenantInfo tenantInfo = null;
+        Organization organizationDto = organizationService.get(user.getOrganId());
+		if (organizationDto == null || StringUtils.isBlank(organizationDto.getCorporateName()) || StringUtils.isBlank(organizationDto.getCorporateCode())) {
+
+			tenantInfo = tenantInfoService.get(studentInfo.getTenantId());
+			if (tenantInfo == null) {
+				throw new BizException("机构信息不存在");
+			}
+			companyName = tenantInfo.getTsignName();
+		} else {
+			companyName = organizationDto.getCorporateName();
 		}
-		
-		params.put("companyName", tenantInfo.getTsignName());
-		params.put("sealPicture", tenantConfig.getCorporateChops());
+		params.put("companyName", companyName);
         
 		if (studentInfo.getTenantId() == 1) {
 			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
@@ -1020,22 +1015,17 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
             return;
         }
 
-
-        String organCode = "";
+        String organCode = tenantInfo == null ? organizationDto.getCorporateCode() : tenantInfo.getTsignCode();
         
 		if (user.getTenantId() == 1) {
-			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				organCode = "91440300326364429H";
-			} else {
+			if (!OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
 				organCode = "91420106333619290A";
 			}
-		} else {
-			organCode = tenantInfo.getTsignCode();
 		}
         SysUserTsign organTsign = sysUserTsignService.queryByCardNo(organCode);
         if (organTsign == null) {
-            logger.error("甲方未创建签章");
-            return;
+            //创建企业签章
+            addTsign(tenantInfo.getUserId(), organCode, companyName, user.getTenantId());
         }
 
         eSealPlugin.organSign(organTsign.getSealData(), srcPdfPath, srcPdfPath);
@@ -1113,18 +1103,31 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
             ownershipType = courseViewType;
         }
         
-		TenantInfo tenantInfo = tenantInfoService.get(studentInfo.getTenantId());
-		if(tenantInfo == null){
-			throw new BizException("机构信息不存在");
-		}
-		
-		TenantConfig tenantConfig = tenantConfigService.queryByTenantId(studentInfo.getTenantId());
-		if(tenantConfig == null){
-			throw new BizException("机构配置信息查询失败");
+        //如果分部有企业信息,就用分部上的企业信息,否则用机构上的企业信息
+        String companyName = null, sealPicture = null;
+        TenantInfo tenantInfo = null;
+        Organization organizationDto = organizationService.get(studentInfo.getOrganId());
+		if (organizationDto == null || StringUtils.isBlank(organizationDto.getCorporateName()) || StringUtils.isBlank(organizationDto.getCorporateCode())) {
+
+			tenantInfo = tenantInfoService.get(studentInfo.getTenantId());
+			if (tenantInfo == null) {
+				throw new BizException("机构信息不存在");
+			}
+	        
+			TenantConfig tenantConfig = tenantConfigService.queryByTenantId(studentInfo.getTenantId());
+			if(tenantConfig == null){
+				throw new BizException("机构配置信息查询失败");
+			}
+			
+			companyName = tenantInfo.getTsignName();
+			sealPicture = tenantConfig.getCorporateChops();
+		} else {
+			companyName = organizationDto.getCorporateName();
+			sealPicture = organizationDto.getCorporateSeal();
 		}
 		
-		params.put("companyName", tenantInfo.getTsignName());
-		params.put("sealPicture", tenantConfig.getCorporateChops());
+		params.put("companyName", companyName);
+		params.put("sealPicture", sealPicture);
         
 		if (studentInfo.getTenantId() == 1) {
 			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
@@ -1162,148 +1165,6 @@ public class ContractServiceImpl implements ContractService, InitializingBean {
     }
 
     @Override
-    @Transactional(rollbackFor = Exception.class)
-    public HttpResponseResult transferProduceContractOnlyWithCourseList(Integer userId) {
-        SysUser user = studentDao.lockUserReturnInfo(userId);
-        if (user == null) {
-            logger.error("用户不存在({})", userId);
-            return BaseController.failed("用户不存在");
-        }
-
-        int validContactNum = sysUserContractsDao.countUserValidContact(userId);
-        if (validContactNum > 0) {
-            return BaseController.succeed();
-        }
-
-        if (StringUtils.isBlank(user.getRealName()) || StringUtils.isBlank(user.getIdCardNo())) {
-            return BaseController.failed(HttpStatus.PARTIAL_CONTENT, user, "");
-        }
-
-        SysUserTsign sysUserTsign = sysUserTsignService.get(userId);
-        if (sysUserTsign == null) {
-            try {
-                sysUserTsign = register(userId, user.getRealName(), user.getIdCardNo(), user.getPhone());
-            } catch (Exception e) {
-                logger.error("用户电子签章注册失败", e);
-                return BaseController.failed("用户电子签章注册失败");
-            }
-        }
-        Date date = new Date();
-
-        // 合成freemarker
-        String srcPdfPath = contractBaseDir + "/product/" + dateFormat1.format(date) + "/" + userId + "_" + LocalDateTime.now().getSecond() + ".pdf";
-
-        File srcFile = new File(srcPdfPath);
-
-        File debtFile = new File(srcFile.getParent());
-        if (!debtFile.exists()) {
-            debtFile.mkdirs();
-        }
-
-        FreemarkerTemplateEngine templateEngine = FreemarkerTemplateEngine.getInstance();
-        templateEngine.setClassForTemplateLoading(ContractServiceImpl.class, "/config/contracts/");
-
-        Map<String, Object> params = new HashMap<String, Object>();
-
-        // 查询参数信息
-        StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
-        params.put("studentInfo", studentInfo);
-
-        params.put("isShowVisualSeal", false);
-
-        params.put("ownershipType", "OWN");
-		
-        // 查询最新协议模板
-		TenantContractTemplate tenantContractTemplate = tenantContractTemplateService.queryLatestContractTemplate(user.getTenantId(), null, null);
-		if(tenantContractTemplate == null){
-			logger.error("最新协议模板查询失败");
-            return BaseController.succeed();
-		}
-		String mainContent = tenantContractTemplate.getContractTemplateContent();
-		params.put("contractMainContent", mainContent);
-
-        // 查询是否已生成协议
-        List<SysUserContracts> userContracts = sysUserContractsService.getUserContractWithType(userId, ContractType.PRODUCT, tenantContractTemplate.getVersion());
-        if (!CollectionUtils.isEmpty(userContracts)) {
-            return BaseController.succeed();
-        }
-        
-		TenantInfo tenantInfo = tenantInfoService.get(studentInfo.getTenantId());
-		if(tenantInfo == null){
-			throw new BizException("机构信息不存在");
-		}
-		
-		TenantConfig tenantConfig = tenantConfigService.queryByTenantId(studentInfo.getTenantId());
-		if(tenantConfig == null){
-			throw new BizException("机构配置信息查询失败");
-		}
-		
-		params.put("companyName", tenantInfo.getTsignName());
-		params.put("sealPicture", tenantConfig.getCorporateChops());
-        
-		if (studentInfo.getTenantId() == 1) {
-			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				//params.put("companyName", "深圳大雅乐盟网络教育股份有限公司");
-				//params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/cachet.png");
-			} else {
-				params.put("companyName", "武汉长乐长风乐器销售有限公司");
-				params.put("sealPicture", "https://daya-online.oss-cn-beijing.aliyuncs.com/website/clcf.png");
-			}
-		}
-
-        templateEngine.render(params, "latest_contract_template.ftl", srcFile);
-
-        // 生成借款协议PDF
-        try {
-            PDFUtil.renderToPDFByData(ContractServiceImpl.class.getResource("/").getFile(), FileUtils.readFileToString(srcFile, Charset.defaultCharset()), srcPdfPath, "simsun.ttc");
-        } catch (IOException e) {
-            logger.error("生成产品协议失败", e);
-            return BaseController.failed("生成产品协议失败");
-        }
-
-        String organCode = "";
-        
-		if (user.getTenantId() == 1) {
-			if (OwnershipType.OWN.name().equals(params.get("ownershipType"))) {
-				organCode = "91440300326364429H";
-			} else {
-				organCode = "91420106333619290A";
-			}
-		} else {
-			organCode = tenantInfo.getTsignCode();
-		}
-
-        SysUserTsign organTsign = sysUserTsignService.queryByCardNo(organCode);
-        if (organTsign == null) {
-            logger.error("甲方未创建签章");
-            return BaseController.failed("甲方未创建签章");
-        }
-
-        eSealPlugin.organSign(organTsign.getSealData(), srcPdfPath, srcPdfPath);
-        if (sysUserTsign != null && CertificateTypeEnum.IDENTITY.getCode().equals(user.getCertificateType())) {
-            eSealPlugin.userSign(sysUserTsign.getAccountId(), sysUserTsign.getSealData(), srcPdfPath, srcPdfPath);
-        }
-
-        // 上传到oss
-        String dateStrOss = dateFormatOss.format(date);
-        dateStrOss = "product/" + dateStrOss + "/" + DateUtil.getHour(date);
-        String pdfFilePath = storagePluginContext.uploadFile(KS3StoragePlugin.PLUGIN_NAME, dateStrOss, srcFile);
-
-        SysUserContracts sysUserContracts = new SysUserContracts();
-        sysUserContracts.setCreateTime(date);
-        sysUserContracts.setType(ContractType.PRODUCT);
-        sysUserContracts.setUrl(pdfFilePath);
-        sysUserContracts.setUserId(userId);
-        sysUserContracts.setVersion(2);
-        sysUserContracts.setTenantId(user.getTenantId());
-
-        sysUserContractsService.insert(sysUserContracts);
-
-        FileUtils.deleteQuietly(srcFile);
-        return BaseController.succeed();
-    }
-
-    @Override
     public String transferOaFinancial(OAFinancialDto financialDto) {
         List<Integer> circulationUserIds = financialDto.getCirculationUsers().stream().map(CirculationUser::getUserId).collect(Collectors.toList());
         List<Integer> executorIds = financialDto.getExecutors().stream().map(CirculationUser::getUserId).collect(Collectors.toList());

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/impl/ExportServiceImpl.java

@@ -209,7 +209,7 @@ public class ExportServiceImpl implements ExportService {
             throw new BizException("请登录");
         }
         if(exportEnum == ExportEnum.ORDER_LIST1 || exportEnum == ExportEnum.ORDER_LIST2){
-            if(sysUser.getTenantId() <= 0){
+            if(sysUser.getTenantId() <= 1){
                 exportEnum = ExportEnum.ORDER_LIST1;
             }else {
                 exportEnum = ExportEnum.ORDER_LIST2;

+ 63 - 13
mec-biz/src/main/java/com/ym/mec/biz/service/impl/OrganizationServiceImpl.java

@@ -1,19 +1,36 @@
 package com.ym.mec.biz.service.impl;
 
+import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.EDUCATION;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
 import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
-import com.ym.mec.biz.dal.dao.ClassGroupDao;
 import com.ym.mec.biz.dal.dao.EmployeeDao;
 import com.ym.mec.biz.dal.dao.OrganizationDao;
 import com.ym.mec.biz.dal.dao.TeacherDao;
+import com.ym.mec.biz.dal.dao.TenantContractTemplateDao;
+import com.ym.mec.biz.dal.dao.TenantInfoDao;
 import com.ym.mec.biz.dal.entity.Employee;
 import com.ym.mec.biz.dal.entity.Organization;
 import com.ym.mec.biz.dal.entity.Teacher;
+import com.ym.mec.biz.dal.entity.TenantContractTemplate;
 import com.ym.mec.biz.dal.entity.TenantInfo;
 import com.ym.mec.biz.dal.enums.FivePlusGradeEnum;
 import com.ym.mec.biz.dal.enums.GradeTypeEnum;
 import com.ym.mec.biz.dal.enums.SixPlusGradeEnum;
 import com.ym.mec.biz.dal.page.EducationBaseQueryInfo;
+import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.OrganizationService;
 import com.ym.mec.biz.service.SysEmployeePositionService;
 import com.ym.mec.biz.service.TenantInfoService;
@@ -21,17 +38,6 @@ import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.common.exception.BizException;
 import com.ym.mec.common.service.impl.BaseServiceImpl;
 import com.ym.mec.common.tenant.TenantContextHolder;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.stream.Collectors;
-
-import static com.ym.mec.biz.dal.enums.SysUserRoleEnum.EDUCATION;
 
 @Service
 public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organization> implements OrganizationService {
@@ -48,6 +54,13 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 	private SysUserFeignService sysUserFeignService;
 	@Autowired
 	private SysEmployeePositionService employeePositionService;
+	@Autowired
+	private ContractService contractService;
+	@Autowired
+	private TenantInfoDao tenantInfoDao;
+	
+	@Autowired
+	private TenantContractTemplateDao tenantContractTemplateDao;
 
 	@Override
 	public BaseDAO<Integer, Organization> getDAO() {
@@ -155,7 +168,6 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		return organizationDao.getOrgans(organIds,tenantId);
 	}
 
-
     @Override
     public <T extends EducationBaseQueryInfo> T onlyEducation(T queryInfo) {
 		SysUser sysUser = sysUserFeignService.queryUserInfo();
@@ -170,4 +182,42 @@ public class OrganizationServiceImpl extends BaseServiceImpl<Integer, Organizati
 		}
 		return queryInfo;
     }
+
+	@Override
+	@Transactional
+	public boolean updateBasicInfo(Organization organization) {
+		
+		Organization orginOrgan = get(organization.getId());
+		
+		if(orginOrgan == null){
+			throw new BizException("分部原始信息查询失败");
+		}
+		
+		update(organization);
+		
+		//是否修改了机构名称或机构编码
+        if (!StringUtils.equals(orginOrgan.getCorporateName(), organization.getCorporateName()) || !StringUtils.equals(orginOrgan.getCorporateCode(), organization.getCorporateCode())) {
+        	
+        	Integer tenantId = organization.getTenantId();
+            //升级机构协议版本号
+            TenantContractTemplate tenantContractTemplate = tenantContractTemplateDao.queryLatestContractTemplate(null, null, tenantId);
+            if (tenantContractTemplate != null) {
+            	tenantInfoDao.getLocked(tenantId);
+
+                Integer maxVersion = tenantContractTemplateDao.queryMaxVersion();
+                int version = maxVersion == null ? 1 : maxVersion + 1;
+
+                tenantContractTemplate.setVersion(version);
+                Date date = new Date();
+                tenantContractTemplate.setUpdateTime(date);
+
+                tenantContractTemplateDao.update(tenantContractTemplate);
+            }
+            //添加签章信息
+            contractService.addTsign(organization.getId(), organization.getCorporateName(), organization.getCorporateCode(), tenantId);
+        }
+		
+		return true;
+	}
+
 }

+ 10 - 3
mec-biz/src/main/resources/config/mybatis/HfMemberMapper.xml

@@ -26,6 +26,7 @@
         <result column="route_organ_id_" property="routeOrganId"/>
         <result column="create_time_" property="createTime"/>
         <result column="update_time_" property="updateTime"/>
+        <result column="organ_id_" property="organId"/>
 		<result column="tenant_id_" property="tenantId" />
     </resultMap>
     <sql id="Base_Column_List">
@@ -34,7 +35,7 @@
         business_scope_, legal_person_, legal_cert_id_, legal_cert_id_expires_, legal_mp_,
         address_, zip_code_, card_no_,
         bank_code_,settle_account_id_,status_,month_max_receipt_,route_member_id_,route_organ_id_, create_time_,
-        update_time_,tenant_id_
+        update_time_,tenant_id_,organ_id_
     </sql>
     <select id="get" parameterType="java.lang.Integer" resultMap="hfMember">
         <!--@mbg.generated-->
@@ -56,13 +57,13 @@
         business_scope_, legal_person_, legal_cert_id_,
         legal_cert_id_expires_, legal_mp_, address_,
         zip_code_, card_no_, bank_code_,status_,
-        create_time_, update_time_,tenant_id_)
+        create_time_, update_time_,organ_id_,tenant_id_)
         values (#{name}, #{memberId}, #{provCode},
         #{areaCode}, #{socialCreditCode}, #{socialCreditCodeExpires},
         #{businessScope}, #{legalPerson}, #{legalCertId},
         #{legalCertIdExpires}, #{legalMp}, #{address},
         #{zipCode}, #{cardNo}, #{bankCode},#{status},
-        #{createTime}, #{updateTime},#{tenantId})
+        #{createTime}, #{updateTime},#{organId},#{tenantId})
     </insert>
     <update id="update" parameterType="com.ym.mec.biz.dal.entity.HfMember">
         <!--@mbg.generated-->
@@ -137,6 +138,9 @@
             <if test="updateTime != null">
                 update_time_ = #{updateTime},
             </if>
+            <if test="organId != null">
+                organ_id_ = #{organId},
+            </if>
         </set>
         where id_ = #{id,jdbcType=INTEGER} and tenant_id_ = #{tennatId}
     </update>
@@ -161,6 +165,9 @@
             <if test="status != null">
                 AND status_ = #{status}
             </if>
+            <if test="organId != null">
+                AND organ_id_ = #{organId}
+            </if>
         </where>
     </sql>
 

+ 18 - 2
mec-biz/src/main/resources/config/mybatis/OrganizationMapper.xml

@@ -18,6 +18,10 @@
         <result column="linkman_" property="linkman"/>
         <result column="mobile_" property="mobile"/>
         <result column="address_" property="address"/>
+        <result column="corporate_name_" property="corporateName"/>
+        <result column="corporate_code_" property="corporateCode"/>
+        <result column="corporate_seal_" property="corporateSeal"/>
+        <result column="corporate_financial_seal_" property="corporateFinancialSeal"/>
         <result column="tenant_id_" property="tenantId"/>
         <result column="grade_type_" property="gradeType" typeHandler="com.ym.mec.common.dal.CustomEnumTypeHandler"/>
     </resultMap>
@@ -36,9 +40,9 @@
     <insert id="insert" parameterType="com.ym.mec.biz.dal.entity.Organization" useGeneratedKeys="true" keyColumn="id"
             keyProperty="id">
         INSERT INTO organization (id_,name_,area_id_,create_time_,update_time_,
-                                  register_date_,linkman_,mobile_,address_,grade_type_,tenant_id_)
+                                  register_date_,linkman_,mobile_,address_,grade_type_,tenant_id_,corporate_name_,corporate_code_,corporate_seal_,corporate_financial_seal_)
         VALUES(#{id},#{name},#{areaId},now(),now(),#{registerDate},#{linkman},#{mobile},#{address},
-               #{gradeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{tenantId})
+               #{gradeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},#{tenantId},#{corporateName},#{corporateCode},#{corporateSeal},#{corporateFinancialSeal})
     </insert>
 
     <!-- 根据主键查询一条记录 -->
@@ -69,6 +73,18 @@
             <if test="address != null">
                 address_ = #{address},
             </if>
+            <if test="corporateName != null">
+                corporate_name_ = #{corporateName},
+            </if>
+            <if test="corporateCode != null">
+                corporate_code_ = #{corporateCode},
+            </if>
+            <if test="corporateSeal != null">
+                corporate_seal_ = #{corporateSeal},
+            </if>
+            <if test="corporateFinancialSeal != null">
+                corporate_financial_seal_ = #{corporateFinancialSeal},
+            </if>
             <if test="gradeType != null">
                 grade_type_ = #{gradeType,typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler},
             </if>

+ 17 - 34
mec-student/src/main/java/com/ym/mec/student/controller/ContractsController.java

@@ -1,28 +1,29 @@
 package com.ym.mec.student.controller;
 
-import java.math.BigDecimal;
-import java.util.*;
-import java.util.stream.Collectors;
-
-import com.ym.mec.biz.dal.entity.SysUserContracts;
-import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
-import com.ym.mec.biz.service.SysUserContractsService;
-import com.ym.mec.common.entity.HttpResponseResult;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 
+import java.math.BigDecimal;
+import java.util.Comparator;
+import java.util.Date;
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.util.CollectionUtils;
 import org.springframework.web.bind.annotation.GetMapping;
 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.entity.SysUserContracts;
+import com.ym.mec.biz.dal.enums.CourseViewTypeEnum;
 import com.ym.mec.biz.dal.enums.KitGroupPurchaseTypeEnum;
 import com.ym.mec.biz.service.ContractService;
+import com.ym.mec.biz.service.SysUserContractsService;
 import com.ym.mec.common.controller.BaseController;
+import com.ym.mec.common.entity.HttpResponseResult;
 
 @RequestMapping("contracts")
 @Api(tags = "协议服务")
@@ -101,22 +102,9 @@ public class ContractsController extends BaseController {
 		return succeed(contractService.queryProductContract(userId,musicGroupId, courseViewType));
 	}
 
-	@ApiOperation(value = "生成学生课程协议")
-	@GetMapping("/transferProduceContractOnlyWithCourseList")
-	public HttpResponseResult transferProduceContractOnlyWithCourseList(Integer userId){
-		if(Objects.isNull(userId)){
-			SysUser sysUser = sysUserFeignService.queryUserInfo();
-			if (sysUser == null) {
-				return failed("获取用户信息失败");
-			}
-			userId = sysUser.getId();
-		}
-		return contractService.transferProduceContractOnlyWithCourseList(userId);
-	}
-
 	@ApiOperation(value = "查询学生最新协议")
 	@GetMapping("/getLatest")
-	public HttpResponseResult<List<SysUserContracts>> getLatest(Integer userId) {
+	public HttpResponseResult<SysUserContracts> getLatest(Integer userId) {
 		if(Objects.isNull(userId)){
 			SysUser sysUser = sysUserFeignService.queryUserInfo();
 			if (sysUser == null) {
@@ -126,18 +114,13 @@ public class ContractsController extends BaseController {
 		}
 		List<SysUserContracts> sysUserContracts = sysUserContractsService.getUserAllContracts(userId);
 
-		if(CollectionUtils.isEmpty(sysUserContracts)){
-			return succeed(Collections.EMPTY_LIST);
+		if(sysUserContracts == null || sysUserContracts.size() == 0){
+			return succeed();
 		}
+		
+		sysUserContracts = sysUserContracts.stream().sorted(Comparator.comparing(SysUserContracts::getCreateTime).reversed()).collect(Collectors.toList());
 
-		Map<Integer, List<SysUserContracts>> versionContractMap = sysUserContracts.stream().collect(Collectors.groupingBy(SysUserContracts::getVersion));
-
-		List<SysUserContracts> result = new ArrayList<>();
-		for (Map.Entry<Integer, List<SysUserContracts>> versionContractMapEntry : versionContractMap.entrySet()) {
-			versionContractMapEntry.getValue().sort(Comparator.comparing(SysUserContracts::getCreateTime).reversed());
-			result.add(versionContractMapEntry.getValue().get(0));
-		}
 
-		return succeed(result);
+		return succeed(sysUserContracts.get(0));
 	}
 }

+ 1 - 1
mec-web/src/main/java/com/ym/mec/web/controller/OrganizationController.java

@@ -71,7 +71,7 @@ public class OrganizationController extends BaseController {
     @PreAuthorize("@pcs.hasPermissions('organization/update')")
     public Object update(Organization organization){
         organization.setUpdateTime(new Date());
-        return succeed(organizationService.update(organization));
+        return succeed(organizationService.updateBasicInfo(organization));
     }
 
     @ApiOperation(value = "根据分部编号查询分部详情")