yonge преди 5 години
родител
ревизия
a5d75971d5

+ 5 - 0
mec-biz/pom.xml

@@ -34,5 +34,10 @@
 			<groupId>com.ym</groupId>
 			<artifactId>mec-thirdparty</artifactId>
 		</dependency>
+		
+		<dependency>
+			<groupId>com.ym</groupId>
+			<artifactId>snakerflowy</artifactId>
+		</dependency>
     </dependencies>
 </project>

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

@@ -19,6 +19,7 @@ import com.ym.mec.auth.api.client.SysUserFeignService;
 import com.ym.mec.auth.api.entity.SysUser;
 import com.ym.mec.biz.dal.dto.StudentInfo;
 import com.ym.mec.biz.dal.entity.Goods;
+import com.ym.mec.biz.dal.entity.Subject;
 import com.ym.mec.biz.dal.entity.SysUserContracts;
 import com.ym.mec.biz.dal.entity.SysUserContracts.ContractType;
 import com.ym.mec.biz.dal.entity.SysUserTsign;
@@ -26,6 +27,7 @@ import com.ym.mec.biz.dal.enums.OrderDetailTypeEnum;
 import com.ym.mec.biz.service.ContractService;
 import com.ym.mec.biz.service.StudentPaymentOrderService;
 import com.ym.mec.biz.service.StudentRegistrationService;
+import com.ym.mec.biz.service.SubjectService;
 import com.ym.mec.biz.service.SysUserContractsService;
 import com.ym.mec.biz.service.SysUserTsignService;
 import com.ym.mec.common.exception.BizException;
