Browse Source

四部报销调整

user5 1 year atrás
parent
commit
156b4d1d72

+ 65 - 0
src/main/java/com/jeeplus/modules/workprojectnotify/web/WorkProjectNotifyController.java

@@ -1448,6 +1448,10 @@ public class WorkProjectNotifyController extends BaseController {
 
 					return this.workReimbursementElectronicInvoiceAudit(workProjectNotify,model);
 
+				}else if (workProjectNotify.getType().equals("107")) {    //四部报销
+
+					return this.workReimbursementSpecificInvoiceAudit(workProjectNotify,model);
+
 				} else if (workProjectNotify.getType().equals("16")) {    //合同管理
 					WorkContractInfo workContractInfo = workContractInfoService.get(workProjectNotify.getNotifyId());
 					if(StringUtils.isNotBlank(workContractInfo.getChargeCriterion())){
@@ -9706,5 +9710,66 @@ public class WorkProjectNotifyController extends BaseController {
 		}
 	}
 
+	private String workReimbursementSpecificInvoiceAudit(WorkProjectNotify workProjectNotify,Model model) {
+		WorkReimbursement workReimbursement = workReimbursementService.get(workProjectNotify.getNotifyId());
+		//判断报销类型状态并添加报销类型信息数据
+		if(StringUtils.isNotBlank(workReimbursement.getType())){
+			WorkReimbursementTypeInfo workReimbursementTypeInfo = workReimbursementTypeService.get(workReimbursement.getType());
+			workReimbursement.setWorkReimbursementTypeInfo(workReimbursementTypeInfo);
+			if(StringUtils.isNotBlank(workReimbursementTypeInfo.getStandardDetail())){
+				workReimbursement.setTypeName(workReimbursementTypeInfo.getStandardDetail());
+			}
+		}
+		workReimbursement.setAct(getByAct(workReimbursement.getProcessInstanceId()));
+		if(StringUtils.isNotBlank(workProjectNotify.getHome())){
+			workReimbursement.setHome(workProjectNotify.getHome());
+		}else{
+			workReimbursement.setHome("home");
+		}
+		model.addAttribute("workReimbursement", workReimbursement);
+		String param=UserUtils.getSysParam("check_subjects",UserUtils.getUser());
+		if("是".equals(param)){
+			model.addAttribute("isShow", '1');
+		}else{
+			model.addAttribute("isShow", '0');
+		}
+
+		switch (workReimbursement.getReimbursementType()){
+			case "0" :
+				workReimbursement.setReimbursementTypeStr("普通报销");
+				break;
+			case "1" :
+				workReimbursement.setReimbursementTypeStr("电子发票报销");
+				break;
+
+		}
+
+		if(null != workReimbursement.getReimbursementElectronicInvoiceVATTaxes() && workReimbursement.getReimbursementElectronicInvoiceVATTaxes().size()>0){
+			//获取专业类型
+			List<MainDictDetail> certificateMajor = DictUtils.getMainDictList("invoiceReimbursementType");
+			for (ReimbursementVATTax vatTax : workReimbursement.getReimbursementElectronicInvoiceVATTaxes()) {
+				for (MainDictDetail dictDetail : certificateMajor) {
+					if(dictDetail.getValue().equals(vatTax.getInvoiceType())){
+						vatTax.setInvoiceTypeStr(dictDetail.getLabel());
+					}
+				}
+			}
+		}
+
+		if (workProjectNotify.getRemarks().contains("待通知") || "view".equals(workProjectNotify.getView())) {
+			return "modules/workreimbursement/workReimbursementFormDetail";
+		}else if (workProjectNotify.getRemarks().contains("待审批") && !"1".equals(workProjectNotify.getStatus())) {
+			model.addAttribute("identification","workreimbursement");
+			model.addAttribute("identificationName","报销审核意见");
+			return "modules/workreimbursement/specific/workReimbursementSpecificAudit";
+		} else if (workProjectNotify.getRemarks().contains("重新申请") && !"1".equals(workProjectNotify.getStatus())) {
+			User user=UserUtils.getUser();
+			model.addAttribute("user", user);
+			return "modules/workreimbursement/specific/workReimbursementSpecificModifyApply";
+		} else {
+			return "modules/workreimbursement/workReimbursementFormDetail";
+		}
+	}
+
 
 }

+ 547 - 0
src/main/java/com/jeeplus/modules/workreimbursement/service/WorkReimbursementNewService.java

@@ -586,6 +586,151 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
     }
 
 
