Browse Source

Merge branch 'wrdp' into 'develop'

Wrdp

See merge request o2oa/o2oa!2729
o2null 5 years ago
parent
commit
2294d198de
16 changed files with 122 additions and 146 deletions
  1. 7 0
      gulpfile.js
  2. 8 0
      o2server/configSample/pushConfig.json
  3. 1 0
      o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailStatisticFactory.java
  4. 1 1
      o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java
  5. 12 0
      o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailService.java
  6. 0 65
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/jaxrs/sysresource/ActionUploadResource.java
  7. 1 25
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/jaxrs/sysresource/SysResourceAction.java
  8. 29 6
      o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java
  9. 0 5
      o2server/x_general_assemble_control/src/main/java/com/x/general/assemble/control/jaxrs/generalfile/ActionGet.java
  10. 8 5
      o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListIdentityWithUnitWithName.java
  11. 17 13
      o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/TranslateTaskIdentityTools.java
  12. 1 1
      o2web/source/x_component_Attendance/$Main/navi.json
  13. 13 13
      o2web/source/x_component_Attendance/$MyAppeal/listItem.json
  14. 15 5
      o2web/source/x_component_Attendance/AppealExplorer.js
  15. 6 6
      o2web/source/x_component_Attendance/MyAppeal.js
  16. 3 1
      package.json

+ 7 - 0
gulpfile.js

@@ -803,6 +803,12 @@ function build_web_v_html() {
         .pipe(gulp.dest(dest))
         .pipe(gutil.noop());
 }
