|
@@ -16,6 +16,8 @@ import com.jeeplus.modules.act.utils.ActUtils;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectPlanInfo;
|
|
|
import com.jeeplus.modules.projectrecord.entity.ProjectRecords;
|
|
|
import com.jeeplus.modules.projectrecord.service.ProjectRecordsService;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.entity.RuralProjectRecords;
|
|
|
+import com.jeeplus.modules.ruralprojectrecords.service.RuralProjectRecordsService;
|
|
|
import com.jeeplus.modules.serialnum.service.SerialNumTplService;
|
|
|
import com.jeeplus.modules.sys.entity.Office;
|
|
|
import com.jeeplus.modules.sys.entity.Role;
|
|
@@ -32,9 +34,12 @@ 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.WorkClientInfo;
|
|
|
+import com.jeeplus.modules.workclientinfo.entity.WorkClientLinkman;
|
|
|
+import com.jeeplus.modules.workcontractinfo.entity.WorkContractInfo;
|
|
|
import com.jeeplus.modules.workinvoice.dao.WorkInvoiceDao;
|
|
|
import com.jeeplus.modules.workinvoice.dao.WorkInvoiceReceiptDao;
|
|
|
import com.jeeplus.modules.workinvoice.entity.WorkInvoice;
|
|
|
+import com.jeeplus.modules.workinvoice.entity.WorkInvoiceProjectRelation;
|
|
|
import com.jeeplus.modules.workinvoice.entity.WorkInvoiceReceipt;
|
|
|
import com.jeeplus.modules.workinvoicedetail.dao.WorkInvoiceDetailDao;
|
|
|
import com.jeeplus.modules.workinvoicedetail.entity.WorkInvoiceDetail;
|
|
@@ -104,6 +109,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
protected SerialNumTplService serialNumTplService;
|
|
|
@Autowired
|
|
|
protected WorkProjectNotifyService workProjectNotifyService;
|
|
|
+ @Autowired
|
|
|
+ private RuralProjectRecordsService ruralProjectRecordsService;
|
|
|
|
|
|
private static byte[] SYN_BYTE = new byte[0];
|
|
|
|
|
@@ -135,6 +142,23 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
workInvoice.setWorkAccountList(list);
|
|
|
}
|
|
|
}
|
|
|
+ //根据开票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) {
|
|
|
+ ruralProjectRecordsService.queryLinkmanInfos(records1);
|
|
|
+ if (records1.getWorkClientLinkmanList() != null && records1.getWorkClientLinkmanList().size() > 0) {
|
|
|
+ WorkClientLinkman linkman = records1.getWorkClientLinkmanList().get(0);
|
|
|
+ projectRelation.setClientName(linkman.getClientId().getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ workInvoice.setWorkInvoiceProjectRelationList(projectRelationList);
|
|
|
}
|
|
|
return workInvoice;
|
|
|
}
|
|
@@ -162,6 +186,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
public void save(WorkInvoice workInvoice){
|
|
|
super.save(workInvoice);
|
|
|
updateWorkInvoiceInfo(workInvoice);
|
|
|
+ //处理项目和开票信息数据
|
|
|
+ updateWorkInvoiceProjectRelationInfo(workInvoice);
|
|
|
}
|
|
|
|
|
|
@Transactional(readOnly = false)
|
|
@@ -193,6 +219,42 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 处理项目和开票信息数据
|
|
|
+ * @param workInvoice
|
|
|
+ */
|
|
|
+ @Transactional(readOnly = false)
|
|
|
+ public void updateWorkInvoiceProjectRelationInfo(WorkInvoice workInvoice) {
|
|
|
+ //根据开票id删除所有开票项目 关联信息
|
|
|
+ dao.deleteProjectRelation(workInvoice.getId());
|
|
|
+ for (WorkInvoiceProjectRelation projectRelation : workInvoice.getWorkInvoiceProjectRelationList()){
|
|
|
+ if (StringUtils.isBlank(projectRelation.getProjectId())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //新增开票和项目关联信息
|
|
|
+ dao.insertProjectRelation(projectRelation);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取关联项目名称list
|
|
|
+ * @param workInvoice
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public List<String> getProjectNameList(WorkInvoice workInvoice){
|
|
|
+ //项目名称获取
|
|
|
+ List<String> projectNameList = Lists.newArrayList();
|
|
|
+ for (WorkInvoiceProjectRelation projectRelation : workInvoice.getWorkInvoiceProjectRelationList()) {
|
|
|
+ if(StringUtils.isNotBlank(projectRelation.getProjectId())){
|
|
|
+ ProjectRecords projectRecords = projectRecordsService.getRuralMasters(projectRelation.getProjectId());
|
|
|
+ if(null != projectRecords){
|
|
|
+ projectNameList.add(projectRecords.getProjectName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return projectNameList;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 提交存储
|
|
|
* @param workInvoice
|
|
|
* @param variables
|
|
@@ -215,6 +277,7 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
str = "发票申请编号:"+workInvoice.getNumber()+",实际开票单位:"+workInvoice.getClient().getName()+",创建人:"+userName+",所属部门:"+office.getName();
|
|
|
String title = "实际开票单位:"+workInvoice.getClient().getName();
|
|
|
long s4=System.currentTimeMillis();
|
|
|
+ //处理发票明细
|
|
|
updateWorkInvoiceInfo(workInvoice);
|
|
|
long s5=System.currentTimeMillis();
|
|
|
// 用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
|
|
@@ -413,12 +476,18 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
//所属部门
|
|
|
|
|
|
String userName = UserUtils.get(workInvoice.getCreateBy().getId()).getName();
|
|
|
+ //项目名称获取
|
|
|
+ List<String> projectNameList = getProjectNameList(workInvoice);
|
|
|
+ String projectNameStr = String.join(",", projectNameList);
|
|
|
ProjectRecords projectRecords = projectRecordsService.getRuralMasters(workInvoice.getProject().getId());
|
|
|
- String title = "项目【"+ projectRecords.getProjectName() +"】发票申请待审批";
|
|
|
- str = "项目【"+ projectRecords.getProjectName() +"】发票申请待审批,发票申请编号:"+workInvoice.getNumber();
|
|
|
+ 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());
|
|
@@ -973,6 +1042,9 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
workActivityMenu.setActivities(activitieList);
|
|
|
}
|
|
|
|
|
|
+ //项目名称获取
|
|
|
+ List<String> projectNameList = getProjectNameList(workInvoice);
|
|
|
+ String projectNameStr = String.join(",", projectNameList);
|
|
|
WorkActivityProcess workActivityProcess = new WorkActivityProcess();
|
|
|
WorkActivityProcess selectProcess = new WorkActivityProcess();
|
|
|
selectProcess.setProcessInstanceId(workInvoice.getProcessInstanceId());
|
|
@@ -1092,8 +1164,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
if (!state) {
|
|
|
users.add(workInvoice.getCreateBy());
|
|
|
if ("yes".equals(workInvoice.getAct().getFlag())) {
|
|
|
- title = "项目【"+ projectRecords.getProjectName() +"】发票申请通过";
|
|
|
- str = "项目【"+ projectRecords.getProjectName() +"】发票申请通过,发票申请编号:"+workInvoice.getNumber();
|
|
|
+ title = "项目【"+ projectNameStr +"】发票申请通过";
|
|
|
+ str = "项目【"+ projectNameStr +"】发票申请通过,发票申请编号:"+workInvoice.getNumber();
|
|
|
workInvoice.setInvoiceState("5");
|
|
|
WorkProjectNotify notify = new WorkProjectNotify();
|
|
|
notify.setNotifyId(workInvoice.getId());
|
|
@@ -1176,8 +1248,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
|
|
|
} else {
|
|
|
if (!"yes".equals(workInvoice.getAct().getFlag())) {//驳回待办提醒
|
|
|
- title = "项目【"+ projectRecords.getProjectName() +"】发票申请被驳回";
|
|
|
- str = "项目【"+ projectRecords.getProjectName() +"】发票申请被驳回,请选择重新申请或作废";
|
|
|
+ title = "项目【"+ projectNameStr +"】发票申请被驳回";
|
|
|
+ str = "项目【"+ projectNameStr +"】发票申请被驳回,请选择重新申请或作废";
|
|
|
WorkProjectNotify notify = new WorkProjectNotify();
|
|
|
notify.setNotifyId(workInvoice.getId());
|
|
|
userList = workProjectNotifyService.readByNotifyId(notify);
|
|
@@ -1195,8 +1267,8 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
users.add( workInvoice.getCreateBy());
|
|
|
} else {
|
|
|
if (StringUtils.isNotBlank(enname)) {//驳回重新申请待办
|
|
|
- title = "项目【"+ projectRecords.getProjectName() +"】发票重新申请,待审批";
|
|
|
- str = "项目【"+ projectRecords.getProjectName() +"】发票重新申请,待审批,发票申请编号:"+workInvoice.getNumber();;
|
|
|
+ title = "项目【"+ projectNameStr +"】发票重新申请,待审批";
|
|
|
+ str = "项目【"+ projectNameStr +"】发票重新申请,待审批,发票申请编号:"+workInvoice.getNumber();;
|
|
|
WorkProjectNotify notify = new WorkProjectNotify();
|
|
|
notify.setNotifyId(workInvoice.getId());
|
|
|
userList = workProjectNotifyService.readByNotifyId(notify);
|
|
@@ -1971,4 +2043,4 @@ public class WorkInvoiceService extends CrudService<WorkInvoiceDao, WorkInvoice>
|
|
|
public void cancellationDelete(WorkInvoice workInvoice) {
|
|
|
dao.cancellationDelete(workInvoice);
|
|
|
}
|
|
|
-}
|
|
|
+}
|