@@ -51,6 +53,9 @@ public class ContractServiceImpl implements ContractService {
 	
 	@Autowired
 	private StudentPaymentOrderService studentPaymentOrderService;
+	
+	@Autowired
+	private SubjectService subjectService;
 
 	@Autowired
 	private ESealPlugin eSealPlugin;
@@ -280,6 +285,10 @@ public class ContractServiceImpl implements ContractService {
 		
 		//查询参数信息
 		StudentInfo studentInfo = studentRegistrationService.queryStudentInfo(userId);
+		
+		Subject subject = subjectService.get(studentInfo.getSubject().getId());
+		studentInfo.setSubject(subject);
+		
 		params.put("studentInfo", studentInfo);
 		
 		List<Goods> goodsList = studentPaymentOrderService.queryApplyGoodsList(musicGroupId, OrderDetailTypeEnum.MUSICAL);

+ 10 - 10
mec-biz/src/main/resources/config/contracts/courses.ftl

@@ -76,22 +76,22 @@
     <div class="container">
         <h1>《课程服务协议》</h1>
         <!-- 甲方:深圳大雅乐盟网络教育股份有限公司 <br/> -->
-        甲方:{{proto}} <br/>
+        甲方:深圳大雅乐盟网络教育股份有限公司 <br/>
         <div style="display: flex;">乙方:
             <div style="flex: 1 auto;">
                 <div class="iInfo">
-                    <span>家长姓名 {{proto}}</span>
-                    <span>电话:{{proto}}</span>
+                    <span>家长姓名 ${studentInfo.realName}</span>
+                    <span>电话: ${studentInfo.phone}</span>
                 </div>
                 <div class="iInfo">
-                    <span>身份证号:{{proto}}</span>
+                    <span>身份证号:${studentInfo.idCardNo}</span>
                 </div>
                 <div class="iInfo">
-                    <span>学生姓名:{{proto}}</span>
-                    <span>所在班级:{{proto}}</span>
+                    <span>学生姓名:${studentInfo.name}</span>
+                    <span>所在班级:${studentInfo.grade} ${studentInfo.clazz}</span>
                 </div>
                 <div class="iInfo">
-                    <span>所在声部:{{proto}}</span>
+                    <span>所在声部:${studentInfo.subject.name}</span>
                 </div>
             </div>
         </div>  
@@ -153,11 +153,11 @@
         6、双方因履行本协议而相互发出或者提供的所有通知、文件、资料,均以本协议中所列明的电话、APP推送消息送达,乙方如果变更电话号码的,应当自变更后1日内通知甲方且获得甲方确认,甲方通过电话、APP方式无法联系乙方或者甲方认为必要时,甲方也可以通过特快专递至乙方住址的方式向乙方发出上述任何通知、文件、资料等,并在甲方寄出特快专递后第5日视为送达成功。<br/>
 
         <div class="signature">
-            <div class="sign">甲方签章:
-                <span>日期:{{proto}}</span>
+            <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
             <div class="sign">乙方签字:{{proto}}
-                <span>日期:{{proto}} </span>
+                <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         </div>
     </div>

+ 17 - 17
mec-biz/src/main/resources/config/contracts/goods.ftl

@@ -72,30 +72,30 @@
         }
     </style>
 </head>
-<body>
+<body style="font-family:'SimSun'">
     <div class="container">
         <h1>《乐器借用协议》</h1>
-        甲方:{{proto}} <br/>
+        甲方:深圳大雅乐盟网络教育股份有限公司 <br/>
         <div style="display: flex;">乙方:
             <div style="flex: 1 auto;">
                 <div class="iInfo">
-                    <span>家长姓名 {{proto}}</span>
-                    <span>电话:{{proto}}</span>
+                    <span>家长姓名 ${studentInfo.realName}</span>
+                    <span>电话: ${studentInfo.phone}</span>
                 </div>
                 <div class="iInfo">
-                    <span>身份证号:{{proto}}</span>
+                    <span>身份证号:${studentInfo.idCardNo}</span>
                 </div>
                 <div class="iInfo">
-                    <span>学生姓名:{{proto}}</span>
-                    <span>所在班级:{{proto}}</span>
+                    <span>学生姓名:${studentInfo.name}</span>
+                    <span>所在班级:${studentInfo.grade} ${studentInfo.clazz}</span>
                 </div>
                 <div class="iInfo">
-                    <span>所在声部:{{proto}}</span>
+                    <span>所在声部:${studentInfo.subject.name}</span>
                 </div>
             </div>
         </div>                     
         
-        为了促进学校乐团健康、持续发展,让更多的学生在校园拥有良好的器乐学习机会,甲方基于公益普惠的原则,决定提供价值{{proto}}元的KEY品牌全新乐器供乙方在学校乐团期间免费使用。现根据《中华人民共和国合同法》等法律法规规定,为明确甲乙双方权利义务,经协商一致,就乙方借用乐器事宜达成如下协议:
+        为了促进学校乐团健康、持续发展,让更多的学生在校园拥有良好的器乐学习机会,甲方基于公益普惠的原则,决定提供价值${goodsList[0].marketPrice?string("#.##")}元的KEY品牌全新乐器供乙方在学校乐团期间免费使用。现根据《中华人民共和国合同法》等法律法规规定,为明确甲乙双方权利义务,经协商一致,就乙方借用乐器事宜达成如下协议:
         <h2>一、甲方权利与义务:</h2>
         1、乙方所借用的乐器为甲方资产,乐器所有权归属甲方所有,甲方有权在必要时向乙方收回借用乐器并退还押金。<br/>
         2、甲方所提供乐器为全新的KEY品牌乐器。在乙方签订本协议、交纳乐器使用押金后,甲方即将乐器交付给乙方供其在学校乐团期间免费使用。<br/>
@@ -108,12 +108,12 @@
         4、乙方终止乐团学习2个月内,仍未将乐器归还给甲方的,则视为乙方违约,乙方所交押金甲方有权不予退还,同时乙方须按乐器团购价格进行赔付。
         <h2>三、乐器标准:</h2> 
         <div class="iInfo">
-            <span>名称:{{proto}}</span>
-            <span>品牌:{{proto}}</span>  
+            <span>名称:${goodsList[0].name}</span>
+            <span>品牌:${goodsList[0].brand}</span>  
         </div>
         <div class="iInfo">
-            <span>型号:{{proto.}}</span>
-            <span>团购价格:{{proto}}</span>
+            <span>型号:${goodsList[0].specification}</span>
+            <span>团购价格:${goodsList[0].groupPurchasePrice?string("#.##")}</span>
         </div>
 
         <h2>四、违约责任</h2>  
@@ -135,11 +135,11 @@
         3、本协议未尽事宜或对本协议的任何修改、补充,由双方另行协商后以签订补充协议的方式解决,补充协议与本协议具有同等法律效力;双方没有约定也没有协商一致的,遵照相关法律法规规定执行。<br/>
         4、双方因履行本协议而相互发出或者提供的所有通知、文件、资料,均以本协议中所列明的电话、APP推送消息送达,乙方如果变更电话号码的,应当自变更后1日内通知甲方且获得甲方确认,甲方通过电话、APP方式无法联系乙方或者甲方认为必要时,甲方也可以通过特快专递至乙方住址的方式向乙方发出上述任何通知、文件、资料等,并在甲方寄出特快专递后第5日视为送达成功。
         <div class="signature">
-            <div class="sign">甲方签章:
-                <span>日期:{{proto}}</span>
+            <div class="sign">甲方签章:深圳大雅乐盟网络教育股份有限公司
+                <span>日期:${.now?string("yyyy年MM月dd日")}</span>
             </div>
-            <div class="sign">乙方签字:{{proto}}
-                <span>日期:{{proto}} </span>
+            <div class="sign">乙方签字:${studentInfo.realName}
+                <span>日期:${.now?string("yyyy年MM月dd日")} </span>
             </div>
         </div>
     </div>

+ 1 - 1
mec-biz/src/main/resources/config/mybatis/StudentRegistrationMapper.xml

@@ -250,6 +250,6 @@
     </update>
     
     <select id="queryStudentInfo" resultMap="StudentInfo">
-        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join student_registration  sr on u.id_ = sr.user_id_ where u.id_ = #{userId}
+        SELECT u.*,sr.name_,sr.current_class_,sr.current_grade_,sr.actual_subject_id_ FROM sys_user u left join student_registration  sr on u.id_ = sr.user_id_ where u.id_ = #{userId} order by sr.create_time_ desc limit 0,1
     </select>
 </mapper>

+ 1 - 1
mec-education/src/main/java/com/ym/mec/education/service/impl/TeacherServiceImpl.java

@@ -246,7 +246,7 @@ public class TeacherServiceImpl extends ServiceImpl<TeacherMapper, Teacher> impl
                     vipGroupClassResp.setVipClassType(vipGroupCategory.getName());
                 }
 