+    /**
+     * 四部报销保存方法
+     * @param workReimbursement
+     * @param variables
+     */
+    @Transactional(readOnly = false)
+    public String specificInvoiceReimbursementSave(WorkReimbursement workReimbursement,Map<String, Object> variables,String processInstanceId) {
+        User user = UserUtils.getUser();
+        if (StringUtils.isBlank(workReimbursement.getNumber())) {
+            synchronized (SYN_BYTE) {
+                workReimbursement.setNumber(serialNumTplService.genSerialNum(user.getCompany(), WorkReimbursement.SERIAL_BIZCODE));
+            }
+        }
+        super.save(workReimbursement);
+        String str = "";
+        Office office = officeService.get(workReimbursement.getOfficeId());
+
+        str = "报销【" + workReimbursement.getNumber() + "】申请待审批,经办人:" + user.getName()+",总金额:"+workReimbursement.getMoney();
+        String title = "报销【" + workReimbursement.getNumber() + "】申请待审批";
+        updateWorkReimbursementInfo(workReimbursement);
+        // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
+        identityService.setAuthenticatedUserId(user.getId());
+        // 启动流程
+        String businessKey = workReimbursement.getId().toString();
+        WorkActivityMenu workActivityMenu = workActivityMenuService.findByParentAndOffice("ggh3125f1f194c82bdea93555c750906", office);
+        // 启动流程
+        String processType = workActivityMenu.getProcessType();
+        StringBuffer buffer = new StringBuffer();
+        Activity activity = new Activity();
+        WorkProjectNotify workProjectNotify = UtilNotify
+                .saveNotify(workReimbursement.getId(),
+                        null,
+                        workReimbursement.getCompanyId(),
+                        title,
+                        str,
+                        "107",
+                        "0",
+                        "待审批",
+                        ""
+                );
+        List<User> users = new ArrayList<>();
+        //部门主任
+        List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"8",workReimbursement.getCreateBy());
+        //财务员工
+        List<User> fpglys = UserUtils.getByRoleActivityEnname("dzfpbxshybxsd",3,office.getId(),"5",workReimbursement.getCreateBy());
+        if (StringUtils.isNotBlank(workActivityMenu.getId())) {
+            workProjectNotify.setNotifyRole("");
+            workActivityMenu = workActivityMenuService.get(workActivityMenu.getId());
+            List<Activity> activities = workActivityMenu.getActivities();
+            for (Activity a : activities) {
+                String encount = a.getEncount();
+                String enlist = a.getEnlist();
+                if (a.getRole()!=null && StringUtils.isNotBlank(a.getRole().getEnname())){
+                    List enusers = UserUtils.getByRoleActivityEnnames(a.getRole().getEnname(),office.getId(),"8",workReimbursement.getCreateBy());
+                    if (enusers.size()==0){
+                        workReimbursement.setStatus("1");
+                        super.save(workReimbursement);
+                        return "流程审批人不能为空,角色"+a.getRole().getName()+"下无用户,请联系管理员!";
+                    }
+                    variables.put(enlist, enusers);
+                    variables.put(encount, enusers.size());
+                }
+                if (a.getDelFlag().equals("0") && a.getCount() == 1) {
+                    activity = a;
+                }
+            }
+            buffer.append(activity.getRole().getEnname());
+            if (activity != null && StringUtils.isNotBlank(activity.getId())) {
+                //角色审批
+                if (StringUtils.isNotBlank(activity.getRole().getEnname())) {
+                    users = UserUtils.getByRoleActivityEnnames(activity.getRole().getEnname(),office.getId(),"8",workReimbursement.getCreateBy());
+                }
+                //人员审批
+                if (StringUtils.isNotBlank(activity.getUser().getId())) {
+                    users.add(activity.getUser());
+                }
+            }
+            workProjectNotify.setId("");
+        } else {
+            if (bmzrs.size()==0 ){
+                workReimbursement.setStatus("1");
+                super.save(workReimbursement);
+            }
+            if (bmzrs.size()==0){
+                return "流程审批人不能为空,角色部门负责人下无用户,请联系管理员!";
+            }
+            variables.put("bmzrcount",bmzrs.size());
+            variables.put("bmzrList",bmzrs);
+            processType = "specificInvoiceReimbursement";
+            users.addAll(bmzrs);
+        }
+        for (User u : users){
+            workProjectNotify.setUser(u);
+            workProjectNotify.setId("");
+            workProjectNotify.setNotifyRole("部门负责人审批");
+            workProjectNotifyService.save(workProjectNotify);
+            Map<String,Object> extras = new HashMap<>();
+            extras.put("type","7002");
+            extras.put("id",workProjectNotify.getId());
+            extras.put("procDefKey","107");
+            UserUtils.pushInfoToApp(title,str,extras,u.getId());
+            UserUtils.pushIm(u.getId(),str);
+        }
+        variables.put("type", processType);
+        variables.put("busId", businessKey);
+        variables.put("title", "审批单:" + workReimbursement.getNumber());//设置标题;
+
+        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
+        workReimbursement.setProcessInstance(processInstance);
+        if (StringUtils.isNotBlank(processInstanceId)) {
+            workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
+            workActivityProcessService.deleteProcessInstanceId(processInstanceId);
+            workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
+        }
+        // 更新流程实例ID
+        workReimbursement.setProcessInstanceId(processInstance.getId());
+        workReimbursementDao.updateProcessInstanceId(workReimbursement);
+        //通知添加流程实例ID
+        workProjectNotify.setProcessInstanceId(processInstance.getId());
+        workProjectNotifyService.save(workProjectNotify);
+        List<Activity> list = workActivityMenu.getActivities();
+        if (list != null && list.size() != 0) {
+            workActivityProcessService.saveList(list, processInstance.getId());
+        } else {
+            WorkActivityProcess workActivityProcess = new WorkActivityProcess();
+            workActivityProcess.setProcessKey("specificInvoiceReimbursement");
+            workActivityProcess.setCount(1);
+            workActivityProcess.setProcessInstanceId(processInstance.getId());
+            workActivityProcess.setIsApproval("0");
+            workActivityProcessService.save(workActivityProcess);
+            workActivityProcess.setCount(2);
+            workActivityProcess.setId("");
+            workActivityProcessService.save(workActivityProcess);
+            workActivityProcessService.insertAuditsByType(bmzrs,processInstance.getId(),1,1);
+            workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
+        }
+        logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
+                ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
+        return "";
+    }
+
+
+
+
+
     @Transactional(readOnly = false)
     public void updateWorkReimbursementInfo(WorkReimbursement workReimbursement) {
             for (WorkAccount workAccount : workReimbursement.getWorkAccountList()) {
@@ -1644,4 +1789,406 @@ public class WorkReimbursementNewService extends CrudService<WorkReimbursementDa
         workReimbursementDao.update(workReimbursement);
         return "保存审核意见成功!";
     }
+
+    /**
+     * 审核流程(电子发票报销)
+     * @param workReimbursement
+     */
+    @Transactional(readOnly = false)
+    public String auditSpecificSave(WorkReimbursement workReimbursement,List<User> auditUsers) {
+        String str = "";
+        String userName = UserUtils.get(workReimbursement.getCreateBy().getId()).getName();
+        Office office = officeService.get(workReimbursement.getOfficeId());
+        String title = "报销人:"+userName;
+        if (workReimbursement.getProject()!= null && StringUtils.isNotBlank(workReimbursement.getProject().getId())){
+            str =  "报销申请编号:"+workReimbursement.getNumber()+",报销项目:"+workReimbursement.getProject().getProjectName()+",报销费用合计:"+workReimbursement.getMoney()+",报销人:"+userName+",所属部门:"+office.getName();
+        }else {
+            str =  "报销申请编号:"+workReimbursement.getNumber()+",非项目报销,报销费用合计:"+workReimbursement.getMoney()+",报销人:"+userName+",所属部门:"+office.getName();
+        }
+        // 对不同环节的业务逻辑进行操作
+        String taskDefKey = workReimbursement.getAct().getTaskDefKey();
+        if (!"modifyApply".equals(taskDefKey) && !taskDefKey.contains("audit") && !taskDefKey.contains("cw") ) {
+            actTaskService.claim(workReimbursement.getAct().getTaskId(), UserUtils.getUser().getId());
+        }else if(taskDefKey.contains("cw")) {
+            //updateWorkReimbursementInfo(workReimbursement);
+        }else{
+            workReimbursement.getAct().setFlag("yes");
+            if("modifyApply".equals(taskDefKey)) {
+                updateWorkReimbursementInfo(workReimbursement);
+            }
+        }
+        String comment = "";
+        if (workReimbursement.getStatus().equals("4")){
+            comment = ("yes".equals(workReimbursement.getAct().getFlag())?"[重新申请] ":"[已撤销] ");
+        }else {
+            comment = ("yes".equals(workReimbursement.getAct().getFlag())?"[同意] ":"[驳回] ")+workReimbursement.getAct().getComment();
+        }
+        //yes 的时候状态为审核通过 否则为未通过
+        //1 审核中 2 未通过
+        workReimbursement.setStatus(("yes".equals(workReimbursement.getAct().getFlag()) ? "2" : "4"));
+        Map<String, Object> vars = Maps.newHashMap();
+        //业务逻辑对应的条件表达式
+        String exp = "";
+        String taskCount = "";
+        String notifyRole = "";
+        int key = 0;
+        String enname = "";
+        List<Activity> activitieList = activityService.getByProcessInstanceId(workReimbursement.getProcessInstanceId());
+        WorkActivityMenu workActivityMenu = new WorkActivityMenu();
+        if (activitieList != null && activitieList.size() != 0) {
+            Iterator<Activity> iterator = activitieList.iterator();
+            while (iterator.hasNext()){
+                Activity activityInfo = iterator.next();
+                if (!"specificInvoiceReimbursement".equals(activityInfo.getProcessKey())){
+                    iterator.remove();
+                }
+            }
+            workActivityMenu.setProcessType(activitieList.get(0).getProcessKey());
+            workActivityMenu.setActivities(activitieList);
+        }
+
+        WorkActivityProcess workActivityProcess = new WorkActivityProcess();
+        WorkActivityProcess selectProcess = new WorkActivityProcess();
+        selectProcess.setProcessInstanceId(workReimbursement.getProcessInstanceId());
+        List<WorkActivityProcess> workActivityProcesses = workActivityProcessService.findList(selectProcess);
+        List<Activity> activities = workActivityMenu.getActivities();
+        if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("specificInvoiceReimbursement")) {
+            key = 1;
+            for (int i = 0; i < workActivityProcesses.size(); i++) {
+                WorkActivityProcess activityProcess = workActivityProcesses.get(i);
+                if (taskDefKey.equals(activityProcess.getActivityTask()) && !taskDefKey.equals("modifyApply")) {
+                    taskCount = activityProcess.getCount()+"";
+                    workActivityProcess = activityProcess;
+                    if (!workActivityProcess.getIsApproval().equals("0")) {
+                        workActivityProcess.setId("");
+                    }
+                    exp = "pass";
+                    if (!"yes".equals(workReimbursement.getAct().getFlag())) {
+                        workReimbursement.setStatus("4");
+                        workActivityProcess.setIsApproval("2");
+                        String returnBack = "-1";
+                        for (Activity activity : activities) {
+                            if (activity.getCount() == activityProcess.getCount()) {
+                                returnBack = activity.getReturnBack();
+                                notifyRole = activity.getName();
+                                break;
+                            }
+                        }
+                        if (returnBack.equals("0")) {
+                            workActivityProcess.setId("");
+                        }
+
+                    } else {
+                        workActivityProcess.setIsApproval("1");
+                    }
+                }else if(taskDefKey.equals("modifyApply")){
+                    notifyRole = "调整报销";
+                    taskCount = "0";
+                    exp = "pass";
+                    workActivityProcess.setId("");
+                    workActivityProcess.setCount(0);
+                    if (!"yes".equals(workReimbursement.getAct().getFlag())) {
+                        workReimbursement.setStatus("3");
+                        workActivityProcess.setIsApproval("2");
+                    } else {
+                        workActivityProcess.setIsApproval("1");
+                    }
+                    break;
+                }
+            }
+        } else {
+            workActivityMenu.setProcessType("specificInvoiceReimbursement");
+            for (int i = 0; i < workActivityProcesses.size(); i++) {
+                WorkActivityProcess activityProcess = workActivityProcesses.get(i);
+                String count = activityProcess.getCount() + "";
+                workActivityProcess = activityProcess;
+                if (!workActivityProcess.getIsApproval().equals("0")) {
+                    workActivityProcess.setId("");
+                }
+                // 审核环节
+                if ("bmzr".equals(taskDefKey) && count.contains("1")) {
+                    taskCount = "1";
+                    exp = "pass";
+                    if ("yes".equals(workReimbursement.getAct().getFlag())) {
+                        workActivityProcessService.insertAuditsByType(auditUsers,workReimbursement.getProcessInstanceId(),2,1);
+                        notifyRole = "财务员工审核";
+                        workActivityProcess.setIsApproval("1");
+                        enname = "fpglys";
+                        vars.put("fpglysList", auditUsers);
+                        vars.put("fpglyscount",auditUsers.size());
+                    } else {
+                        notifyRole = "调整报销";
+                        workActivityProcess.setIsApproval("2");
+                    }
+                    break;
+                } else if (("fpglys".equals(taskDefKey) || "dzfpbxshybxsd".equals(taskDefKey)) && count.contains("2")) {
+                    taskCount = "2";
+                    exp = "pass";
+                    if ("yes".equals(workReimbursement.getAct().getFlag())) {
+                        notifyRole = "审批通过";
+                        workActivityProcess.setIsApproval("1");
+                    } else {
+                        notifyRole = "调整报销";
+                        workActivityProcess.setIsApproval("2");
+                    }
+                    break;
+                } else if ("modifyApply".equals(taskDefKey)&& count.contains("0")) {
+                    taskCount = "0";
+                    notifyRole = "部门负责人审批";
+                    exp = "pass";
+                    workActivityProcess.setCount(0);
+                    enname = "bmzr";
+                    if (!"yes".equals(workReimbursement.getAct().getFlag())) {
+                        workReimbursement.setStatus("3");
+                    }
+                    break;
+                } else if ("apply_end".equals(taskDefKey)) {
+                }
+
+            }
+        }
+        // 设置意见
+        workReimbursement.getAct().setComment(("yes".equals(workReimbursement.getAct().getFlag()) ? "[同意] " : "[驳回] ") + workReimbursement.getAct().getComment());
+        workReimbursement.preUpdate();
+        // 提交流程任务
+        vars.put(exp, "yes".equals(workReimbursement.getAct().getFlag()) ? true : false);
+        vars.put("passs", true);
+        workActivityProcessService.updateProcess(workActivityProcess,workActivityMenu,key,taskCount,workReimbursement.getProcessInstanceId(),taskDefKey,"modifyApply",workReimbursement.getAct().getFlag(),comment, activities);
+        // 提交流程任务
+        actTaskService.complete(workReimbursement.getAct().getTaskId(), workReimbursement.getAct().getProcInsId(), workReimbursement.getAct().getComment(), vars);
+        workReimbursement.setLimitCond("1");
+        boolean state = actTaskService.isProcessEnd(workReimbursement.getAct().getProcInsId());
+        List<User> users = new ArrayList<>();
+        List<User> userList = new ArrayList<>();
+        if (!state) {
+            title =  "报销【" + workReimbursement.getNumber() + "】申请通过";
+            str = "报销【" + workReimbursement.getNumber() + "】申请通过,经办人:" + userName+",总金额:"+workReimbursement.getMoney();
+            users.add(workReimbursement.getCreateBy());
+            if ("yes".equals(workReimbursement.getAct().getFlag())) {
+
+                Set<String> set = new HashSet();
+                //添加经办人人员id
+                set.add(workReimbursement.getCreateBy().getId());
+                //判断是否含有有效的报销信息
+                if(null != workReimbursement.getWorkAccountList()) {
+                    //添加报销人人员id
+                    for (WorkAccount account : workReimbursement.getWorkAccountList()) {
+                        set.add(account.getReimbursementUserId());
+                    }
+                }
+                //获取通知需要的经办人和报销人人员信息
+                List<User> informUser = Lists.newArrayList();
+                for (String userId: set) {
+                    informUser.add(UserUtils.get(userId));
+                }
+
+                workReimbursement.setStatus("5");
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(workReimbursement.getId());
+                userList = workProjectNotifyService.readByNotifyId(notify);
+                //遍历需要通知的人员信息 进行通知(经办人和报销人员)
+                for (User user: informUser) {
+                    workProjectNotifyService
+                            .save(UtilNotify
+                                    .saveNotify(workReimbursement.getId(),
+                                            user,
+                                            workReimbursement.getCompanyId(),
+                                            title,
+                                            str,
+                                            "107",
+                                            "0",
+                                            "待通知",
+                                            notifyRole));
+                }
+
+                //修改还款
+                if(workReimbursement.getReimbursementBackList()!=null&&workReimbursement.getReimbursementBackList().size()>0){
+                    for(WorkReimbursementBack workReimbursementBack:workReimbursement.getReimbursementBackList()){
+                        if(StringUtils.isNotBlank(workReimbursementBack.getMoney())||!"0".equals(workReimbursementBack.getMoney())){
+                            WorkLoan loan=new WorkLoan();
+                            double backMoney=Double.parseDouble(workReimbursementBack.getMoney());//本次还款
+                            WorkLoan workLoan =workLoanDao.get(workReimbursementBack.getWorkLoan().getId());
+                            loan.setId(workLoan.getId());
+                            loan.setUpdateBy(UserUtils.getUser());
+                            loan.setUpdateDate(new Date());
+                            if(workLoan.getRepay()==null){
+                                workLoan.setRepay("0");
+                            }
+                            double repay=Double.parseDouble(workLoan.getRepay());//还款金额
+                            double money=Double.parseDouble(workLoan.getMoney());//借款金额
+                            if(!"1".equals(workLoan.getRepayState())){//未还款
+                                if((backMoney+repay)>=money){
+                                    loan.setRepay(String.valueOf(money));
+                                    loan.setRepayState("1");
+
+                                }else{
+                                    loan.setRepay(String.valueOf(repay+backMoney));
+                                    loan.setRepayState("2");
+
+                                }
+                                workLoanDao.updateReay(loan);
+                                workRepayDao.updateReay(workReimbursementBack.getWorkLoan().getId(),workReimbursement.getId());
+                            }
+                        }
+                    }
+                }
+
+            } else {
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(workReimbursement.getId());
+                userList = workProjectNotifyService.readByNotifyId(notify);
+                if (StringUtils.isNotBlank(workReimbursement.getStatus()) && !workReimbursement.getStatus().equals("3")){
+                    workReimbursement.setStatus("4");
+                    workProjectNotifyService
+                            .save(UtilNotify
+                                    .saveNotify(workReimbursement.getId(),
+                                            workReimbursement.getCreateBy(),
+                                            workReimbursement.getCompanyId(),
+                                            title,
+                                            str,
+                                            "107",
+                                            "0",
+                                            "待通知",
+                                            notifyRole));
+                }
+            }
+            workActivityProcessService.deleteProcessIdAuditUsers(workReimbursement.getProcessInstanceId());
+        } else {
+            if (StringUtils.isNotBlank(workActivityMenu.getProcessType()) && !workActivityMenu.getProcessType().equals("specificInvoiceReimbursement")) {
+                WorkProjectNotify notify = new WorkProjectNotify();
+                notify.setNotifyId(workReimbursement.getId());
+                userList = workProjectNotifyService.readByNotifyId(notify);
+                //users.addAll(userList);
+                WorkProjectNotify workProjectNotify = UtilNotify
+                        .saveNotify(workReimbursement.getId(),
+                                new User(),
+                                workReimbursement.getCompanyId(),
+                                title,
+                                str,
+                                "107",
+                                "0",
+                                "待审批",
+                                notifyRole);
+                List<WorkProjectNotify> workProjectNotifys = activityService.getByFlagAndTaskDefKeyList(
+                        activities,
+                        workProjectNotify,
+                        taskDefKey,
+                        workReimbursement.getAct().getFlag(),
+                        taskCount,
+                        workReimbursement.getCreateBy(),
+                        workReimbursement.getOfficeId(),
+                        "8");
+                for (WorkProjectNotify workProjectNotify1:workProjectNotifys){
+                    users.add(workProjectNotify1.getUser());
+                    workProjectNotify1.setId("");
+                    workProjectNotify1.setIsNewRecord(false);
+                    workProjectNotifyService
+                            .save(workProjectNotify1);
+                    if (!"modifyApply".equals(taskDefKey)){
+                        Map<String,Object> extras = new HashMap<>();
+                        if ("cw".equals(taskDefKey) || "cn".equals(taskDefKey) ){
+                            extras.put("type","7001");
+                        }else {
+                            extras.put("type","7002");
+                        }
+                        extras.put("id",workProjectNotify.getId());
+                        extras.put("procDefKey","106");
+                        UserUtils.pushInfoToApp(title,str,extras,workProjectNotify1.getUser().getId());
+
+                    }
+                }
+
+            } else {
+                if (!"yes".equals(workReimbursement.getAct().getFlag())) {//驳回待办
+                    title =  "报销【" + workReimbursement.getNumber() + "】申请被驳回";
+                    str = "报销【" + workReimbursement.getNumber() + "】申请被驳回,请选择重新申请或作废";
+                    WorkProjectNotify notify = new WorkProjectNotify();
+                    notify.setNotifyId(workReimbursement.getId());
+                    userList = workProjectNotifyService.readByNotifyId(notify);
+                    //users.addAll(userList);
+                    workProjectNotifyService
+                            .save(UtilNotify
+                                    .saveNotify(workReimbursement.getId(),
+                                            workReimbursement.getCreateBy(),
+                                            workReimbursement.getCompanyId(),
+                                            title,
+                                            str,
+                                            "107",
+                                            "0",
+                                            "重新申请",
+                                            notifyRole));
+                    users.add( workReimbursement.getCreateBy());
+                } else {
+                    if (StringUtils.isNotBlank(enname)) {//驳回重新申请待办
+                        title =  "报销【" + workReimbursement.getNumber() + "】申请待审批";
+                        str = "报销【" + workReimbursement.getNumber() + "】申请待审批,经办人:" + userName+",总金额:"+workReimbursement.getMoney();
+                        WorkProjectNotify notify = new WorkProjectNotify();
+                        notify.setNotifyId(workReimbursement.getId());
+                        userList = workProjectNotifyService.readByNotifyId(notify);
+                        //users.addAll(userList1);
+                        WorkProjectNotify workProjectNotify = UtilNotify
+                                .saveNotify(workReimbursement.getId(),
+                                        new User(),
+                                        workReimbursement.getCompanyId(),
+                                        title,
+                                        str,
+                                        "107",
+                                        "0",
+                                        "待审批",
+                                        notifyRole);
+                        users.addAll(auditUsers);
+                        for (User user1:auditUsers){
+                            workProjectNotify.setId("");
+                            workProjectNotify.setUser(user1);
+                            workProjectNotify.setIsNewRecord(false);
+                            workProjectNotifyService
+                                    .save(workProjectNotify);
+                            if (!"modifyApply".equals(taskDefKey)){
+                                Map<String,Object> extras = new HashMap<>();
+                                if ("cw".equals(taskDefKey) || "cn".equals(taskDefKey) ){
+                                    extras.put("type","7001");
+                                }else {
+                                    extras.put("type","7002");
+                                }
+                                extras.put("id",workProjectNotify.getId());
+                                extras.put("procDefKey","106");
+                                UserUtils.pushInfoToApp(title,str,extras,user1.getId());
+
+                            }
+                        }
+                    }else {
+                        WorkProjectNotify notify = new WorkProjectNotify();
+                        notify.setNotifyId(workReimbursement.getId());
+                        userList = workProjectNotifyService.readByNotifyId(notify);
+                        users.addAll(userList);
+                        users.add(workReimbursement.getCreateBy());
+                        workProjectNotifyService
+                                .save(UtilNotify
+                                        .saveNotify(workReimbursement.getId(),
+                                                workReimbursement.getCreateBy(),
+                                                workReimbursement.getCompanyId(),
+                                                title,
+                                                str,
+                                                "107",
+                                                "0",
+                                                "重新申请",
+                                                notifyRole));
+                    }
+                }
+            }
+        }
+        if (users!=null && users.size()!=0) {
+            for (User u : users) {
+                UserUtils.pushIm(u.getId(),str);
+            }
+        }
+        if (userList!=null && userList.size()!=0) {
+            for (User u : userList) {
+                UserUtils.pushMeIm(u.getId());
+            }
+        }
+
+        workReimbursementDao.update(workReimbursement);
+        return "保存审核意见成功!";
+    }
 }