+function build_web_api() {
+    var src = 'o2web/api/**/*';
+    var dest = 'target/o2server/servers/webServer/api/';
+    return gulp.src(src)
+        .pipe(gulp.dest(dest))
+}
 function build_web_v_o2() {
     var src = 'target/o2server/servers/webServer/o2_core//o2.js';
     var dest = 'target/o2server/servers/webServer/o2_core/';
@@ -897,6 +903,7 @@ exports.build_web = gulp.series(
         build_bundle
     ),
     build_web_v_html,
+    build_web_api,
     build_web_v_o2);
 
 if (os.platform().indexOf("win")==-1){

+ 8 - 0
o2server/configSample/pushConfig.json

@@ -0,0 +1,8 @@
+{
+  "enable": false,
+  "appKey": "9aca7cc20fe0cc987cd913ca",
+  "masterSecret": "96ee7e2e0daffd51bac57815",
+  "###enable": "是否启用.###",
+  "###appKey": "极光推送应用的AppKey###",
+  "###masterSecret": "极光推送应用的Master Secret###"
+}

+ 1 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/factory/AttendanceDetailStatisticFactory.java

@@ -301,6 +301,7 @@ public class AttendanceDetailStatisticFactory extends AbstractFactory {
 		Root<AttendanceDetail> root = cq.from( AttendanceDetail.class);	
 		Predicate p = root.get(AttendanceDetail_.empName).in( employeeNames );		
 		p = cb.and( p, cb.equal( root.get( AttendanceDetail_.recordStatus ), 1));
+		p = cb.and( p, cb.isTrue( root.get( AttendanceDetail_.isAbsent) ));
 		if( cycleYear == null || cycleYear.isEmpty() ){
 			logger.error( new CycleYearEmptyException() );
 		}else{

+ 1 - 1
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailAnalyseService.java

@@ -595,7 +595,7 @@ public class AttendanceDetailAnalyseService {
 	 * @param debugger
 	 * @throws Exception
 	 */
-	private void recordStatisticRequireLog( AttendanceDetail detail, Boolean debugger ) throws Exception{
+	public void recordStatisticRequireLog( AttendanceDetail detail, Boolean debugger ) throws Exception{
 		//数据分析完成,那么需要记录一下需要统计的信息数据
 		AttendanceStatisticRequireLog log = null;
 		AttendanceStatisticRequireLogFactory attendanceStatisticRequireLogFactory = null;

+ 12 - 0
o2server/x_attendance_assemble_control/src/main/java/com/x/attendance/assemble/control/service/AttendanceDetailService.java

@@ -23,6 +23,7 @@ import javax.persistence.criteria.Root;
 public class AttendanceDetailService {
 	
 	private static  Logger logger = LoggerFactory.getLogger( AttendanceDetailService.class );
+	private AttendanceDetailAnalyseService attendanceDetailAnalyseService = new AttendanceDetailAnalyseService();
 
 	public AttendanceDetail get( EntityManagerContainer emc, String id ) throws Exception {
 		return emc.find(id, AttendanceDetail.class);
@@ -165,7 +166,18 @@ public class AttendanceDetailService {
 				attendanceDetail.setAppealProcessor( null );
 			}
 			attendanceDetail.setAppealStatus( status );
+			if(status == 9){
+				//若申述通过则更新Detail状态,使得Detail为正常打卡
+				attendanceDetail.setIsGetSelfHolidays(false);
+				attendanceDetail.setIsLate(false);
+				attendanceDetail.setIsAbsent(false);
+				attendanceDetail.setIsAbnormalDuty(false);
+				attendanceDetail.setIsLackOfTime(false);
+				//并对该条考勤数据发起统计请求
+				attendanceDetailAnalyseService.recordStatisticRequireLog(attendanceDetail,true);
+			}
 			emc.check( attendanceDetail, CheckPersistType.all );
+
 		}
 		if( autoCommit ){
 			emc.commit();

+ 0 - 65
o2server/x_base_core_project/src/main/java/com/x/base/core/project/jaxrs/sysresource/ActionUploadResource.java

@@ -1,65 +0,0 @@
-package com.x.base.core.project.jaxrs.sysresource;
-
-import com.x.base.core.project.config.Config;
-import com.x.base.core.project.http.ActionResult;
-import com.x.base.core.project.http.EffectivePerson;
-import com.x.base.core.project.jaxrs.WrapBoolean;
-import com.x.base.core.project.logger.Logger;
-import com.x.base.core.project.logger.LoggerFactory;
-import com.x.base.core.project.tools.JarTools;
-import org.apache.commons.io.FileUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-class ActionUploadResource extends BaseAction {
-
-	private static Logger logger = LoggerFactory.getLogger(ActionUploadResource.class);
-
-	ActionResult<Wo> execute(EffectivePerson effectivePerson, Boolean asNew,String fileName,String filePath,byte[] bytes,
-			FormDataContentDisposition disposition) throws Exception {
-		ActionResult<Wo> result = new ActionResult<>();
-		if (StringUtils.isEmpty(fileName)) {
-			fileName = this.fileName(disposition);
-		}
-		if(!fileName.toLowerCase().endsWith(".zip")){
-			throw new Exception("file must be zip file!");
-		}
-		if(bytes==null || bytes.length==0){
-			throw new Exception("file must be not empty zip file!");
-		}
-
-		File tempFile = new File(Config.base(), "local/temp/upload");
-		FileUtils.forceMkdirParent(tempFile);
-		FileUtils.forceMkdir(tempFile);
-		FileUtils.cleanDirectory(tempFile);
-
-		File zipFile = new File(tempFile.getAbsolutePath(), fileName);
-		FileUtils.writeByteArrayToFile(zipFile, bytes);
-		File dist = new File(Config.base(), Config.DIR_SERVERS_WEBSERVER);
-		if(StringUtils.isNotEmpty(filePath)){
-			dist = new File(dist, filePath);
-			FileUtils.forceMkdirParent(dist);
-			FileUtils.forceMkdir(dist);
-		}
-		List<String> subs = new ArrayList<>();
-		subs.add("x_");
-		subs.add("o2_");
-		logger.print("{}上传静态资源:{},资源大小:{},到:{}", effectivePerson.getDistinguishedName(), fileName, bytes.length, dist.getAbsolutePath());
-		JarTools.unjar(zipFile, subs, dist, asNew);
-
-		FileUtils.cleanDirectory(tempFile);
-
-		Wo wo = new Wo();
-		wo.setValue(true);
-		result.setData(wo);
-		return result;
-	}
-
-	public static class Wo extends WrapBoolean {
-
-	}
-}

+ 1 - 25
o2server/x_base_core_project/src/main/java/com/x/base/core/project/jaxrs/sysresource/SysResourceAction.java

@@ -10,8 +10,6 @@ import com.x.base.core.project.jaxrs.ResponseFactory;
 import com.x.base.core.project.jaxrs.StandardJaxrsAction;
 import com.x.base.core.project.logger.Logger;
 import com.x.base.core.project.logger.LoggerFactory;
-import org.glassfish.jersey.media.multipart.FormDataContentDisposition;
-import org.glassfish.jersey.media.multipart.FormDataParam;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.ws.rs.*;
@@ -26,28 +24,6 @@ public class SysResourceAction extends StandardJaxrsAction {
 
 	private static Logger logger = LoggerFactory.getLogger(SysResourceAction.class);
 
-	@JaxrsMethodDescribe(value = "上传静态资源(仅上传到当前服务器)", action = ActionUploadResource.class)
-	@POST
-	@Path("upload/resource/as/new/{asNew}")
-	@Consumes(MediaType.MULTIPART_FORM_DATA)
-	@Produces(HttpMediaType.APPLICATION_JSON_UTF_8)
-	public void uploadResource(@Suspended final AsyncResponse asyncResponse, @Context HttpServletRequest request,
-							   @JaxrsParameterDescribe("覆盖类型:true删除原文件然后上传,false覆盖原文件") @PathParam("asNew") Boolean asNew,
-							   @JaxrsParameterDescribe("附件名称") @FormDataParam(FILENAME_FIELD) String fileName,
-							   @JaxrsParameterDescribe("附件存放目录(可以为空)") @FormDataParam("filePath") String filePath,
-							   @JaxrsParameterDescribe("附件标识") @FormDataParam(FILE_FIELD) final byte[] bytes,
-							   @JaxrsParameterDescribe("上传文件") @FormDataParam(FILE_FIELD) final FormDataContentDisposition disposition) {
-		ActionResult<ActionUploadResource.Wo> result = new ActionResult<>();
-		EffectivePerson effectivePerson = this.effectivePerson(request);
-		try {
-			result = new ActionUploadResource().execute(effectivePerson, asNew, fileName, filePath, bytes, disposition);
-		} catch (Exception e) {
-			logger.error(e, effectivePerson, request, null);
-			result.error(e);
-		}
-		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
-	}
-
 	@JaxrsMethodDescribe(value = "获取静态资源信息.", action = ActionListResource.class)
 	@GET
 	@Path("filePath/{filePath}")
@@ -66,4 +42,4 @@ public class SysResourceAction extends StandardJaxrsAction {
 		asyncResponse.resume(ResponseFactory.getEntityTagActionResultResponse(request, result));
 	}
 
-}
+}

+ 29 - 6
o2server/x_base_core_project/src/main/java/com/x/base/core/project/script/ScriptFactory.java

@@ -3,7 +3,6 @@ package com.x.base.core.project.script;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 
 import javax.script.Compilable;
@@ -245,16 +244,38 @@ public class ScriptFactory {
 			} else if (o instanceof ScriptObjectMirror) {
 				ScriptObjectMirror som = (ScriptObjectMirror) o;
 				if (som.isArray()) {
-					Object[] objs = (som.to(Object[].class));
-					for (Object obj : objs) {
+					for (Object obj : som.to(Object[].class)) {
+						if (null != obj) {
+							if (obj instanceof CharSequence) {
+								list.add(Objects.toString(obj, ""));
+							} else if (obj instanceof ScriptObject) {
+								ScriptObject so = (ScriptObject) obj;
+								if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+									list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
+								}
+							} else {
+								list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class, ""));
+							}
+
+						}
+					}
+				} else if (som.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+					list.add(Objects.toString(som.get(JpaObject.DISTINGUISHEDNAME), ""));
+				} else {
+					list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
+				}
+			} else if (o instanceof ScriptObject) {
+				ScriptObject so = (ScriptObject) o;
+				if (so.isArray()) {
+					for (Object obj : so.getArray().asObjectArray()) {
 						if (null != obj) {
 							if (obj instanceof CharSequence) {
 								list.add(Objects.toString(obj, ""));
 							} else {
 								if (obj instanceof ScriptObject) {
-									ScriptObject so = (ScriptObject) obj;
-									if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
-										list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
+									ScriptObject scriptObject = (ScriptObject) obj;
+									if (scriptObject.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+										list.add(Objects.toString(scriptObject.get(JpaObject.DISTINGUISHEDNAME), ""));
 									}
 								} else {
 									list.add(PropertyTools.getOrElse(obj, JpaObject.DISTINGUISHEDNAME, String.class,
@@ -263,6 +284,8 @@ public class ScriptFactory {
 							}
 						}
 					}
+				} else if (so.containsKey(JpaObject.DISTINGUISHEDNAME)) {
+					list.add(Objects.toString(so.get(JpaObject.DISTINGUISHEDNAME), ""));
 				} else {
 					list.add(PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME, String.class, ""));
 				}

+ 0 - 5
o2server/x_general_assemble_control/src/main/java/com/x/general/assemble/control/jaxrs/generalfile/ActionGet.java

@@ -28,11 +28,6 @@ public class ActionGet extends BaseAction {
                 wo = new Wo(generalFile.readContent(gfMapping), this.contentType(false, generalFile.getName()),
                         this.contentDisposition(false, generalFile.getName()));
                 result.setData(wo);
-
-                generalFile.deleteContent(gfMapping);
-                emc.beginTransaction(GeneralFile.class);
-                emc.delete(GeneralFile.class, generalFile.getId());
-                emc.commit();
             } else {
                 throw new ExceptionInputFileObject(flag);
             }

+ 8 - 5
o2server/x_organization_assemble_express/src/main/java/com/x/organization/assemble/express/jaxrs/unitduty/ActionListIdentityWithUnitWithName.java

@@ -33,9 +33,12 @@ import com.x.organization.core.entity.UnitDuty_;
 
 class ActionListIdentityWithUnitWithName extends BaseAction {
 	private static Logger logger = LoggerFactory.getLogger(ActionListIdentityWithUnitWithName.class);
+
 	ActionResult<Wo> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
+
 		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
 			Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
+
 			ActionResult<Wo> result = new ActionResult<>();
 			Business business = new Business(emc);
 			List<String> names = new ArrayList<>();
@@ -143,20 +146,20 @@ class ActionListIdentityWithUnitWithName extends BaseAction {
 	private Wo list(Business business, List<String> names, List<String> units, Boolean recursiveUnit) throws Exception {
 		Wo wo = new Wo();
 		List<UnitDuty> os = new ArrayList<>();
-		if(units.isEmpty()){
+		if (units.isEmpty()) {
 			EntityManager em = business.entityManagerContainer().get(UnitDuty.class);
 			CriteriaBuilder cb = em.getCriteriaBuilder();
 			CriteriaQuery<UnitDuty> cq = cb.createQuery(UnitDuty.class);
 			Root<UnitDuty> root = cq.from(UnitDuty.class);
 			Predicate p = root.get(UnitDuty_.name).in(names);
 			os = em.createQuery(cq.select(root).where(p)).getResultList();
-		}else{
+		} else {
 			List<Unit> unitList = business.unit().pick(units);
-			if(!unitList.isEmpty()){
+			if (!unitList.isEmpty()) {
 				units.clear();
-				for(Unit unit : unitList){
+				for (Unit unit : unitList) {
 					units.add(unit.getId());
-					if(BooleanUtils.isTrue(recursiveUnit)){
+					if (BooleanUtils.isTrue(recursiveUnit)) {
 						units.addAll(business.unit().listSubNested(unit.getId()));
 					}
 				}

+ 17 - 13
o2server/x_processplatform_service_processing/src/main/java/com/x/processplatform/service/processing/processor/manual/TranslateTaskIdentityTools.java

@@ -7,7 +7,6 @@ import java.util.Objects;
 
 import javax.script.CompiledScript;
 
-import org.apache.commons.beanutils.PropertyUtils;
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
 
@@ -21,6 +20,7 @@ import com.x.base.core.project.logger.LoggerFactory;
 import com.x.base.core.project.organization.OrganizationDefinition;
 import com.x.base.core.project.script.ScriptFactory;
 import com.x.base.core.project.tools.ListTools;
+import com.x.base.core.project.tools.PropertyTools;
 import com.x.processplatform.core.entity.content.Data;
 import com.x.processplatform.core.entity.element.Manual;
 import com.x.processplatform.service.processing.Business;
@@ -203,18 +203,22 @@ public class TranslateTaskIdentityTools {
 
 	private static void addObjectToTaskIdentities(TaskIdentities taskIdentities, List<String> units,
 			List<String> groups, Object o) throws Exception {
-		String d = Objects.toString(PropertyUtils.getProperty(o, JpaObject.DISTINGUISHEDNAME), "");
-		if (OrganizationDefinition.isIdentityDistinguishedName(d)) {
-			Boolean ignore = BooleanUtils.isTrue(BooleanUtils.toBooleanObject(
-					Objects.toString(PropertyUtils.getProperty(o, TaskIdentity.IGNOREEMPOWER), "false")));
-			TaskIdentity taskIdentity = new TaskIdentity();
-			taskIdentity.setIdentity(d);
-			taskIdentity.setIgnoreEmpower(ignore);
-			taskIdentities.add(taskIdentity);
-		} else if (OrganizationDefinition.isUnitDistinguishedName(d)) {
-			units.add(d);
-		} else if (OrganizationDefinition.isGroupDistinguishedName(d)) {
-			groups.add(d);
+		// String d = PropertyTools.getOrElse(o, JpaObject.DISTINGUISHEDNAME,
+		// String.class, "");
+		for (String d : ScriptFactory.asDistinguishedNameList(o)) {
+			if (OrganizationDefinition.isIdentityDistinguishedName(d)) {
+				Boolean ignore = BooleanUtils.isTrue(BooleanUtils.toBooleanObject(Objects.toString(
+						PropertyTools.getOrElse(o, TaskIdentity.IGNOREEMPOWER, Boolean.class, Boolean.FALSE),
+						"false")));
+				TaskIdentity taskIdentity = new TaskIdentity();
+				taskIdentity.setIdentity(d);
+				taskIdentity.setIgnoreEmpower(ignore);
+				taskIdentities.add(taskIdentity);
+			} else if (OrganizationDefinition.isUnitDistinguishedName(d)) {
+				units.add(d);
+			} else if (OrganizationDefinition.isGroupDistinguishedName(d)) {
+				groups.add(d);
+			}
 		}
 	}
 

+ 1 - 1
o2web/source/x_component_Attendance/$Main/navi.json

@@ -82,7 +82,7 @@
       },
       {
         "access": "admin",
-        "title": "入错误信息",
+        "title": "移动端接入错误信息",
         "id": "20.4",
         "action": "openImportedInvalidInfor"
       },

+ 13 - 13
o2web/source/x_component_Attendance/$MyAppeal/listItem.json

@@ -5,7 +5,7 @@
     "contentStyles" : "normalTdNode",
     "item" : "function(d){ return d.empName.split('@')[0] }",
     "name" : "empName",
-    "width" : "10%"
+    "width" : "20%"
   },
   {
     "title" : "考勤日期",
@@ -13,7 +13,7 @@
     "contentStyles" : "normalTdNode",
     "item" : "recordDateString",
     "name" : "recordDateString",
-    "width" : "10%"
+    "width" : "20%"
   },
   //  {
   //    "title": "考勤状态",
@@ -29,7 +29,7 @@
     "contentStyles" : "normalTdNode",
     "item" : "appealReason",
     "name" : "appealReason",
-    "width" : "15%"
+    "width" : "20%"
   },
   {
     "title": "申述日期",
@@ -37,7 +37,7 @@
     "contentStyles": "normalTdNode",
     "item": "function( d ){ var date = d.appealDateString.split(' '); return date[0] }",
     "name" : "appealDateString",
-    "width" : "10%"
+    "width" : "20%"
   },
   {
     "title": "审批状态",
@@ -45,16 +45,16 @@
     "contentStyles": "normalTdNode",
     "item": "function( d ){  if(d.status==0){ return '待处理' }else if(d.status==-1){ return '未通过' }else if(d.status==1){ return '通过' }else{ return '' } }",
     "name" : "status",
-    "width" : "10%"
-  },
-  {
-    "title" : "审批意见",
-    "headStyles" : "normalThNode",
-    "contentStyles" : "normalTdNode",
-    "item" : "opinion1",
-    "name" : "opinion1",
-    "width" : "15%"
+    "width" : "20%"
   }
+  //{
+  //  "title" : "审批意见",
+   // "headStyles" : "normalThNode",
+   // "contentStyles" : "normalTdNode",
+   // "item" : "opinion1",
+   // "name" : "opinion1",
+   // "width" : "15%"
+  //}
   //  {
   //    "title" : "操作",
   //    "headStyles" : "normalThNode",

+ 15 - 5
o2web/source/x_component_Attendance/AppealExplorer.js

@@ -337,7 +337,7 @@ MWF.xApplication.Attendance.AppealExplorer.View = new Class({
     },
     _openDocument: function( documentData ){
 
-        if(!!documentData.appealAuditInfo){
+        /*if(!!documentData.appealAuditInfo){
             var workid = documentData.appealAuditInfo.workId;
             var options = {"workId":workid, "appId": "process.Work"+workid};
             this.app.desktop.openApplication(null, "process.Work", options);
@@ -348,7 +348,17 @@ MWF.xApplication.Attendance.AppealExplorer.View = new Class({
             }else{
                 appeal.open();
             }
+        }*/
+        if(documentData.appealAuditInfo){
+            if(documentData.appealAuditInfo.workId){
+                var workid = documentData.appealAuditInfo.workId;
+                var options = {"workId":workid, "appId": "process.Work"+workid};
+                this.app.desktop.openApplication(null, "process.Work", options);
+                return;
+            }
         }
+        var appeal = new MWF.xApplication.Attendance.AppealExplorer.Appeal(this.explorer, documentData );
+        appeal.open();
 
     }
 
@@ -509,8 +519,8 @@ MWF.xApplication.Attendance.AppealExplorer.Appeal = new Class({
             "    <td styles='formTableValue' item='endTime' colspan='3'></td></tr>" +
             "<tr contain='appealDescription'><td styles='formTableTitle' lable='appealDescription'></td>"+
             "    <td styles='formTableValue' item='appealDescription' colspan='3'></td></tr>" +
-            "<tr contain='opinion1'><td styles='formTableTitle' lable='opinion1'></td>"+
-            "    <td styles='formTableValue' item='opinion1' colspan='3'></td></tr>" +
+            /*"<tr contain='opinion1'><td styles='formTableTitle' lable='opinion1'></td>"+
+            "    <td styles='formTableValue' item='opinion1' colspan='3'></td></tr>" +*/
             "</table>"
         this.createTableArea.set("html",html);
 
@@ -535,8 +545,8 @@ MWF.xApplication.Attendance.AppealExplorer.Appeal = new Class({
                 },
                 startTime : {  text:"开始日期", type : "innertext" },
                 endTime : {  text:"结束日期", type : "innertext" },
-                appealDescription : { text:"事由", type : "innertext" },
-                opinion1 : { text :"审批意见",type : "textarea" }
+                appealDescription : { text:"事由", type : "innertext" }
+                //opinion1 : { text :"审批意见",type : "textarea" }
             }
         }, this.app,this.css);
         this.document.load();

+ 6 - 6
o2web/source/x_component_Attendance/MyAppeal.js

@@ -447,7 +447,7 @@ MWF.xApplication.Attendance.MyAppeal.Appeal = new Class({
             appealStatus = "申诉不通过"
         }
         this.data.appealStatusShow = appealStatus;
-
+debugger
         var html = "<table width='100%' bordr='0' cellpadding='5' cellspacing='0' styles='formTable'>"+
             "<tr><td colspan='4' styles='formTableHead'>申诉申请单</td></tr>" +
             "<tr><td styles='formTableTitle'>员工姓名</td>"+
@@ -474,8 +474,8 @@ MWF.xApplication.Attendance.MyAppeal.Appeal = new Class({
             "    <td styles='formTableValue' item='endTime' colspan='3'></td></tr>" +
             "<tr contain='appealDescription'><td styles='formTableTitle' lable='appealDescription'></td>"+
             "    <td styles='formTableValue' item='appealDescription' colspan='3'></td></tr>" +
-            "<tr contain='opinion1'><td styles='formTableTitle' lable='opinion1'></td>"+
-            "    <td styles='formTableValue' item='opinion1' colspan='3'></td></tr>" +
+            /*"<tr contain='opinion1'><td styles='formTableTitle' lable='opinion1'></td>"+
+            "    <td styles='formTableValue' item='opinion1' colspan='3'></td></tr>" +*/
             "</table>";
         this.createTableArea.set("html",html);
 
@@ -488,7 +488,7 @@ MWF.xApplication.Attendance.MyAppeal.Appeal = new Class({
                 offDutyTime : { text:"下班打卡时间",  type : "innertext"},
                 statusShow : {  text:"考勤状态", type : "innertext" },
                 appealStatusShow : { text:"审批状态",type : "innertext"},
-                processPerson1Show : {text:"审核人",type:"innertext", value : this.data.processPerson1?this.data.processPerson1.split("@")[0] :""},
+                processPerson1Show : {text:"审核人",type:"innertext", value : this.data.appealAuditInfo?this.data.appealAuditInfo.currentProcessor.split("@")[0] :""},
                 appealReason : {
                     notEmpty : true,
                     text:"申述原因",
@@ -506,8 +506,8 @@ MWF.xApplication.Attendance.MyAppeal.Appeal = new Class({
                 },
                 startTime : {  text:"开始日期", tType : "datetime" },
                 endTime : {  text:"结束日期", tType : "datetime" },
-                appealDescription : { text:"事由" },
-                opinion1 : { text :"审批意见" }
+                appealDescription : { text:"事由" }
+                //opinion1 : { text :"审批意见" }
             }
         }, this.app,this.css);
         this.document.load();

+ 3 - 1
package.json

@@ -15,7 +15,9 @@
                 "build_server": "gulp build_server",
                 "build_server_script": "cd o2server && mvn clean && mvn install",
                 "build_web": "gulp build_web",
-                "build_parallel": "npm run build_server && npm run build_web",
+                "build_api_version": "jsdoc -c o2web/jsdoc.conf.json -q version=${VAPI}",
+                "build_api": "jsdoc -c o2web/jsdoc.conf.json -q version=",
+                "build_parallel": "npm run build_server && npm run build_api &&  npm run build_web",
                 "deploy": "gulp deploy",
                 "deploy:win": "gulp deploy --e windows",
                 "deploy:linux": "gulp deploy --e linux",