wkyy 3 年之前
父節點
當前提交
c10dacee94

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/WorkOverService.java

@@ -21,7 +21,7 @@ public interface WorkOverService {
 
     void approvalWorkOver(PersonInfo personInfo, String ids, String status, String approvalContent) throws Exception;
 
-    String workOverPathSubmit(PersonPopedom personPopedom, Integer hours, String startTime, String endTime, String reason, String personIds,String formId,String type) throws Exception;
+    String workOverPathSubmit(PersonPopedom personPopedom, Integer hours, String startTime, String endTime, String reason, String personIds,String formId,String type,String ids,String draft) throws Exception;
 
 	int findSumHoursByParams(Long personId, Date startDate, Date endDate, Map<String, Object> searchParams);
 

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/BusinessOutServiceImpl.java

@@ -464,7 +464,7 @@ public class BusinessOutServiceImpl implements BusinessOutService {
 
             businessOut.setProcinstId(procinstId);
 
-            insert(businessOut);
+            update(businessOut);
 
             businessOut.setStatus("0");
 

+ 44 - 36
common/src/main/java/com/jpsoft/shinestar/modules/base/service/impl/WorkOverServiceImpl.java

@@ -321,7 +321,7 @@ public class WorkOverServiceImpl implements WorkOverService {
 	}
 
 	@Override
-	public String workOverPathSubmit(PersonPopedom personPopedom, Integer hours, String startTime, String endTime, String reason,String personIds, String formId,String type) throws Exception {
+	public String workOverPathSubmit(PersonPopedom personPopedom, Integer hours, String startTime, String endTime, String reason,String personIds, String formId,String type,String ids,String draft) throws Exception {
 
 		if (hours<=0){
 			throw new Exception("加班时间有误");
@@ -340,7 +340,7 @@ public class WorkOverServiceImpl implements WorkOverService {
 		if ("3".equals(type)){
 			workOver.setStatus("4");
 		}else {
-			workOver.setStatus("0");
+			workOver.setStatus("-99");
 		}
 
 		/*if (StringUtils.isNotBlank(personIds)){
@@ -351,7 +351,12 @@ public class WorkOverServiceImpl implements WorkOverService {
 
 		workOver.setReason(reason);
 		workOver.setCreateTime(new Date());
-		insert(workOver);
+
+		if(StringUtils.isNotEmpty(ids)){
+			update(workOver);
+		}else {
+			insert(workOver);
+		}
 
 		List<String> personIdList = new ArrayList<>();
 		if ("batchExtraWork".equals(formId)){
@@ -428,53 +433,56 @@ public class WorkOverServiceImpl implements WorkOverService {
 			}
 		}
 
-		//非上级安排的需要加入审核流程
-		if (!"3".equals(type)){
+		if (draft == "1") {
+			//非上级安排的需要加入审核流程
+			if (!"3".equals(type)) {
 
-			//创建审核流程id
-			String procinstId =  procinstService.addProcinst(workOver.getId(),null,"加班",formId,personPopedom,null);
+				//创建审核流程id
+				String procinstId = procinstService.addProcinst(workOver.getId(), null, "加班", formId, personPopedom, null);
 
 
-			workOver.setProcinstId(procinstId);
-			update(workOver);
+				workOver.setProcinstId(procinstId);
+				update(workOver);
+				workOver.setStatus("0");
 
-			ProcinstActivity procinstActivity = procinstActivityService.findByActivityIndexAndProcinstId(1, procinstId);
+				ProcinstActivity procinstActivity = procinstActivityService.findByActivityIndexAndProcinstId(1, procinstId);
 
-			if (procinstActivity != null) {
-				List<ProcinstActUser> procinstActUserList = procinstActUserService.findByProcinstActivityIdActionType(procinstActivity.getId(), "0", "1");
-				if (procinstActUserList.size() > 0) {
+				if (procinstActivity != null) {
+					List<ProcinstActUser> procinstActUserList = procinstActUserService.findByProcinstActivityIdActionType(procinstActivity.getId(), "0", "1");
+					if (procinstActUserList.size() > 0) {
 
-					new Thread(() -> {
-						for (ProcinstActUser procinstActUser : procinstActUserList) {
-							try{
-								PersonInfo personInfo = personInfoService.get(Long.parseLong(procinstActUser.getUserId()));
+						new Thread(() -> {
+							for (ProcinstActUser procinstActUser : procinstActUserList) {
+								try {
+									PersonInfo personInfo = personInfoService.get(Long.parseLong(procinstActUser.getUserId()));
+
+									//提交人
+									PersonInfo personInfo1 = personInfoService.get(personPopedom.getPersonId());
+									String accessToken = JwtUtil2.createToken(jwtSecret, personInfo.getId() + "", DateTime.now().plusHours(30 * 24).toDate());
+									WechatMessageUtil.sendEvenMessage(personInfo.getOpenId(), "有一条新的加班信息待审核", personInfo1.getName(), com.jpsoft.shinestar.modules.common.utils.StringUtils.getApprovalNo(), "前往处理", wxConfig.getPortalUrl() + "xsy/approval/infosp?id=" + workOver.getId() + "&procinstActUserId=" + procinstActUser.getId() + "&formId=" + formId + "&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
+								} catch (Exception ex) {
+									ex.printStackTrace();
+								}
 
-								//提交人
-								PersonInfo personInfo1 = personInfoService.get(personPopedom.getPersonId());
+							}
+						}).start();
+
+					}
+				}
+			} else {
+				if (personInfoList.size() > 0) {
+					new Thread(() -> {
+						for (PersonInfo personInfo : personInfoList) {
+							try {
 								String accessToken = JwtUtil2.createToken(jwtSecret, personInfo.getId() + "", DateTime.now().plusHours(30 * 24).toDate());
-								WechatMessageUtil.sendEvenMessage(personInfo.getOpenId(), "有一条新的加班信息待审核", personInfo1.getName(), com.jpsoft.shinestar.modules.common.utils.StringUtils.getApprovalNo(), "前往处理", wxConfig.getPortalUrl() + "xsy/approval/infosp?id=" + workOver.getId() + "&procinstActUserId=" + procinstActUser.getId() + "&formId=" + formId  +"&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
-							}catch (Exception ex){
+								WechatMessageUtil.sendExamine(personInfo.getOpenId(), "安排加班", personInfo.getName(), "1", "上级安排", "加班", "前往查看", wxConfig.getPortalUrl() + "xsy/approval/info?id=" + workOver.getId() + "&formId=" + formId + "&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
+							} catch (Exception ex) {
 								ex.printStackTrace();
 							}
-
 						}
 					}).start();
-
 				}
 			}
-		}else {
-			if (personInfoList.size()>0){
-				new Thread(()->{
-					for (PersonInfo personInfo : personInfoList){
-						try{
-							String accessToken = JwtUtil2.createToken(jwtSecret, personInfo.getId() + "", DateTime.now().plusHours(30 * 24).toDate());
-							WechatMessageUtil.sendExamine(personInfo.getOpenId(), "安排加班", personInfo.getName(), "1", "上级安排", "加班", "前往查看", wxConfig.getPortalUrl() + "xsy/approval/info?id=" + workOver.getId() + "&formId=" + formId + "&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
-						}catch (Exception ex){
-							ex.printStackTrace();
-						}
-					}
-				}).start();
-			}
 		}
 
 

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/FillAttendanceService.java

@@ -18,7 +18,7 @@ public interface FillAttendanceService {
 	Page<FillAttendance> pageSearch(Map<String, Object> searchParams, int pageNum, int pageSize, List<Sort> sortList);
     FillAttendance insertAndfile(String workAttendanceId, String workAttendanceDate, String workAttendanceTime,
                                  String content, String type, String photoFile, String longitude, String latitude,
-                                 String approvalPersonId, Long personId, String alarmConfigId, String address, String attendanceType) throws Exception;
+                                 String approvalPersonId, Long personId, String alarmConfigId, String address, String attendanceType,String ids,String draft) throws Exception;
 
 
 	void updateAndWorkAtten(PersonInfo personInfo, String content, FillAttendance fillAttendance);

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/SupplementWorkService.java

@@ -19,5 +19,5 @@ public interface SupplementWorkService {
 
     String supplementWorkSubmit(PersonPopedom personPopedom, String id, String reason,String imageUrl, String formId) throws Exception;
 
-    String supplementWorkBatchSubmit(PersonPopedom personPopedom, String date,String personIds, String reason, String imageUrl, String formId) throws Exception;
+    String supplementWorkBatchSubmit(PersonPopedom personPopedom, String date,String personIds, String reason, String imageUrl, String formId,String ids,String draft) throws Exception;
 }

+ 1 - 1
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/FillAttendanceServiceImpl.java

@@ -114,7 +114,7 @@ public class FillAttendanceServiceImpl implements FillAttendanceService {
     @Override
     public FillAttendance insertAndfile(String workAttendanceId, String workAttendanceDate, String workAttendanceTime,
                                         String content, String type, String photoFile,String longitude,String latitude,
-                                        String approvalPersonId,Long personId,String alarmConfigId,String address,String attendanceType) throws Exception{
+                                        String approvalPersonId,Long personId,String alarmConfigId,String address,String attendanceType,String ids,String draft) throws Exception{
         WorkAttendance workAttendance = null;
 
         if (StringUtils.isNotBlank(workAttendanceId)){

+ 33 - 24
common/src/main/java/com/jpsoft/shinestar/modules/business/service/impl/SupplementWorkServiceImpl.java

@@ -21,6 +21,7 @@ import com.jpsoft.shinestar.modules.workflow.entity.ProcinstActivity;
 import com.jpsoft.shinestar.modules.workflow.service.ProcinstActUserService;
 import com.jpsoft.shinestar.modules.workflow.service.ProcinstActivityService;
 import com.jpsoft.shinestar.modules.workflow.service.ProcinstService;
+import org.apache.commons.lang3.StringUtils;
 import org.joda.time.DateTime;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
@@ -192,7 +193,7 @@ public class SupplementWorkServiceImpl implements SupplementWorkService {
 	}
 
 	@Override
-	public String supplementWorkBatchSubmit(PersonPopedom personPopedom, String date,String personIds, String reason, String imageUrl, String formId) throws Exception {
+	public String supplementWorkBatchSubmit(PersonPopedom personPopedom, String date,String personIds, String reason, String imageUrl, String formId,String ids,String draft) throws Exception {
 
 		List<String> personIdList = Arrays.asList(personIds.split(","));
 		if (personIdList.size() ==0){
@@ -214,7 +215,7 @@ public class SupplementWorkServiceImpl implements SupplementWorkService {
 		supplementWork.setAttendanceDate(date);
 	//	supplementWork.setClassify(classify);
 		supplementWork.setType("2");
-		supplementWork.setStatus("0");
+		supplementWork.setStatus("-99");
 		supplementWork.setSubmitTime(new Date());
 		supplementWork.setReason(reason);
 		supplementWork.setImageUrl(imageUrl);
@@ -244,40 +245,48 @@ public class SupplementWorkServiceImpl implements SupplementWorkService {
 			throw new Exception("所选人员在此班次下没有缺卡记录");
 		}
 
-		//创建审核流程id
-		String procinstId =  procinstService.addProcinst(supplementWork.getId(),null,"补卡",formId,personPopedom,null);
+		if(StringUtils.isNotEmpty(ids)){
+			update(supplementWork);
+		}else {
+			insert(supplementWork);
+		}
 
+		if (draft == "1") {
+			//创建审核流程id
+			String procinstId = procinstService.addProcinst(supplementWork.getId(), null, "补卡", formId, personPopedom, null);
 
-		supplementWork.setProcinstId(procinstId);
-		insert(supplementWork);
 
-		ProcinstActivity procinstActivity = procinstActivityService.findByActivityIndexAndProcinstId(1, procinstId);
+			supplementWork.setProcinstId(procinstId);
+			update(supplementWork);
+			supplementWork.setStatus("0");
 
-		if (procinstActivity != null) {
-			List<ProcinstActUser> procinstActUserList = procinstActUserService.findByProcinstActivityIdActionType(procinstActivity.getId(), "0", "1");
-			if (procinstActUserList.size() > 0) {
+			ProcinstActivity procinstActivity = procinstActivityService.findByActivityIndexAndProcinstId(1, procinstId);
 
-				new Thread(() -> {
-					for (ProcinstActUser procinstActUser : procinstActUserList) {
-						try{
-							PersonInfo personInfo = personInfoService.get(Long.parseLong(procinstActUser.getUserId()));
+			if (procinstActivity != null) {
+				List<ProcinstActUser> procinstActUserList = procinstActUserService.findByProcinstActivityIdActionType(procinstActivity.getId(), "0", "1");
+				if (procinstActUserList.size() > 0) {
 
-							//提交人
-							PersonInfo personInfo1 = personInfoService.get(personPopedom.getPersonId());
-							String accessToken = JwtUtil2.createToken(jwtSecret, personInfo.getId() + "", DateTime.now().plusHours(30 * 24).toDate());
-							WechatMessageUtil.sendEvenMessage(personInfo.getOpenId(), "有一条新的补卡信息待审核", personInfo1.getName(), com.jpsoft.shinestar.modules.common.utils.StringUtils.getApprovalNo(), "前往处理", wxConfig.getPortalUrl() + "xsy/approval/infosp?id=" + supplementWork.getId() + "&procinstActUserId=" + procinstActUser.getId() + "&formId=" + formId +"&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
-						}catch (Exception ex){
-							ex.printStackTrace();
-						}
+					new Thread(() -> {
+						for (ProcinstActUser procinstActUser : procinstActUserList) {
+							try {
+								PersonInfo personInfo = personInfoService.get(Long.parseLong(procinstActUser.getUserId()));
 
-					}
-				}).start();
+								//提交人
+								PersonInfo personInfo1 = personInfoService.get(personPopedom.getPersonId());
+								String accessToken = JwtUtil2.createToken(jwtSecret, personInfo.getId() + "", DateTime.now().plusHours(30 * 24).toDate());
+								WechatMessageUtil.sendEvenMessage(personInfo.getOpenId(), "有一条新的补卡信息待审核", personInfo1.getName(), com.jpsoft.shinestar.modules.common.utils.StringUtils.getApprovalNo(), "前往处理", wxConfig.getPortalUrl() + "xsy/approval/infosp?id=" + supplementWork.getId() + "&procinstActUserId=" + procinstActUser.getId() + "&formId=" + formId + "&token=" + accessToken, wxConfig.getAppId(), wxConfig.getAppSecret());
+							} catch (Exception ex) {
+								ex.printStackTrace();
+							}
 
+						}
+					}).start();
+
+				}
 			}
 		}
 
 
-
 		return supplementWork.getId();
 	}
 }

+ 9 - 7
web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/WorkAttendanceApiController.java

@@ -454,10 +454,11 @@ public class WorkAttendanceApiController {
             @ApiImplicitParam(name = "latitude", value = "纬度", required = false, paramType = "form"),
             @ApiImplicitParam(name = "address", value = "打卡地址", required = false, paramType = "form"),
             @ApiImplicitParam(name = "approvalPersonId", value = "审核人", required = false, paramType = "form"),
-            @ApiImplicitParam(name = "attendanceType", value = "外出/出差(2/3)", required = false, paramType = "form")
+            @ApiImplicitParam(name = "attendanceType", value = "外出/出差(2/3)", required = false, paramType = "form"),
+            @ApiImplicitParam(name = "draft", value = "状态(0:草稿,1:提交)", required = true, paramType = "form")
     })
     public MessageResult<WorkAttendanceDTO> postPatchCard(
-            String workAttendanceId, String alarmConfigId,
+            String ids,String draft,String workAttendanceId, String alarmConfigId,
             @RequestParam("workAttendanceDate") String workAttendanceDate,
             @RequestParam("workAttendanceTime") String workAttendanceTime,
             @RequestParam("type") String type,
@@ -524,7 +525,7 @@ public class WorkAttendanceApiController {
 
             FillAttendance fillAttendance = fillAttendanceService.insertAndfile(workAttendanceId, workAttendanceDate,
                     workAttendanceTime, content, type, photoFile, longitude, latitude,
-                    approvalPersonId, personInfo.getId(), alarmConfigId, address, attendanceType);
+                    approvalPersonId, personInfo.getId(), alarmConfigId, address, attendanceType,draft,ids);
 
 
             WorkAttendanceDTO workAttendanceDTO = new WorkAttendanceDTO();
@@ -592,7 +593,7 @@ public class WorkAttendanceApiController {
             @ApiImplicitParam(name = "id", value = "考勤记录id", required = true, paramType = "form"),
             @ApiImplicitParam(name = "reason", value = "申请理由", required = true, paramType = "form"),
             @ApiImplicitParam(name = "imageUrl", value = "照片地址", required = false, paramType = "form"),
-            @ApiImplicitParam(name = "formId", value = "标识", required = true, paramType = "form")
+            @ApiImplicitParam(name = "formId", value = "标识", required = true, paramType = "form"),
     })
     public MessageResult<Map> supplementWorkSubmit(String id, String reason, String imageUrl,String formId, String token, @RequestAttribute String subject) {
 
@@ -632,9 +633,10 @@ public class WorkAttendanceApiController {
             @ApiImplicitParam(name = "reason", value = "申请理由", required = true, paramType = "form"),
             @ApiImplicitParam(name = "personIds", value = "人员", required = true, paramType = "form"),
             @ApiImplicitParam(name = "imageUrl", value = "照片地址", required = false, paramType = "form"),
-            @ApiImplicitParam(name = "formId", value = "标识", required = true, paramType = "form")
+            @ApiImplicitParam(name = "formId", value = "标识", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "draft", value = "状态(0:草稿,1:提交)", required = true, paramType = "form")
     })
-    public MessageResult<Map> supplementWorkBatchSubmit(String date, String reason,String personIds, String imageUrl,String formId, String token, @RequestAttribute String subject) {
+    public MessageResult<Map> supplementWorkBatchSubmit(String ids,String draft,String date, String reason,String personIds, String imageUrl,String formId, String token, @RequestAttribute String subject) {
 
 
         MessageResult<Map> messageResult = new MessageResult<>();
@@ -644,7 +646,7 @@ public class WorkAttendanceApiController {
             PersonPopedom personPopedom = personPopedomService.get(person.getPopedom());
 
 
-            String supplementWorkId = supplementWorkService.supplementWorkBatchSubmit(personPopedom, date,personIds, reason,imageUrl, formId);
+            String supplementWorkId = supplementWorkService.supplementWorkBatchSubmit(personPopedom, date,personIds, reason,imageUrl, formId,draft,ids);
 
             Map<String, Object> map = new HashMap<>();
             map.put("id", supplementWorkId);

+ 4 - 3
web/src/main/java/com/jpsoft/shinestar/modules/mobile/controller/WorkOverApiController.java

@@ -504,9 +504,10 @@ public class WorkOverApiController {
             @ApiImplicitParam(name = "hours", value = "时长(小时)", required = true, paramType = "form"),
             @ApiImplicitParam(name = "personIds", value = "加班人(不传就是个人申请加班)", required = false, paramType = "form"),
             @ApiImplicitParam(name = "type", value = "1:个人申请,2:批量申请,3:上级安排", required = true, paramType = "form"),
-            @ApiImplicitParam(name = "formId", value = "页面路径", required = true, paramType = "form")
+            @ApiImplicitParam(name = "formId", value = "页面路径", required = true, paramType = "form"),
+            @ApiImplicitParam(name = "draft", value = "状态(0:草稿,1:提交)", required = true, paramType = "form")
     })
-    public MessageResult<Map> workOverPathSubmit(String reason, String startTime, String endTime, Integer hours,String personIds,String type,String formId,String token, @RequestAttribute String subject) {
+    public MessageResult<Map> workOverPathSubmit(String ids,String draft,String reason, String startTime, String endTime, Integer hours,String personIds,String type,String formId,String token, @RequestAttribute String subject) {
 
 
         MessageResult<Map> messageResult = new MessageResult<>();
@@ -515,7 +516,7 @@ public class WorkOverApiController {
             PersonInfo person = personInfoService.get(Long.parseLong(subject));
             PersonPopedom personPopedom = personPopedomService.get(person.getPopedom());
 
-            String id = workOverService.workOverPathSubmit(personPopedom, hours,startTime,endTime,reason,personIds,formId,type);
+            String id = workOverService.workOverPathSubmit(personPopedom, hours,startTime,endTime,reason,personIds,formId,type,ids,draft);
 
             Map<String, Object> map = new HashMap<>();
             map.put("id", id);