+ 33 - 8
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementController.java

@@ -76,6 +76,8 @@ import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import java.io.*;
 import java.net.URLDecoder;
+import java.time.LocalDate;
+import java.time.ZoneId;
 import java.util.*;
 
 /**
@@ -180,6 +182,7 @@ public class WorkReimbursementController extends BaseController {
 		typeList.add("13");
 		typeList.add("102");
 		typeList.add("106");
+		typeList.add("107");
 		String types = org.apache.commons.lang3.StringUtils.join(typeList,',');
 		workProjectNotify.setTypes(types);
 		//添加发票对应编号
@@ -226,6 +229,17 @@ public class WorkReimbursementController extends BaseController {
 					}
 					break;
 				}
+				//报告归档资料缺失说明修改权限处理
+				if(notify.getNotifyId().equals(info.getId()) && "107".equals(notify.getType())){
+					info.setNotifyId(notify.getId());
+					if("重新申请".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(4);
+					}
+					if("待审批".equals(notify.getRemarks()) && !"1".equals(notify.getStatus())){
+						info.setNotifyFlag(3);
+					}
+					break;
+				}
 			}
 		}
 		model.addAttribute("page", page);
@@ -426,20 +440,31 @@ public class WorkReimbursementController extends BaseController {
 			workReimbursement.setCreateOffice(UserUtils.getSelectOffice().getId());
 			String str = "报销类型未选择";
 
-			Date auditDate= new Date("2024-01-20 00:00:00");
+			LocalDate localDate = LocalDate.of(2024, 1, 20);
+
+			Date auditDate = Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+
 			Date nowDate = new Date();
+			// 调用compareTo()方法进行比较
+			int result = nowDate.compareTo(auditDate);
 			//判定当前数据已经在数据库存在并且发起时间是在特定日期之后,并且部门是工程四部
 			User loginUser = UserUtils.getUser();
-			if(StringUtils.isNotBlank(workReimbursement.getId() && workReimbursement.getCreateDate()>auditDate)){
-
+			//如果当前登录人为工程四部,且当前时间在2024-01-20之前
+			if(StringUtils.isNotBlank(workReimbursement.getId()) && result > 0 && null != loginUser.getOffice() && "10de4a17d3484ba58135364bd53b88de".equals(loginUser.getOffice().getId())){
+				str = workReimbursementNewService.specificInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+			}else{
+				if(result > 0 && null != loginUser.getOffice() && "10de4a17d3484ba58135364bd53b88de".equals(loginUser.getOffice().getId())){
+					str = workReimbursementNewService.specificInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+				} else {
+					if("0".equals(workReimbursement.getReimbursementType())){
+						str = workReimbursementService.save(workReimbursement, variables,processInstanceId);
+					}else if("1".equals(workReimbursement.getReimbursementType())){
+						str = workReimbursementNewService.electronicInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
+					}
+				}
 			}
 
 
-			if("0".equals(workReimbursement.getReimbursementType())){
-				str = workReimbursementService.save(workReimbursement, variables,processInstanceId);
-			}else if("1".equals(workReimbursement.getReimbursementType())){
-				str = workReimbursementNewService.electronicInvoiceReimbursementSave(workReimbursement, variables,processInstanceId);
-			}
 			if (StringUtils.isNotBlank(str)){
 				addMessage(redirectAttributes, "报销申请提交失败:"+str);
 			}else {

+ 37 - 4
src/main/java/com/jeeplus/modules/workreimbursement/web/WorkReimbursementNewController.java

@@ -31,6 +31,9 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.mvc.support.RedirectAttributes;
 
 import javax.servlet.http.HttpServletRequest;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
@@ -217,11 +220,29 @@ public class WorkReimbursementNewController extends BaseController {
 			// 对不同环节的业务逻辑进行操作
 			String taskDefKey = workReimbursement.getAct().getTaskDefKey();
 			List<User> users = null;
+
+
+			LocalDate localDate = LocalDate.of(2024, 1, 20);
+
+			Date auditDate = Date.from(localDate.atStartOfDay().atZone(ZoneId.systemDefault()).toInstant());
+
+			Date nowDate = new Date();
+			// 调用compareTo()方法进行比较
+			int result = nowDate.compareTo(auditDate);
+			//判定当前数据已经在数据库存在并且发起时间是在特定日期之后,并且部门是工程四部
+			//如果当前登录人为工程四部,且当前时间在2024-01-20之前
+
 			if ("bmzr".equals(taskDefKey)){
 				users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),2);
 				if (users==null )
 					//users = UserUtils.getByRoleActivityEnname("fgld",2,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
 					users = UserUtils.getByRoleActivityEnname("cwzg", 3, workReimbursement.getOfficeId(), "8", workReimbursement.getCreateBy());
+
+
+				if(StringUtils.isNotBlank(workReimbursement.getId()) && result > 0 && "10de4a17d3484ba58135364bd53b88de".equals(workReimbursement.getOfficeId())){
+					users = UserUtils.getByRoleActivityEnname("dzfpbxshybxsd",3,workReimbursement.getOfficeId(),"8",workReimbursement.getCreateBy());
+
+				}
 			}else  if ("cw".equals(taskDefKey)){
 				users = UserUtils.getByProssType(workReimbursement.getProcessInstanceId(),3);
 				if (users==null )
@@ -259,11 +280,23 @@ public class WorkReimbursementNewController extends BaseController {
 				addMessage(redirectAttributes, "审批失败,审批人为空,请联系管理员!");
 			}else {
 				String str = "";
-				if("0".equals(workReimbursement.getReimbursementType())){
-					str = workReimbursementNewService.auditSave(workReimbursement,users);
-				}else if ("1".equals(workReimbursement.getReimbursementType())){
-					str = workReimbursementNewService.electronicInvoiceReimbursementAuditSave(workReimbursement,users);
+
+
+				if(StringUtils.isNotBlank(workReimbursement.getId()) && result > 0 && "10de4a17d3484ba58135364bd53b88de".equals(workReimbursement.getOfficeId())){
+					str = workReimbursementNewService.auditSpecificSave(workReimbursement,users);
+				}else{
+					if(result > 0 && "10de4a17d3484ba58135364bd53b88de".equals(workReimbursement.getOfficeId())){
+						str = workReimbursementNewService.auditSpecificSave(workReimbursement,users);
+					} else {
+						if("0".equals(workReimbursement.getReimbursementType())){
+							str = workReimbursementNewService.auditSave(workReimbursement,users);
+						}else if ("1".equals(workReimbursement.getReimbursementType())){
+							str = workReimbursementNewService.electronicInvoiceReimbursementAuditSave(workReimbursement,users);
+						}
+					}
 				}
+
+
 				addMessage(redirectAttributes, str);
 			}
 		}catch (Exception e){

+ 822 - 0
src/main/webapp/webpage/modules/workreimbursement/specific/workReimbursementSpecificAudit.jsp

@@ -0,0 +1,822 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ include file="/webpage/include/taglib.jsp"%>
+<html>
+<head>
+	<title>报销审核</title>
+	<meta name="decorator" content="default"/>
+	<script type="text/javascript" src="${ctxStatic}/layui/layui.js"></script>
+	<link rel='stylesheet' type="text/css" href="${ctxStatic}/layui/css/layui.css"/>
+	<script type="text/javascript">
+		var validateForm;
+		function doSubmit(obj){//回调函数,在编辑和保存动作时,供openDialog调用提交表单。
+		  if(validateForm.form()){
+			  var ss= document.getElementById("iframe").contentWindow.document.getElementById("opinion").value
+			  $("#opinion").val(ss);
+		      if(obj == 1){
+                  $('#flag').val('yes');
+              }else{
+                  $('#flag').val('no');
+              }
+			  $("#inputForm").submit();
+			  return true;
+		  }else {
+              parent.layer.msg("信息未填写完整!", {icon: 5});
+          }
+
+		  return false;
+		}
+		$(document).ready(function() {
+			layui.use('form', function () {
+				var form = layui.form;
+				form.render();
+			});
+
+			var reimbursementTypeRadio = '${workReimbursement.reimbursementType}';//后端获取值
+			if(undefined == reimbursementTypeRadio || null == reimbursementTypeRadio || '' == reimbursementTypeRadio || reimbursementTypeRadio == "0"){
+				$(".count2").hide();
+				$(".count1").show();
+			}else{
+				$(".count1").hide();
+				$(".count2").show();
+			}
+
+            if (${workReimbursement.ext == 0}){
+                $(".td1").removeClass("hide");
+                $(".project_reimbursement_div").show();
+                $(".not_project_reimbursement_div").hide();
+            }else {
+                $(".td1").addClass("hide");
+                $(".project_reimbursement_div").hide();
+                $(".not_project_reimbursement_div").show();
+            }
+            if (${workReimbursement.isPublic =='0'}){
+                $(".isPublic").addClass("hide");
+            }else {
+                $(".isPublic").removeClass("hide");
+            }
+			$("#name").focus();
+			validateForm = $("#inputForm").validate({
+				submitHandler: function(form){
+					loading('正在提交,请稍等...');
+					form.submit();
+				},
+				errorContainer: "#messageBox",
+				errorPlacement: function(error, element) {
+					$("#messageBox").text("输入有误,请先更正。");
+					if (element.is(":checkbox")||element.is(":radio")||element.parent().is(".input-append")){
+						error.appendTo(element.parent().parent());
+					} else {
+						error.insertAfter(element);
+					}
+				}
+			});
+		});
+	</script>
+	<style>
+		/*超过5个汉字,调整label的长度,以下是配套的*/
+		.layui-item .layui-form-label{
+			width:90px;
+		}
+		.form-group .layui-item .layui-input-block,
+		.query .layui-input-block {
+			margin-left: 116px;
+		}
+	</style>
+</head>
+<body>
+<div class="single-form">
+	<div class="container view-form">
+	<form:form id="inputForm" modelAttribute="workReimbursement" enctype="multipart/form-data" action="${ctx}/workReimbursementNew/workReimbursementNew/saveAudit" method="post" class="form-horizontal layui-form">
+		<form:hidden path="id"/>
+		<form:hidden path="home"/>
+		<form:hidden path="act.taskId"/>
+		<form:hidden path="act.taskName"/>
+		<form:hidden path="act.taskDefKey"/>
+		<form:hidden path="act.procInsId"/>
+		<form:hidden path="act.procDefId"/>
+		<form:hidden id="flag" path="act.flag"/>
+		<input type="hidden" id="opinion" name="act.comment" value="" maxlength="255">
+		<input type="hidden" id="reimbursementType" name="reimbursementType" value="${workReimbursement.reimbursementType}"/>
+		<div class="form-group layui-row first ">
+			<div class="form-group-label"><h2>基础信息</h2></div>
+
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label"><span class="require-item">*</span>报销项:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" style="background-color: #f1f1f1"  readonly="true" class="form-control layui-input" value = "${workReimbursement.reimbursementTypeStr}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销编号:</label>
+				<div class="layui-input-block">
+					<div class="input-group">
+						<input htmlEscape="false" style="background-color: #f1f1f1" readonly="true"  class="form-control layui-input" value="${workReimbursement.number}"/>
+						<span class="input-group-btn">
+                        <label class="form-status"><c:choose><c:when test="${not empty workReimbursement.status}">${fns:getDictLabel(workReimbursement.status, 'audit_state', '')}</c:when><c:otherwise>新添</c:otherwise></c:choose></label>
+                     </span>
+					</div>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销人:</label>
+				<div class="layui-input-block">
+					<form:input path="submitterName" cssStyle="background-color: #f1f1f1" htmlEscape="false" readonly="true"  id="submitterName"  class="form-control layui-input" value = "${workReimbursement.submitterName}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">所属部门:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" style="background-color: #f1f1f1"  readonly="true" class="form-control layui-input" value = "${workReimbursement.officeName}"/>
+				</div>
+			</div>
+			<%--<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">银行卡号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false" readonly="true"  class="form-control layui-input" value = "${workReimbursement.bankCard}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销类型:</label>
+				<div class="layui-input-block">
+					<input readonly="true" htmlEscape="false" class="form-control layui-input"
+						   value="<c:choose><c:when test="${workReimbursement.ext == 0}">项目报销</c:when><c:otherwise>非项目报销</c:otherwise></c:choose>"/>
+				</div>
+			</div>
+
+			<div class="layui-item layui-col-sm6 td1">
+				<label class="layui-form-label">报销项目:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.project.projectName}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销类别:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.typeName}"/>
+				</div>
+			</div>
+				&lt;%&ndash;<div class="layui-item layui-col-sm6 td1">
+                    <label class="layui-form-label">项目负责人:</label>
+                    <div class="layui-input-block">
+                        <input htmlEscape="false"  readonly="true"  class="form-control layui-input" value="${workReimbursement.projectMasterName}"/>
+                    </div>
+                </div>&ndash;%&gt;
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label double-line">是否对公报销:</label>
+				<div class="layui-input-block">
+					<input readonly="true" htmlEscape="false" class="form-control layui-input"
+						   value="<c:choose><c:when test="${workReimbursement.isPublic == '0'}">否</c:when><c:otherwise>是</c:otherwise></c:choose>"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 isPublic">
+				<label class="layui-form-label">公司名称:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.comname}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 isPublic">
+				<label class="layui-form-label">开户行:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.bank}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 isPublic">
+				<label class="layui-form-label">银行账号:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.bankNo}"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销人:</label>
+				<div class="layui-input-block">
+					<input htmlEscape="false"  readonly="true" class="form-control layui-input" value="${workReimbursement.submitterName}"/>
+				</div>
+			</div>--%>
+
+			<div class="layui-item layui-col-sm6">
+				<label class="layui-form-label">报销日期:</label>
+				<div class="layui-input-block">
+					<input readonly="readonly" style="background-color: #f1f1f1" class="form-control layui-input" value="<fmt:formatDate value="${workReimbursement.submitterDate}" pattern="yyyy-MM-dd"/>"/>
+				</div>
+			</div>
+			<div class="layui-item layui-col-sm6 with-textarea">
+				<label class="layui-form-label ">备注:</label>
+				<div class="layui-input-block">
+					<form:textarea path="remarks" placeholder="请输入备注" htmlEscape="false" rows="4"  maxlength="255" value="${workReimbursement.remarks}"  class="form-control "/>
+				</div>
+			</div>
+		</div>
+		<%--<div class="form-group layui-row">
+			<div class="form-group-label"><h2>借款明细</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container" >
+				<table id="contentTable3" class="table table-bordered table-condensed can-edit no-bottom-margin">
+					<thead>
+					<tr>
+						<th width="190px">借款日期</th>
+						<th width="190px">借款类型</th>
+						<th width="190px">借款项目</th>
+						<th width="190px">借款金额</th>
+						<th width="180px">未还金额</th>
+						<th width="100px">本次还款</th>
+						<th width="120px">借款编号</th>
+					</tr>
+					</thead>
+					<tbody id="reimbursementBackList">
+					<c:if test="${not empty workReimbursement.reimbursementBackList}">
+						<c:forEach items="${workReimbursement.reimbursementBackList}" var="reimbursementBack" varStatus="index">
+							<tr id="reimbursementBackList${index.index}">
+								<td class="hide">
+									<input id="reimbursementBackList${index.index}_id" name="reimbursementBackList[${index.index}].id" type="hidden" value="${reimbursementBack.id}"/>
+									<input id="reimbursementBackList${index.index}_workLoanId" name="reimbursementBackList[${index.index}].workLoan.id" type="hidden" value="${reimbursementBack.workLoan.id}"/>
+									<input id="reimbursementBackList${index.index}_delFlag" name="reimbursementBackList[${index.index}].delFlag" type="hidden" value="0"/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_1"   type="text" maxlength="20"  readonly="true" class=" form-control layui-input"
+										   value="<fmt:formatDate value="${reimbursementBack.workLoan.loanDate}" pattern="yyyy-MM-dd"/>"/>
+									</input>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_2"  readonly="true" type="text" value="${reimbursementBack.workLoan.type}"   class="form-control"/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_3"  readonly="true" type="text" value="${reimbursementBack.workLoan.projectRecords.projectName}"   class="form-control"/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_4"  readonly="true" type="text" value="${reimbursementBack.workLoan.money}"   class="form-control"/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_5"  readonly="true" type="text" value="${reimbursementBack.workLoan.notRepay}"   class="form-control"/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_6" readonly="true"  name="reimbursementBackList[${index.index}].money" type="text" value="${reimbursementBack.money}"   class="form-control number "/>
+								</td>
+								<td>
+									<input id="reimbursementBackList${index.index}_7"  readonly="true" type="text" value="${reimbursementBack.workLoan.num}"   class="form-control"/>
+								</td>
+							</tr>
+						</c:forEach>
+					</c:if>
+					</tbody>
+				</table>
+				<table id="contentMoneys1" class="table table-bordered table-condensed can-edit summary">
+					<tr>
+						<td  style="width:190px;vertical-align:middle;text-align: center;"><label><font color="red">*</font>合计</label></td>
+						<td  width="190px" style="vertical-align:middle;text-align: center;">
+							-
+						</td >
+						<td  width="190px" style="vertical-align:middle;text-align: center;">
+							-
+						</td>
+						<td  width="190px" style="vertical-align:middle;text-align: center;">
+							-
+						</td>
+						<td width="180px" style="vertical-align:middle;text-align: center;">
+							-
+						</td>
+						<td width="100px" style="vertical-align:middle;text-align: center;">
+							<input  id="backmoney" value="${workReimbursement.backmoney}" name="backmoney" htmlEscape="false" readonly="true"   maxlength="12"  class="form-control "/>
+						</td>
+						<td  width="120px" style="vertical-align:middle;text-align: center;">
+							-
+						</td>
+					</tr>
+				</table>
+			</div>
+		</div>--%>
+		<div class="form-group layui-row">
+			<div class="form-group-label"><h2>报销详情</h2></div>
+			<div class="layui-table-body layui-item layui-col-xs12 form-table-container"  style="padding:0px">
+				<table id="contentTable" class="table table-bordered table-condensed can-edit no-bottom-margin details">
+					<thead>
+					<tr>
+						<th width="200px">报销人</th>
+						<th width="200px">报销部门</th>
+						<th width="200px">报销类型</th>
+						<th width="200px">报销项目</th>
+						<th width="200px">报告号</th>
+						<th width="200px">费用(元)</th>
+						<th width="200px">收据张数</th>
+						<th width="200px">出差天数</th>
+						<th width="200px">内容</th>
+					</tr>
+					</thead>
+					<tbody id="workAccountList">
+					<c:if test="${not empty workReimbursement.workAccountList}">
+						<c:forEach items="${workReimbursement.workAccountList}" var="workAccount" varStatus="index">
+							<tr id="workAccountList${index.index}">
+								<td class="hide">
+								</td>
+								<td style="text-align: center; vertical-align: middle">
+										${workAccount.reimbursementName}
+								</td>
+								<td style="text-align: center; vertical-align: middle">
+										${workAccount.officeId}
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.typeName}">
+										${workAccount.typeName}
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.project.projectName}">
+										${workAccount.project.projectName}
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.projectReportNumber}">
+										${workAccount.projectReportNumber}
+								</td>
+
+								<td style="text-align: center; vertical-align: middle">
+									<fmt:formatNumber value="${workAccount.money}" pattern="#,#00.00"/>
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.bills}">
+										${workAccount.bills}
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.evectionNumber}">
+										${workAccount.evectionNumber}
+								</td>
+								<td style="text-align: center; vertical-align: middle" title="${workAccount.remarks}">
+										${workAccount.remarks}
+								</td>
+							</tr>
+						</c:forEach>
+
+					</c:if>
+					</tbody>
+				</table>
+				<table id="contentMoneys" class="table table-bordered table-condensed can-edit no-bottom-margin details">
+					<thead>
+					<tr style="border: 0px">
+						<td width="200px" style="vertical-align:middle;text-align: center;background-color: #ffffff;"><label>总报销费用(元):</label></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="border: 0px;font-weight: bold;text-align: center;background-color: #ffffff;">
+							<fmt:formatNumber value="${workReimbursement.money}" pattern="#,#00.00"/>
+						</td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+						<td width="200px" style="background-color: #ffffff;"></td>
+					</tr>
+					</thead>
+				</table>
+			</div>
+		</div>
+		<div class="form-group layui-row count1">
+			<div class="form-group-label"><h2>专用发票信息</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container" >
+				<table id="contentTable2" class="table table-bordered table-condensed no-bottom-margin details">
+					<thead>
+					<tr>
+						<th width="300px">发票代码</th>
+						<th width="200px">发票号</th>
+						<th width="200px">金额</th>
+						<th width="200px">税额</th>
+						<th width="200px">价税合计</th>
+					</tr>
+					</thead>
+					<tbody id="reimbursementVATTaxes">
+					<c:if test="${not empty workReimbursement.reimbursementVATTaxes}">
+						<c:forEach items="${workReimbursement.reimbursementVATTaxes}" var="reimbursementVATTaxe" varStatus="index">
+							<tr>
+								<td class="hide">
+								</td>
+								<td>
+										${reimbursementVATTaxe.invoiceCode}
+								</td>
+
+								<td>
+										${reimbursementVATTaxe.invoiceNumber}
+								</td>
+								<td>
+										${reimbursementVATTaxe.money}
+								</td>
+								<td>
+										${reimbursementVATTaxe.taxAmount}
+								</td>
+								<td>
+										${reimbursementVATTaxe.sumMoney}
+								</td>
+							</tr>
+						</c:forEach>
+					</c:if>
+					</tbody>
+				</table>
+			</div>
+		</div>
+		<div class="form-group layui-row count2">
+			<div class="form-group-label"><h2>数电发票信息</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container">
+				<table id="contentTable3" class="table table-bordered table-condensed can-edit">
+					<thead>
+					<tr>
+						<th width="200px"><font color="red">*</font>发票类型</th>
+						<th width="200px"><font color="red">*</font>发票项目名</th>
+						<th width="200px"><font color="red">*</font>发票号</th>
+						<th width="200px"><font color="red">*</font>开票日期</th>
+						<th width="200px"><font color="red">*</font>开票单位</th>
+						<th width="200px"><font color="red">*</font>金额</th>
+						<th width="200px"><font color="red">*</font>税额</th>
+						<th width="200px"><font color="red">*</font>价税合计</th>
+						<th width="200px">备注</th>
+					</tr>
+					</thead>
+					<tbody id="reimbursementElectronicInvoiceVATTaxes">
+					<c:if test="${not empty workReimbursement.reimbursementElectronicInvoiceVATTaxes}">
+						<c:forEach items="${workReimbursement.reimbursementElectronicInvoiceVATTaxes}" var="reimbursementElectronicInvoiceVATTaxes" varStatus="index">
+							<tr id="reimbursementElectronicInvoiceVATTaxes${index.index}">
+									<%--发票类型--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_invoiceType" onmouseover="this.title=this.value" readOnly="true" maxlength="30" type="text" value="${reimbursementElectronicInvoiceVATTaxes.invoiceTypeStr}" onmouseover="this.title=this.value"  class="form-control "/>
+								</td>
+									<%--发票项目名--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_invoiceProjectName" onmouseover="this.title=this.value" readOnly="true" maxlength="500"type="text" value="${reimbursementElectronicInvoiceVATTaxes.invoiceProjectName}" placeholder="请输入发票项目名"  class="form-control "/>
+								</td>
+									<%--发票号--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_invoiceNumber" onmouseover="this.title=this.value" readOnly="true" maxlength="30" type="text" value="${reimbursementElectronicInvoiceVATTaxes.invoiceNumber}" onmouseover="this.title=this.value" placeholder="请输入发票号"  class="form-control "/>
+								</td>
+									<%--开票日期--%>
+								<td>
+									<input lay-verify="date" placeholder="yyyy-MM-dd" readonly autocomplete="off" onmouseover="this.title=this.value" readOnly="true" id="reimbursementElectronicInvoiceVATTaxes${index.index}_invoiceDate" type="text" value="${reimbursementElectronicInvoiceVATTaxes.invoiceDateStr}"  onmouseover="this.title=this.value" class="form-control datetime"/>
+								</td>
+									<%--开票单位--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_invoiceUnit" onmouseover="this.title=this.value" readOnly="true" maxlength="30" type="text" value="${reimbursementElectronicInvoiceVATTaxes.invoiceUnit}"  placeholder="请输入开票单位"  onmouseover="this.title=this.value" class="form-control "/>
+								</td>
+									<%--金额--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_money" onmouseover="this.title=this.value" readOnly="true" type="text" maxlength="32" value="${reimbursementElectronicInvoiceVATTaxes.money}"  placeholder="请输入金额"  onmouseover="this.title=this.value" class="form-control "/>
+								</td>
+									<%--税额--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_taxAmount" onmouseover="this.title=this.value" readOnly="true" type="text" maxlength="32" value="${reimbursementElectronicInvoiceVATTaxes.taxAmount}"  placeholder="请输入税额"  onmouseover="this.title=this.value" class="form-control "/>
+								</td>
+									<%--合计价税--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_sumMoney" onmouseover="this.title=this.value" readOnly="true" type="text" maxlength="32" value="${reimbursementElectronicInvoiceVATTaxes.sumMoney}"  onmouseover="this.title=this.value" class="form-control"/>
+								</td>
+									<%--备注--%>
+								<td>
+									<input id="reimbursementElectronicInvoiceVATTaxes${index.index}_remarks" onmouseover="this.title=this.value" readOnly="true" type="text" maxlength="255" value="${reimbursementElectronicInvoiceVATTaxes.remarks}"    class="form-control input"/>
+								</td>
+							</tr>
+						</c:forEach>
+					</c:if>
+					</tbody>
+				</table>
+			</div>
+		</div>
+
+		<div class="form-group layui-row count2">
+			<div class="form-group-label"><h2>数电发票附件信息</h2></div>
+			<div id="addFile_attachment_InvoiceReimbursement" style="display: none" class="upload-progress">
+				<span id="fileName_attachment_InvoiceReimbursement" ></span>
+				<b><span id="baifenbi_attachment_InvoiceReimbursement" ></span></b>
+				<div class="progress">
+					<div id="jindutiao_attachment_InvoiceReimbursement" class="progress-bar" style="width: 0%" aria-valuenow="0">
+					</div>
+				</div>
+			</div>
+			<input id="attachment_InvoiceReimbursement_file" type="file" multiple="multiple" style="display: none;" onChange="if(this.value)insertTitleInvoiceReimbursement(this.value);"/>
+			<span id="attachment_title"></span>
+			<div class="layui-item layui-col-xs12" style="padding:0 16px;">
+				<table id="listAttachment" class="table table-bordered table-condensed details">
+					<thead>
+					<tr>
+							<%-- <th>序号</th>--%>
+						<th>文件预览</th>
+						<th>上传人</th>
+						<th>上传时间</th>
+						<th width="200px">操作</th>
+					</tr>
+					</thead>
+					<tbody id="file_attachment_InvoiceReimbursement">
+					<c:forEach items="${workReimbursement.workAttachmentInvoiceReimbursements}" var = "workClientAttachment" varStatus="status">
+						<tr>
+
+								<%-- <td>${status.index + 1}</td>--%>
+							<c:choose>
+								<c:when test="${workReimbursement.uploadMode == 2}">
+									<c:choose>
+										<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+											<td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+										</c:when>
+										<c:otherwise>
+											<c:choose>
+												<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+													<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+												</c:when>
+												<c:otherwise>
+													<c:choose>
+														<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+															<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+														</c:when>
+														<c:otherwise>
+															<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+														</c:otherwise>
+													</c:choose>
+												</c:otherwise>
+											</c:choose>
+										</c:otherwise>
+									</c:choose>
+								</c:when>
+								<c:otherwise>
+									<c:choose>
+										<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                           or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+											<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+										</c:when>
+										<c:otherwise>
+											<c:choose>
+												<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+													<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+												</c:when>
+												<c:otherwise>
+													<c:choose>
+														<c:when test="${workReimbursement.uploadMode == 2}">
+															<c:choose>
+																<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+																	<td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+																</c:when>
+																<c:otherwise>
+																	<c:choose>
+																		<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+																			<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+																		</c:when>
+																		<c:otherwise>
+																			<c:choose>
+																				<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+																					<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+																				</c:when>
+																				<c:otherwise>
+																					<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+																				</c:otherwise>
+																			</c:choose>
+																		</c:otherwise>
+																	</c:choose>
+																</c:otherwise>
+															</c:choose>
+														</c:when>
+														<c:otherwise>
+															<c:choose>
+																<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+                                                   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+																	<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+																</c:when>
+																<c:otherwise>
+																	<c:choose>
+																		<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+																			<td><a href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+																		</c:when>
+																		<c:otherwise>
+																			<c:choose>
+																				<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+																					<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+																				</c:when>
+																				<c:otherwise>
+																					<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+																				</c:otherwise>
+																			</c:choose>
+																		</c:otherwise>
+																	</c:choose>
+																</c:otherwise>
+															</c:choose>
+														</c:otherwise>
+													</c:choose>
+												</c:otherwise>
+											</c:choose>
+										</c:otherwise>
+									</c:choose>
+								</c:otherwise>
+							</c:choose>
+
+							<td>${workClientAttachment.createBy.name}</td>
+							<td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
+							<td class="op-td">
+								<div class="op-btn-box" >
+										<%--附件下载删除--%>
+									<c:choose>
+										<c:when test="${workReimbursement.uploadMode == 2}">
+											<c:choose>
+												<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+													<a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+												</c:when>
+												<c:otherwise>
+													<c:choose>
+														<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'xml')}">
+															<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+														</c:when>
+														<c:otherwise>
+															<a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+														</c:otherwise>
+													</c:choose>
+												</c:otherwise>
+											</c:choose>
+										</c:when>
+										<c:otherwise>
+											<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+										</c:otherwise>
+									</c:choose>
+									<c:if test="${workClientAttachment.collectFlag != 1}">
+										<a href="javascript:void(0)" onclick="collectingAccessory(this,'${ctx}/projectAccessory/projectAccessory/saveCollectAccessory','${workClientAttachment.url}','${workClientAttachment.createBy.id}','${workClientAttachment.fileSize}')" class="op-btn op-btn-delete" style="background-color: #FFB800"><i class="layui-icon layui-icon-rate"></i>&nbsp;收藏</a>
+									</c:if>
+
+								</div>
+							</td>
+						</tr>
+					</c:forEach>
+					</tbody>
+				</table>
+			</div>
+		</div>
+
+		<div class="form-group layui-row">
+			<div class="form-group-label"><h2>附件</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container" >
+				<table id="upTable" class="table table-bordered table-condensed details">
+					<thead>
+					<tr>
+							<%-- <th>序号</th>--%>
+						<th>文件预览</th>
+						<th>上传人</th>
+						<th>上传时间</th>
+						<th width="150px">操作</th>
+					</tr>
+					</thead>
+					<tbody id="file_attachment">
+						<c:forEach items="${workReimbursement.workAttachments}" var = "workClientAttachment" varStatus="status">
+							<tr>
+									<%-- <td>${status.index + 1}</td>--%>
+								<c:choose>
+									<c:when test="${workReimbursement.uploadMode == 2}">
+										<c:choose>
+											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+												<td><img src="${workClientAttachment.temporaryUrl}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.temporaryUrl}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+											</c:when>
+											<c:otherwise>
+												<c:choose>
+													<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+														<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',1)">${workClientAttachment.attachmentName}</a></td>
+													</c:when>
+													<c:otherwise>
+														<c:choose>
+															<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+																<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',3)">${workClientAttachment.attachmentName}</a></td>
+															</c:when>
+															<c:otherwise>
+																<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.temporaryUrl}',2)">${workClientAttachment.attachmentName}</a></td>
+															</c:otherwise>
+														</c:choose>
+													</c:otherwise>
+												</c:choose>
+											</c:otherwise>
+										</c:choose>
+									</c:when>
+									<c:otherwise>
+										<c:choose>
+											<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpg')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'png')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'gif')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'bmp')
+														   or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jpeg')}">
+												<td><img src="${workClientAttachment.url}" width="50" height="50" onclick="openDialogView('预览','${ctx}/sys/picturepreview/picturePreview?url=${workClientAttachment.url}','90%','90%')" alt="${workClientAttachment.attachmentName}">
+											</c:when>
+											<c:otherwise>
+												<c:choose>
+													<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+														<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',1)">${workClientAttachment.attachmentName}</a></td>
+													</c:when>
+													<c:otherwise>
+														<c:choose>
+															<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'rar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'zip')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'jar')
+                                                       or fn:containsIgnoreCase(workClientAttachment.attachmentName,'7z')}">
+																<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',3)">${workClientAttachment.attachmentName}</a></td>
+															</c:when>
+															<c:otherwise>
+																<td><a class="attention-info" href="javascript:void(0)" onclick="openPreview('${workClientAttachment.url}',2)">${workClientAttachment.attachmentName}</a></td>
+															</c:otherwise>
+														</c:choose>
+													</c:otherwise>
+												</c:choose>
+											</c:otherwise>
+										</c:choose>
+									</c:otherwise>
+								</c:choose>
+
+								<td>${workClientAttachment.createBy.name}</td>
+								<td><fmt:formatDate value="${workClientAttachment.createDate}" type="both"/></td>
+								<td class="op-td">
+									<div class="op-btn-box" >
+											<%--附件下载删除--%>
+										<c:choose>
+											<c:when test="${workReimbursement.uploadMode == 2}">
+												<c:choose>
+													<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'pdf')}">
+														<a href="${workClientAttachment.temporaryUrl}" target="_blank" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+													</c:when>
+													<c:otherwise>
+														<c:choose>
+															<c:when test="${fn:containsIgnoreCase(workClientAttachment.attachmentName,'xml')}">
+																<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+															</c:when>
+															<c:otherwise>
+																<a href="${workClientAttachment.temporaryUrl}" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+															</c:otherwise>
+														</c:choose>
+													</c:otherwise>
+												</c:choose>
+											</c:when>
+											<c:otherwise>
+												<a href="javascript:location.href='${ctx}/workfullmanage/workFullManage/downLoadAttach?file='+encodeURIComponent('${workClientAttachment.url}');" class="op-btn op-btn-download"><i class="fa fa-download"></i>&nbsp;下载</a>
+											</c:otherwise>
+										</c:choose>
+										<c:if test="${workClientAttachment.collectFlag != 1}">
+											<a href="javascript:void(0)" onclick="collectingAccessory(this,'${ctx}/projectAccessory/projectAccessory/saveCollectAccessory','${workClientAttachment.url}','${workClientAttachment.createBy.id}','${workClientAttachment.fileSize}')" class="op-btn op-btn-delete"  style="background-color: #FFB800"><i class="layui-icon layui-icon-rate"></i>&nbsp;收藏</a>
+										</c:if>
+									</div>
+								</td>
+							</tr>
+						</c:forEach>
+					</tbody>
+				</table>
+			</div>
+		</div>
+		<div class="form-group layui-row page-end"></div>
+	</form:form>
+		<div class="form-group-label">
+			<div style="float: right"> <a href="javascript:void(0)" style='background-color: #FFB800' onclick="openDialogre('个人模板列表', '${ctx}/auditTemplate/auditTemplate/templateList?identification=${identification}&name=${identificationName}','80%', '70%','','关闭')" class="nav-btn layui-btn layui-btn-sm" ><i class="fa fa-file-excel-o"></i> 审核意见模板列表</a></div>
+			<h2>审批意见</h2>
+		</div>
+		<iframe id="iframe" src="${ctx}/auditTemplate/auditTemplate/iframeView?identification=${identification}" name="listresult" frameborder="0" align="left" width="100%" height="300" scrolling="value"></iframe>
+		<div class="form-group layui-row">
+			<div class="form-group-label"><h2>${projectNotifyType}审批流程</h2></div>
+			<div class="layui-item layui-col-xs12 form-table-container" >
+				<act:flowChart procInsId="${workReimbursement.act.procInsId}"/>
+				<act:histoicFlow procInsId="${workReimbursement.act.procInsId}"/>
+			</div>
+		</div>
+</div>
+</div>
+<script>
+	function f1(row) {
+		// window.parent.document.getElementById('opinion').value = row;
+		$("#opinion").val(row)
+	}
+	function openDialogre(title,url,width,height,target,buttons) {
+		if (navigator.userAgent.match(/(iPhone|iPod|Android|ios)/i)) {//如果是移动端,就使用自适应大小弹窗
+			width = 'auto';
+			height = 'auto';
+		} else {//如果是PC端,根据用户设置的width和height显示。
+		}
+		var split = buttons.split(",");
+		top.layer.open({
+			type: 2,
+			area: [width, height],
+			title: title,
+			maxmin: true, //开启最大化最小化按钮
+			skin: 'three-btns',
+			content: url,
+			btn: split,
+			btn1: function(index, layero){
+				top.layer.close(index)
+				document.getElementById('iframe').contentWindow.location.reload();
+			}
+		});
+	}
+
+</script>
+</body>
+</html>
+

File diff suppressed because it is too large
+ 1815 - 0
src/main/webapp/webpage/modules/workreimbursement/specific/workReimbursementSpecificModifyApply.jsp