-                vipGroupDefaultClassesCycleService.list()
+                vipGroupDefaultClassesCycleService.list();
                // vipGroupClassResp.setClassNum();
 
             });

+ 32 - 0
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/OrderController.java

@@ -1,13 +1,24 @@
 package com.ym.mec.workfow.controller.flow;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
 import org.snaker.engine.SnakerEngine;
 import org.snaker.engine.access.Page;
 import org.snaker.engine.access.QueryFilter;
 import org.snaker.engine.entity.HistoryOrder;
+import org.snaker.engine.entity.HistoryTask;
+import org.snaker.engine.entity.Process;
+import org.snaker.engine.entity.Task;
+import org.snaker.engine.helper.AssertHelper;
+import org.snaker.engine.model.ProcessModel;
 import org.springframework.beans.factory.annotation.Autowired;
 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.ResponseBody;
 import org.springframework.web.bind.annotation.RestController;
 
 import com.ym.mec.auth.api.client.SysUserFeignService;
@@ -49,4 +60,25 @@ public class OrderController extends BaseController {
 		return succeed();
 	}
 
+	@GetMapping(value = "json")
+	@ResponseBody
+	public Object json(String processId, String orderId) {
+		Process process = snakerEngine.process().getProcessById(processId);
+		AssertHelper.notNull(process);
+		ProcessModel model = process.getModel();
+		Map<String, Object> jsonMap = new HashMap<String, Object>();
+		if (model != null) {
+			jsonMap.put("process", model);
+		}
+
+		if (StringUtils.isNotEmpty(orderId)) {
+			List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
+			jsonMap.put("tasks", tasks);
+
+			List<HistoryTask> historyTasks = snakerEngine.query().getHistoryTasks(new QueryFilter().setOrderId(orderId));
+			jsonMap.put("historyTasks", historyTasks);
+		}
+		return jsonMap;
+	}
+
 }

+ 0 - 21
mec-workflow/src/main/java/com/ym/mec/workfow/controller/flow/ProcessController.java

@@ -104,25 +104,4 @@ public class ProcessController extends BaseController {
 		return succeed();
 	}
 
-	@GetMapping(value = "json")
-	@ResponseBody
-	public Object json(String processId, String orderId) {
-		Process process = snakerEngine.process().getProcessById(processId);
-		AssertHelper.notNull(process);
-		ProcessModel model = process.getModel();
-		Map<String, Object> jsonMap = new HashMap<String, Object>();
-		if (model != null) {
-			jsonMap.put("process", model);
-		}
-
-		if (StringUtils.isNotEmpty(orderId)) {
-			List<Task> tasks = snakerEngine.query().getActiveTasks(new QueryFilter().setOrderId(orderId));
-			jsonMap.put("tasks", tasks);
-
-			List<HistoryTask> historyTasks = snakerEngine.query().getHistoryTasks(new QueryFilter().setOrderId(orderId));
-			jsonMap.put("historyTasks", historyTasks);
-		}
-		return jsonMap;
-	}
-
 }

+ 4 - 3
mec-workflow/src/main/java/com/ym/mec/workfow/controller/web/LeaveController.java

