|
@@ -3,6 +3,7 @@
|
|
|
*/
|
|
|
package com.jeeplus.modules.workinvoice.service;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import com.google.common.collect.Maps;
|
|
|
import com.jeeplus.common.persistence.Page;
|
|
|
import com.jeeplus.common.service.CrudService;
|
|
@@ -19,7 +20,9 @@ import com.jeeplus.modules.serialnum.service.SerialNumTplService;
|
|
|
import com.jeeplus.modules.sys.entity.Office;
|
|
|
import com.jeeplus.modules.sys.entity.Role;
|
|
|
import com.jeeplus.modules.sys.entity.User;
|
|
|
+import com.jeeplus.modules.sys.entity.Workattachment;
|
|
|
import com.jeeplus.modules.sys.service.OfficeService;
|
|
|
+import com.jeeplus.modules.sys.service.WorkattachmentService;
|
|
|
import com.jeeplus.modules.sys.utils.UserUtils;
|
|
|
import com.jeeplus.modules.workactivity.dao.WorkActivityProcessDao;
|
|
|
import com.jeeplus.modules.workactivity.entity.Activity;
|
|
@@ -29,6 +32,7 @@ import com.jeeplus.modules.workactivity.service.WorkActivityProcessService;
|
|
|
import com.jeeplus.modules.workactivitymenu.entity.WorkActivityMenu;
|
|
|
import com.jeeplus.modules.workactivitymenu.service.WorkActivityMenuService;
|
|
|
import com.jeeplus.modules.workbidproject.entity.WorkBidProject;
|
|
|
+import com.jeeplus.modules.workclientinfo.entity.WorkClientAttachment;
|
|
|
import com.jeeplus.modules.workclientinfo.entity.WorkClientInfo;
|
|
|
import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
|
|
|
import com.jeeplus.modules.workinvoice.dao.WorkInvoiceDao;
|
|
@@ -107,6 +111,8 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
|
|
|
protected WorkProjectNotifyService workProjectNotifyService;
|
|
|
@Autowired
|
|
|
private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
+ @Autowired
|
|
|
+ private WorkattachmentService workattachmentService;
|
|
|
|
|
|
private static byte[] SYN_BYTE = new byte[0];
|
|
|
|
|
@@ -141,20 +147,34 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
|
|
|
//根据开票id查询关联项目
|
|
|
List<WorkInvoiceProjectRelation> projectRelationList = dao.getProjectRelation(workInvoice.getId());
|
|
|
for (WorkInvoiceProjectRelation projectRelation: projectRelationList) {
|
|
|
- if(StringUtils.isBlank(projectRelation.getClientName())){
|
|
|
- //无合同查找委托方信息
|
|
|
- RuralProjectRecords records1 = ruralProjectRecordsService.get(projectRelation.getProjectId());
|
|
|
- //无合同状态下,获取委托方的名称
|
|
|
- if (records1.getWorkContractInfo() == null || null == records1.getWorkContractInfo().getClient() ||StringUtils.isBlank(records1.getWorkContractInfo().getClient().getName())){
|
|
|
- ruralProjectRecordsService.queryLinkmanInfos(records1);
|
|
|
- if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
|
- WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
|
|
|
- projectRelation.setClientName(linkman.getClientId().getName());
|
|
|
+ if (null==projectRelation.getIsProject() || projectRelation.getIsProject()==1){
|
|
|
+ if(StringUtils.isBlank(projectRelation.getClientName())){
|
|
|
+ //无合同查找委托方信息
|
|
|
+ RuralProjectRecords records1 = ruralProjectRecordsService.get(projectRelation.getProjectId());
|
|
|
+ //无合同状态下,获取委托方的名称
|
|
|
+ if (records1.getWorkContractInfo() == null || null == records1.getWorkContractInfo().getClient() ||StringUtils.isBlank(records1.getWorkContractInfo().getClient().getName())){
|
|
|
+ ruralProjectRecordsService.queryLinkmanInfos(records1);
|
|
|
+ if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
|
+ WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
|
|
|
+ projectRelation.setClientName(linkman.getClientId().getName());
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ }else if(projectRelation.getIsProject()==2){
|
|
|
+ projectRelation.setProjectName("内容");
|
|
|
+ projectRelation.setWorkContractName(projectRelation.getDetails());
|
|
|
}
|
|
|
}
|
|
|
workInvoice.setWorkInvoiceProjectRelationList(projectRelationList);
|
|
|
+ //查找发票的附件信息
|
|
|
+ if(null != workInvoice){
|
|
|
+ List<Workattachment> attachmentList = workattachmentService.getListByAttachmentIdAndFlag(id, "115");
|
|
|
+ workInvoice.setWorkAttachments(attachmentList);
|
|
|
+ //添加当前文件服务器类型
|
|
|
+ workInvoice.setUploadMode(uploadMode);
|
|
|
+ //数据处理(如果为阿里云文件服务器,则对查看的路径进行处理)
|
|
|
+ workattachmentService.attachmentManageOnUrl(workInvoice.getWorkAttachments());
|
|
|
+ }
|
|
|
}
|
|
|
return workInvoice;
|
|
|
}
|
|
@@ -442,148 +462,156 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
|
|
|
Office office = officeService.get(officeId);
|
|
|
workInvoice.setOffice(office);
|
|
|
long s2=System.currentTimeMillis();
|
|
|
- super.save(workInvoice);
|
|
|
+ super.save(workInvoice);
|
|
|
+ //保存附件
|
|
|
+ this.saveAttachments(workInvoice);
|
|
|
long s3=System.currentTimeMillis();
|
|
|
String str = "";
|
|
|
//所属部门
|
|
|
|
|
|
String userName = UserUtils.get(workInvoice.getCreateBy().getId()).getName();
|
|
|
- ProjectRecords projectRecords = projectRecordsService.getRuralMasters(workInvoice.getProject().getId());
|
|
|
- String title = "项目【"+ projectRecords.getProjectName() +"】发票申请待审批";
|
|
|
- str = "项目【"+ projectRecords.getProjectName() +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
|
|
|
+ //项目名称获取
|
|
|
+ List<String> projectNameList = getProjectNameList(workInvoice);
|
|
|
+ String projectNameStr = String.join(",", projectNameList);
|
|
|
+ //ProjectRecords projectRecords = projectRecordsService.getRuralMasters(workInvoice.getProject().getId());
|
|
|
+ String title = "项目【"+ projectNameStr +"】发票申请待审批";
|
|
|
+ str = "项目【"+ projectNameStr +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
|
|
|
|
|
|
long s4=System.currentTimeMillis();
|
|
|
- updateWorkInvoiceInfo(workInvoice);
|
|
|
+ //开票明细处理
|
|
|
+ updateWorkInvoiceInfo(workInvoice);
|
|
|
+ //开票与项目关系处理
|
|
|
+ updateWorkInvoiceProjectRelationInfo(workInvoice);
|
|
|
long s5=System.currentTimeMillis();
|
|
|
- // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
|
|
|
- identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
|
|
|
- // 启动流程
|
|
|
- String businessKey = workInvoice.getId().toString();
|
|
|
- WorkActivityMenu workActivityMenu = workActivityMenuService.findByParentAndOffice("ggh3125f1f194c82bdea00005c750905",officeService.get(workInvoice.getOfficeId()));
|
|
|
- // 启动流程
|
|
|
- String processType = workActivityMenu.getProcessType();
|
|
|
- StringBuffer buffer = new StringBuffer();
|
|
|
- Activity activity = new Activity();
|
|
|
- WorkProjectNotify workProjectNotify = UtilNotify
|
|
|
- .saveNotify(workInvoice.getId(),
|
|
|
- null,
|
|
|
- workInvoice.getCompanyId(),
|
|
|
- title,
|
|
|
- str,
|
|
|
- "21",
|
|
|
- "0",
|
|
|
- "待审批",
|
|
|
- ""
|
|
|
- );
|
|
|
+ // 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
|
|
|
+ identityService.setAuthenticatedUserId(UserUtils.getUser().getId());
|
|
|
+ // 启动流程
|
|
|
+ String businessKey = workInvoice.getId().toString();
|
|
|
+ WorkActivityMenu workActivityMenu = workActivityMenuService.findByParentAndOffice("ggh3125f1f194c82bdea00005c750905",officeService.get(workInvoice.getOfficeId()));
|
|
|
+ // 启动流程
|
|
|
+ String processType = workActivityMenu.getProcessType();
|
|
|
+ StringBuffer buffer = new StringBuffer();
|
|
|
+ Activity activity = new Activity();
|
|
|
+ WorkProjectNotify workProjectNotify = UtilNotify
|
|
|
+ .saveNotify(workInvoice.getId(),
|
|
|
+ null,
|
|
|
+ workInvoice.getCompanyId(),
|
|
|
+ title,
|
|
|
+ str,
|
|
|
+ "21",
|
|
|
+ "0",
|
|
|
+ "待审批",
|
|
|
+ ""
|
|
|
+ );
|
|
|
long s6=System.currentTimeMillis();
|
|
|
- List<User> users = new ArrayList<>();
|
|
|
- //List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
|
|
|
- //List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
|
|
|
+ List<User> users = new ArrayList<>();
|
|
|
+ //List<User> bmzrs = UserUtils.getByRoleActivityEnname("bmzr",2,office.getId(),"5",workInvoice.getCreateBy());
|
|
|
+ //List<User> fpglys = UserUtils.getByRoleActivityEnname("fpgly",3,office.getId(),"5",workInvoice.getCreateBy());
|
|
|
//财务员工
|
|
|
List<User> fpglys = UserUtils.getByRoleActivityEnname("cwygevod",3,office.getId(),"5",workInvoice.getCreateBy());
|
|
|
long s7=System.currentTimeMillis();
|
|
|
- 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(),"5",workInvoice.getCreateBy());
|
|
|
- if (enusers.size()==0){
|
|
|
- workInvoice.setInvoiceState("1");//暂存
|
|
|
- this.save(workInvoice);
|
|
|
- return "流程审批人不能为空,角色"+a.getRole().getName()+"下无用户,请联系管理员!";
|
|
|
- }
|
|
|
- variables.put(enlist, enusers);
|
|
|
- variables.put(encount, enusers.size());
|
|
|
- }
|
|
|
- if (a.getDelFlag().equals("0") && a.getCount() == 1) {
|
|
|
- activity = a;
|
|
|
+ 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(),"5",workInvoice.getCreateBy());
|
|
|
+ if (enusers.size()==0){
|
|
|
+ workInvoice.setInvoiceState("1");//暂存
|
|
|
+ this.save(workInvoice);
|
|
|
+ return "流程审批人不能为空,角色"+a.getRole().getName()+"下无用户,请联系管理员!";
|
|
|
}
|
|
|
+ variables.put(enlist, enusers);
|
|
|
+ variables.put(encount, enusers.size());
|
|
|
}
|
|
|
- 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(),"5",workInvoice.getCreateBy());
|
|
|
- }
|
|
|
- //人员审批
|
|
|
- if (StringUtils.isNotBlank(activity.getUser().getId())) {
|
|
|
- users.add(activity.getUser());
|
|
|
- }
|
|
|
+ if (a.getDelFlag().equals("0") && a.getCount() == 1) {
|
|
|
+ activity = a;
|
|
|
}
|
|
|
- workProjectNotify.setId("");
|
|
|
- } else {
|
|
|
- //variables.put("fpglyList", fpglys);
|
|
|
- if (fpglys.size()==0 ){
|
|
|
- workInvoice.setInvoiceState("1");//暂存
|
|
|
- this.save(workInvoice);
|
|
|
+ }
|
|
|
+ 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(),"5",workInvoice.getCreateBy());
|
|
|
}
|
|
|
- if (fpglys.size()==0){
|
|
|
- return "流程审批人不能为空,财务部门下无用户,请联系管理员!";
|
|
|
+ //人员审批
|
|
|
+ if (StringUtils.isNotBlank(activity.getUser().getId())) {
|
|
|
+ users.add(activity.getUser());
|
|
|
}
|
|
|
- //variables.put("fpglycount",fpglys.size());
|
|
|
- variables.put("fpglycount",fpglys.size());
|
|
|
- variables.put("fpglyList",fpglys);
|
|
|
- processType = "newWorkInvoiceBranch";
|
|
|
- users.addAll(fpglys);
|
|
|
}
|
|
|
- for (User user : users){
|
|
|
- workProjectNotify.setUser(user);
|
|
|
- workProjectNotify.setId("");
|
|
|
- workProjectNotifyService
|
|
|
- .save(workProjectNotify);
|
|
|
- Map<String,Object> extras = new HashMap<>();
|
|
|
- extras.put("type","7002");
|
|
|
- extras.put("id",workProjectNotify.getId());
|
|
|
- extras.put("procDefKey","21");
|
|
|
- UserUtils.pushInfoToApp(title,str,extras,user.getId());
|
|
|
- UserUtils.pushIm(user.getId(),str);
|
|
|
+ workProjectNotify.setId("");
|
|
|
+ } else {
|
|
|
+ //variables.put("fpglyList", fpglys);
|
|
|
+ if (fpglys.size()==0 ){
|
|
|
+ workInvoice.setInvoiceState("1");//暂存
|
|
|
+ this.save(workInvoice);
|
|
|
}
|
|
|
- variables.put("type", processType);
|
|
|
- variables.put("busId", businessKey);
|
|
|
- variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
|
|
|
+ if (fpglys.size()==0){
|
|
|
+ return "流程审批人不能为空,财务部门下无用户,请联系管理员!";
|
|
|
+ }
|
|
|
+ //variables.put("fpglycount",fpglys.size());
|
|
|
+ variables.put("fpglycount",fpglys.size());
|
|
|
+ variables.put("fpglyList",fpglys);
|
|
|
+ processType = "newWorkInvoiceBranch";
|
|
|
+ users.addAll(fpglys);
|
|
|
+ }
|
|
|
+ for (User user : users){
|
|
|
+ workProjectNotify.setUser(user);
|
|
|
+ workProjectNotify.setId("");
|
|
|
+ workProjectNotifyService
|
|
|
+ .save(workProjectNotify);
|
|
|
+ Map<String,Object> extras = new HashMap<>();
|
|
|
+ extras.put("type","7002");
|
|
|
+ extras.put("id",workProjectNotify.getId());
|
|
|
+ extras.put("procDefKey","21");
|
|
|
+ UserUtils.pushInfoToApp(title,str,extras,user.getId());
|
|
|
+ UserUtils.pushIm(user.getId(),str);
|
|
|
+ }
|
|
|
+ variables.put("type", processType);
|
|
|
+ variables.put("busId", businessKey);
|
|
|
+ variables.put("title", "发票申请编号:" + workInvoice.getNumber());//设置标题;
|
|
|
long s8=System.currentTimeMillis();
|
|
|
- ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
|
|
|
- workInvoice.setProcessInstance(processInstance);
|
|
|
+ ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processType, businessKey, variables);
|
|
|
+ workInvoice.setProcessInstance(processInstance);
|
|
|
long s9=System.currentTimeMillis();
|
|
|
- if (StringUtils.isNotBlank(processInstanceId)) {
|
|
|
- workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
|
|
|
- workActivityProcessService.deleteProcessInstanceId(processInstanceId);
|
|
|
- workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
|
|
|
- }
|
|
|
+ if (StringUtils.isNotBlank(processInstanceId)) {
|
|
|
+ workActivityProcessService.updateProcessInstanceId(processInstance.getId(),processInstanceId);
|
|
|
+ workActivityProcessService.deleteProcessInstanceId(processInstanceId);
|
|
|
+ workActivityProcessService.deleteProcessIdAuditUsers(processInstanceId);
|
|
|
+ }
|
|
|
long s10=System.currentTimeMillis();
|
|
|
- // 更新流程实例ID
|
|
|
- workInvoice.setProcessInstanceId(processInstance.getId());
|
|
|
- workInvoiceDao.updateProcessInstanceId(workInvoice);
|
|
|
+ // 更新流程实例ID
|
|
|
+ workInvoice.setProcessInstanceId(processInstance.getId());
|
|
|
+ workInvoiceDao.updateProcessInstanceId(workInvoice);
|
|
|
//通知添加流程实例ID
|
|
|
workProjectNotify.setProcessInstanceId(processInstance.getId());
|
|
|
workProjectNotifyService.save(workProjectNotify);
|
|
|
- List<Activity> list = workActivityMenu.getActivities();
|
|
|
+ List<Activity> list = workActivityMenu.getActivities();
|
|
|
long s11=System.currentTimeMillis();
|
|
|
- if (list != null && list.size() != 0) {
|
|
|
- workActivityProcessService.saveList(list, processInstance.getId());
|
|
|
- } else {
|
|
|
- WorkActivityProcess workActivityProcess = new WorkActivityProcess();
|
|
|
- workActivityProcess.setProcessKey("newWorkInvoiceBranch");
|
|
|
- workActivityProcess.setCount(1);
|
|
|
- workActivityProcess.setProcessInstanceId(processInstance.getId());
|
|
|
- workActivityProcess.setIsApproval("0");
|
|
|
- workActivityProcessService.save(workActivityProcess);
|
|
|
+ if (list != null && list.size() != 0) {
|
|
|
+ workActivityProcessService.saveList(list, processInstance.getId());
|
|
|
+ } else {
|
|
|
+ WorkActivityProcess workActivityProcess = new WorkActivityProcess();
|
|
|
+ workActivityProcess.setProcessKey("newWorkInvoiceBranch");
|
|
|
+ workActivityProcess.setCount(1);
|
|
|
+ workActivityProcess.setProcessInstanceId(processInstance.getId());
|
|
|
+ workActivityProcess.setIsApproval("0");
|
|
|
+ workActivityProcessService.save(workActivityProcess);
|
|
|
/*workActivityProcess.setCount(2);
|
|
|
workActivityProcess.setId("");
|
|
|
workActivityProcessService.save(workActivityProcess);*/
|
|
|
- workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),1,1);
|
|
|
- //workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
|
|
|
- }
|
|
|
+ workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),1,1);
|
|
|
+ //workActivityProcessService.insertAuditsByType(fpglys,processInstance.getId(),2,0);
|
|
|
+ }
|
|
|
long s12=System.currentTimeMillis();
|
|
|
logger.info("发票送审-------生成发票编号:"+(s2-s1)+" 保存发票信息:"+(s3-s2)+" 保存发票明细数据:"+(s5-s4)
|
|
|
+" 查询角色人员:"+(s7-s6)+" 流程启动:"+(s9-s8)+" workActivityProcessService.updateProcessInstanceId:"+(s10-s9)
|
|
|
+" 查询角色人员:"+(s12-s11)+" 总时间:"+(s12-s1));
|
|
|
- logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
|
|
|
- ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
|
|
|
+ logger.debug("start process of {key={}, bkey={}, pid={}, variables={}}", new Object[]{
|
|
|
+ ActUtils.PD_REIMBURSEMENT[0], businessKey, processInstance.getId(), variables});
|
|
|
return "";
|
|
|
}
|
|
|
@Transactional(readOnly = false)
|
|
@@ -611,7 +639,65 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
|
|
|
workInvoiceDetailDao.delete(workAccount);
|
|
|
}*/
|
|
|
}
|
|
|
+ /**
|
|
|
+ * 获取关联项目名称list
|
|
|
+ * @param workInvoice
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<String> getProjectNameList(WorkInvoice workInvoice){
|
|
|
+ //项目名称获取
|
|
|
+ List<String> projectNameList = Lists.newArrayList();
|
|
|
+ if(null != workInvoice.getWorkInvoiceProjectRelationList()){
|
|
|
+ for (WorkInvoiceProjectRelation projectRelation : workInvoice.getWorkInvoiceProjectRelationList()) {
|
|
|
+ //处理开票是非项目还是项目开票
|
|
|
+ if(null==projectRelation.getIsProject() || 1==projectRelation.getIsProject()){
|
|
|
+ if (WorkInvoiceReceipt.DEL_FLAG_NORMAL.equals(projectRelation.getDelFlag())) {
|
|
|
+ if (StringUtils.isNotBlank(projectRelation.getProjectId())) {
|
|
|
+ ProjectRecords projectRecords = projectRecordsService.getRuralMasters(projectRelation.getProjectId());
|
|
|
+ if (null != projectRecords) {
|
|
|
+ projectNameList.add(projectRecords.getProjectName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else if(projectRelation.getIsProject()==2){
|
|
|
+ if(projectNameList.contains("非项目发票")){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ projectNameList.add("非项目发票");
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return projectNameList;
|
|
|
+ }
|
|
|
+ /**
|
|
|
+ * 处理项目和开票信息数据
|
|
|
+ * @param workInvoice
|
|
|
+ */
|
|
|
+ @Transactional(readOnly = false)
|
|
|
+ public void updateWorkInvoiceProjectRelationInfo(WorkInvoice workInvoice) {
|
|
|
+ //根据开票id删除所有开票项目 关联信息
|
|
|
+ dao.deleteProjectRelation(workInvoice.getId());
|
|
|
+ if (null!=workInvoice.getWorkInvoiceProjectRelationList()){
|
|
|
+ for (WorkInvoiceProjectRelation projectRelation : workInvoice.getWorkInvoiceProjectRelationList()){
|
|
|
+ if (StringUtils.isBlank(projectRelation.getProjectId())){
|
|
|
+ if(projectRelation.getProjectName().equals("内容")){
|
|
|
+ projectRelation.setIsProject(2);
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ projectRelation.setIsProject(1);
|
|
|
+ }
|
|
|
+ projectRelation.setInvoiceId(workInvoice.getId());
|
|
|
+ //新增开票和项目关联信息
|
|
|
+ if (WorkInvoiceReceipt.DEL_FLAG_NORMAL.equals(projectRelation.getDelFlag())) {
|
|
|
+ dao.insertProjectRelation(projectRelation);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
public Page<WorkClientInfo> findPageByclient(Page<WorkClientInfo> page, WorkClientInfo client) {
|
|
|
client.setPage(page);
|
|
|
page.setList(dao.findListByclient(client));
|
|
@@ -2010,4 +2096,45 @@ public class WorkInvoiceAllService extends CrudService<WorkInvoiceDao, WorkInvoi
|
|
|
public void cancellationDelete(WorkInvoice workInvoice) {
|
|
|
dao.cancellationDelete(workInvoice);
|
|
|
}
|
|
|
+
|
|
|
+ @Transactional(readOnly = false)
|
|
|
+ public void saveAttachments(WorkInvoice workInvoice) {
|
|
|
+ List<Workattachment> workattachments = workInvoice.getWorkAttachments();
|
|
|
+ if (workattachments!=null && workattachments.size()!=0) {
|
|
|
+ for (Workattachment workattachment : workattachments) {
|
|
|
+ if (workattachment.getId() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if (workattachment.DEL_FLAG_NORMAL.equals(workattachment.getDelFlag())) {
|
|
|
+ workattachment.setAttachmentId(workInvoice.getId());
|
|
|
+ workattachment.setAttachmentFlag("115");
|
|
|
+ workattachment.setAttachmentUser(UserUtils.getUser().getId());
|
|
|
+ if (StringUtils.isBlank(workattachment.getId()) || "null".equals(workattachment.getId())) {
|
|
|
+ workattachmentService.insertOnWorkAttachment(workattachment);
|
|
|
+ } else {
|
|
|
+ workattachmentService.updateOnWorkAttachment(workattachment);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ workattachmentService.delete(workattachment);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public void queryDetails(WorkInvoice workInvoice) {
|
|
|
+ if(workInvoice==null)return;
|
|
|
+ WorkClientAttachment attchment = new WorkClientAttachment();
|
|
|
+ attchment.setAttachmentId(workInvoice.getId());
|
|
|
+ attchment.setAttachmentFlag("115");
|
|
|
+ List<WorkClientAttachment> attachments = workattachmentService.getAttachmentList(attchment);
|
|
|
+ for (WorkClientAttachment clientAttachment:attachments){
|
|
|
+ if (clientAttachment.getCollectFlag().equals("1")){
|
|
|
+ for (Workattachment workattachment:workInvoice.getWorkAttachments()){
|
|
|
+ if (clientAttachment.getId().equals(workattachment.getId())){
|
|
|
+ workattachment.setCollectFlag("1");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|