@@ -31,13 +31,14 @@ public class LeaveController extends BaseController {
 	 * 请假申请路由方法
 	 */
 	@PostMapping(value = "apply")
-	public Object apply(String processId, int days, String deptManager) {
+	public Object apply(String processId, int days, String deptManager, String boss) {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
 		Map<String, Object> params = new HashMap<String, Object>();
 		params.put("applyer", user.getUsername());
 		params.put("days", days);
 		params.put("deptManager", deptManager);
+		params.put("boss", boss);
 
 		// 开启实例
 		Order order = snakerEngine.startInstanceById(processId, user.getUsername(), params);
@@ -55,12 +56,12 @@ public class LeaveController extends BaseController {
 	public Object approve(String taskId) {
 		SysUser user = SysUserFeignService.queryUserInfo();
 
+		System.out.println(user.getUsername() + "审批***************");
+
 		List<Task> tasks = snakerEngine.executeTask(taskId, user.getUsername());
 
 		if (tasks.size() == 0) {
 			System.out.println("**********流程已结束*********");
-		} else {
-			System.out.println("**********审批中*********");
 		}
 
 		return succeed();

+ 3 - 3
mec-workflow/src/main/resources/application.yml

@@ -12,9 +12,9 @@ spring:
     
   datasource:
     name: test
-    url: jdbc:mysql://120.26.238.168:3306/snaker_web?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
-    username: snaker_web
-    password: snaker_web
+    url: jdbc:mysql://47.99.212.176:3306/mec_dev?useUnicode=true&characterEncoding=UTF8&serverTimezone=Asia/Shanghai
+    username: mec_dev
+    password: mec_dev
     # 使用druid数据源
     type: com.alibaba.druid.pool.DruidDataSource
     driver-class-name: com.mysql.cj.jdbc.Driver

+ 16 - 0
mec-workflow/src/main/resources/bootstrap.properties

@@ -0,0 +1,16 @@
+#\u6307\u5b9a\u5f00\u53d1\u73af\u5883
+#spring.profiles.active=dev
+#\u670d\u52a1\u5668\u5730\u5740
+spring.cloud.nacos.config.server-addr=47.99.212.176:8848
+#\u9ed8\u8ba4\u4e3aPublic\u547d\u540d\u7a7a\u95f4,\u53ef\u4ee5\u7701\u7565\u4e0d\u5199
+spring.cloud.nacos.config.namespace=e246d169-227d-4012-8c34-e90e057d95d2
+#\u6307\u5b9a\u914d\u7f6e\u7fa4\u7ec4 --\u5982\u679c\u662fPublic\u547d\u540d\u7a7a\u95f4 \u5219\u53ef\u4ee5\u7701\u7565\u7fa4\u7ec4\u914d\u7f6e
+spring.cloud.nacos.config.group=DEFAULT_GROUP
+#\u6587\u4ef6\u540d -- \u5982\u679c\u6ca1\u6709\u914d\u7f6e\u5219\u9ed8\u8ba4\u4e3a ${spring.appliction.name}
+spring.cloud.nacos.config.prefix=workflow
+#\u6307\u5b9a\u6587\u4ef6\u540e\u7f00
+spring.cloud.nacos.config.file-extension=yaml
+#\u662f\u5426\u52a8\u6001\u5237\u65b0
+spring.cloud.nacos.config.refresh.enabled=true
+#\u662f\u5426\u542f\u7528nacos\u914d\u7f6e\u4e2d\u5fc3
+spring.cloud.nacos.config.enabled=true

+ 1 - 1
mec-workflow/src/main/resources/flows/leave.snaker

@@ -14,7 +14,7 @@
 <transition displayName="&lt;=5天" expr="${days &lt;= 5}" g="" name="transition4" offset="0,0" to="end1"/>
 <transition displayName="&gt;5天" expr="${days &gt; 5}" g="" name="transition5" offset="0,0" to="approveBoss"/>
 </decision>
-<task assignee="boss" displayName="总经理审批" layout="404,231,-1,-1" name="approveBoss" performType="ANY">
+<task assignee="${boss}" displayName="总经理审批" layout="404,231,-1,-1" name="approveBoss" performType="ANY">
 <transition g="" name="transition6" offset="0,0" to="end1"/>
 </task>
 </process>

+ 16 - 0
mec-workflow/src/main/resources/flows/viprefund.snaker

@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<process displayName="vip课退费申请" name="viprefund">
+<start displayName="start1" layout="154,161,-1,-1" name="start1">
+<transition g="" name="transition1" offset="0,0" to="apply"/>
+</start>
+<end displayName="end1" layout="785,160,-1,-1" name="end1"/>
+<task assignee="${student}" autoExecute="Y" displayName="学生申请" layout="280,158,-1,-1" name="apply" performType="ANY" taskType="Major">
+<transition g="" name="transition2" offset="0,0" to="task1"/>
+</task>
+<task assignee="${eduTeacher}" autoExecute="Y" displayName="教务老师审批" layout="425,157,-1,-1" name="task1" performType="ANY" taskType="Major">
+<transition g="" name="transition3" offset="0,0" to="task2"/>
+</task>
+<task assignee="${deptManager}" autoExecute="Y" displayName="分部经理审批" layout="598,158,-1,-1" name="task2" performType="ANY" taskType="Major">
+<transition g="" name="transition4" offset="0,0" to="end1"/>
+</task>
+</process>