|
@@ -1,7 +1,10 @@
|
|
|
package com.goafanti.organization.service.impl;
|
|
package com.goafanti.organization.service.impl;
|
|
|
|
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
|
|
+import java.io.OutputStream;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
import java.util.HashMap;
|
|
@@ -10,13 +13,19 @@ import java.util.Map;
|
|
|
import java.util.UUID;
|
|
import java.util.UUID;
|
|
|
|
|
|
|
|
import javax.mail.MessagingException;
|
|
import javax.mail.MessagingException;
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFCell;
|
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFRow;
|
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFSheet;
|
|
|
|
|
+import org.apache.poi.xssf.usermodel.XSSFWorkbook;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
import com.goafanti.admin.bo.AdminListBo;
|
|
import com.goafanti.admin.bo.AdminListBo;
|
|
|
import com.goafanti.common.bo.EmailBo;
|
|
import com.goafanti.common.bo.EmailBo;
|
|
|
|
|
+import com.goafanti.common.bo.Error;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.dao.AdminMapper;
|
|
import com.goafanti.common.dao.AdminMapper;
|
|
|
import com.goafanti.common.dao.CompanyLibraryMapper;
|
|
import com.goafanti.common.dao.CompanyLibraryMapper;
|
|
@@ -32,6 +41,7 @@ import com.goafanti.common.dao.TOrderPaymentMapper;
|
|
|
import com.goafanti.common.dao.TOrderTaskMapper;
|
|
import com.goafanti.common.dao.TOrderTaskMapper;
|
|
|
import com.goafanti.common.dao.ThirdPartyCompanyMapper;
|
|
import com.goafanti.common.dao.ThirdPartyCompanyMapper;
|
|
|
import com.goafanti.common.enums.NoticeStatus;
|
|
import com.goafanti.common.enums.NoticeStatus;
|
|
|
|
|
+import com.goafanti.common.error.BusinessException;
|
|
|
import com.goafanti.common.model.CompanyLibrary;
|
|
import com.goafanti.common.model.CompanyLibrary;
|
|
|
import com.goafanti.common.model.Notice;
|
|
import com.goafanti.common.model.Notice;
|
|
|
import com.goafanti.common.model.OfficialFeePrice;
|
|
import com.goafanti.common.model.OfficialFeePrice;
|
|
@@ -43,13 +53,16 @@ import com.goafanti.common.model.TOrderPayment;
|
|
|
import com.goafanti.common.model.TOrderTask;
|
|
import com.goafanti.common.model.TOrderTask;
|
|
|
import com.goafanti.common.model.ThirdPartyCompany;
|
|
import com.goafanti.common.model.ThirdPartyCompany;
|
|
|
import com.goafanti.common.utils.DateUtils;
|
|
import com.goafanti.common.utils.DateUtils;
|
|
|
|
|
+import com.goafanti.common.utils.ExportExcelUtil;
|
|
|
import com.goafanti.common.utils.SendEmailUtil;
|
|
import com.goafanti.common.utils.SendEmailUtil;
|
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
import com.goafanti.core.mybatis.BaseMybatisDao;
|
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
import com.goafanti.core.mybatis.page.Pagination;
|
|
|
import com.goafanti.core.shiro.token.TokenManager;
|
|
import com.goafanti.core.shiro.token.TokenManager;
|
|
|
import com.goafanti.order.bo.OrderOutsourceDtails;
|
|
import com.goafanti.order.bo.OrderOutsourceDtails;
|
|
|
import com.goafanti.order.bo.TOrderTaskDetailBo;
|
|
import com.goafanti.order.bo.TOrderTaskDetailBo;
|
|
|
|
|
+import com.goafanti.order.bo.TOrderTaskListBo;
|
|
|
import com.goafanti.order.enums.NewOrderDunType;
|
|
import com.goafanti.order.enums.NewOrderDunType;
|
|
|
|
|
+import com.goafanti.order.enums.ProjectNewStage;
|
|
|
import com.goafanti.organization.bo.InputNodeList;
|
|
import com.goafanti.organization.bo.InputNodeList;
|
|
|
import com.goafanti.organization.bo.InputPaymentList;
|
|
import com.goafanti.organization.bo.InputPaymentList;
|
|
|
import com.goafanti.organization.bo.InputPaymentNode;
|
|
import com.goafanti.organization.bo.InputPaymentNode;
|
|
@@ -64,6 +77,7 @@ import com.goafanti.organization.bo.outPaymentList;
|
|
|
import com.goafanti.organization.bo.outProjectBo;
|
|
import com.goafanti.organization.bo.outProjectBo;
|
|
|
import com.goafanti.organization.bo.outOrderPayment;
|
|
import com.goafanti.organization.bo.outOrderPayment;
|
|
|
import com.goafanti.organization.service.ThirdPartyCompanyService;
|
|
import com.goafanti.organization.service.ThirdPartyCompanyService;
|
|
|
|
|
+import com.goafanti.techproject.enums.TaskState;
|
|
|
|
|
|
|
|
@Service
|
|
@Service
|
|
|
public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyCompanyMapper> implements ThirdPartyCompanyService {
|
|
public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyCompanyMapper> implements ThirdPartyCompanyService {
|
|
@@ -202,6 +216,8 @@ public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyComp
|
|
|
public List<OutThirdPartyCompany> selectCompany(Integer tid) {
|
|
public List<OutThirdPartyCompany> selectCompany(Integer tid) {
|
|
|
List<OutThirdPartyCompany> list=thirdPartyCompanyMapper.selectByTid(tid);
|
|
List<OutThirdPartyCompany> list=thirdPartyCompanyMapper.selectByTid(tid);
|
|
|
if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
|
|
if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&&
|
|
|
!TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
!TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
|
outProjectBo op =null;
|
|
outProjectBo op =null;
|
|
|
if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(tid);
|
|
if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(tid);
|
|
@@ -303,7 +319,10 @@ public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyComp
|
|
|
}
|
|
}
|
|
|
op.setInitialTotalAmount(new BigDecimal( op.getInitialUnitPrice()).multiply(new BigDecimal(op.getInitialQuantity())).toString());
|
|
op.setInitialTotalAmount(new BigDecimal( op.getInitialUnitPrice()).multiply(new BigDecimal(op.getInitialQuantity())).toString());
|
|
|
}
|
|
}
|
|
|
- if (!TokenManager.hasRole(AFTConstants.FINANCE)&&!TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
|
|
|
|
|
+ if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
|
outProjectBo ob=tOrderOutsourceMapper.selectByTid(tp.getTid());
|
|
outProjectBo ob=tOrderOutsourceMapper.selectByTid(tp.getTid());
|
|
|
if (ob!=null &&ob.getStartType()!=null&& ob.getStartType()==1) {
|
|
if (ob!=null &&ob.getStartType()!=null&& ob.getStartType()==1) {
|
|
|
if((ob.getProjectType()==1&&ob.getPatentType()==0)||(ob.getProjectType()==2)) {
|
|
if((ob.getProjectType()==1&&ob.getPatentType()==0)||(ob.getProjectType()==2)) {
|
|
@@ -404,7 +423,10 @@ public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyComp
|
|
|
@Override
|
|
@Override
|
|
|
public List<outOrderPayment> selectOrderPayment(Integer id) {
|
|
public List<outOrderPayment> selectOrderPayment(Integer id) {
|
|
|
List<outOrderPayment> list=tOrderPaymentMapper.selectByTid(id);
|
|
List<outOrderPayment> list=tOrderPaymentMapper.selectByTid(id);
|
|
|
- if (!TokenManager.hasRole(AFTConstants.FINANCE)&&!TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
|
|
|
|
|
+ if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&&
|
|
|
|
|
+ !TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
|
|
|
outProjectBo op =null;
|
|
outProjectBo op =null;
|
|
|
if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(id);
|
|
if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(id);
|
|
|
if (op!=null &&op.getStartType()!=null&&op.getStartType()==1) {
|
|
if (op!=null &&op.getStartType()!=null&&op.getStartType()==1) {
|
|
@@ -837,4 +859,75 @@ public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyComp
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ @Override
|
|
|
|
|
+ public void exportPaymentList(HttpServletResponse response, InputPaymentList ip) throws IOException {
|
|
|
|
|
+ OutputStream out = response.getOutputStream();
|
|
|
|
|
+ try {
|
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
|
|
+ List<outPaymentList> list=(List<outPaymentList>) selectPaymentList(ip).getList();
|
|
|
|
|
+ //支付编号 项目编号 项目名称 项目状态 分类名称 合同编号 订单编号 客户名称 部门名称 付款类型 本次申请金额 已支付 申请人 财务名称 状态 创建时间
|
|
|
|
|
+ String[] comment = {"支付编号","项目编号","项目名称","项目状态","分类名称","合同编号","订单编号","客户名称","部门名称","第三方机构名称","付款类型","本次申请金额",
|
|
|
|
|
+ "已支付","申请人","财务名称","状态","创建时间"};
|
|
|
|
|
+ String fileName ="财务成本列表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
|
|
+ //type 0 变更
|
|
|
|
|
+ XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"财务成本列表");
|
|
|
|
|
+ //根据列表编写文档
|
|
|
|
|
+ XSSFSheet sheet =wb.getSheetAt(0);
|
|
|
|
|
+ for (outPaymentList ob : (List<outPaymentList>)list) {
|
|
|
|
|
+ //新增一行
|
|
|
|
|
+ XSSFRow r = sheet.createRow(sheet.getLastRowNum()+1);
|
|
|
|
|
+ for (int i = 0; i < comment.length; i++) {
|
|
|
|
|
+ //当前列的只
|
|
|
|
|
+ String o = "";
|
|
|
|
|
+ switch (comment[i]) {
|
|
|
|
|
+// "支付编号","项目编号","项目名称","项目状态","分类名称","合同编号","订单编号","客户名称","部门名称","第三方机构名称","付款类型","本次申请金额",
|
|
|
|
|
+// "已支付","申请人","财务名称","状态","创建时间"
|
|
|
|
|
+ case "支付编号": o = ob.getId().toString(); break;
|
|
|
|
|
+ case "项目编号": o = ob.getTid().toString(); break;
|
|
|
|
|
+ case "项目名称": o = ob.getPname(); break;
|
|
|
|
|
+ case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
|
|
|
|
|
+ case "分类名称": o = ob.getCname(); break;
|
|
|
|
|
+ case "合同编号": o = ob.getContractNo(); break;
|
|
|
|
|
+ case "订单编号": o = ob.getOrderNo(); break;
|
|
|
|
|
+ case "客户名称": o = ob.getCname(); break;
|
|
|
|
|
+ case "部门名称": o = ob.getDepName(); break;
|
|
|
|
|
+ case "第三方机构名称": o = ob.getCname(); break;
|
|
|
|
|
+ case "付款类型": o = ob.getChooseType()==0?"第三方成本":
|
|
|
|
|
+ ob.getChooseType()==1?"催款节点":ob.getChooseType()==2?"官费":"";
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "本次申请金额": o = ob.getApplicationAmount().toString(); break;
|
|
|
|
|
+ case "已支付": o = ob.getPaymentAmount(); break;
|
|
|
|
|
+ case "申请人": o = ob.getAname(); break;
|
|
|
|
|
+ case "财务名称": o = ob.getFinanceName(); break;
|
|
|
|
|
+ case "状态": o = ob.getStatus()==0?"审核":ob.getStatus()==1?"待支付":
|
|
|
|
|
+ ob.getStatus()==2?"驳回":ob.getStatus()==3?"已支付":"";
|
|
|
|
|
+ break;
|
|
|
|
|
+ case "创建时间": o = ob.getCreateTime(); break;
|
|
|
|
|
+ default: o = ""; break;
|
|
|
|
|
+ }
|
|
|
|
|
+ XSSFCell c = r.createCell(i);
|
|
|
|
|
+ c.setCellValue(o);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ //返回名称及参数
|
|
|
|
|
+ response.addHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes(),"iso-8859-1"));
|
|
|
|
|
+ response.setContentType("application/octet-stream;charset=utf-8");
|
|
|
|
|
+ // 返回数据流
|
|
|
|
|
+ wb.write(out);
|
|
|
|
|
+ out.flush();
|
|
|
|
|
+ out.close();
|
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
|
+ e.printStackTrace();
|
|
|
|
|
+ throw new BusinessException(new Error("表格生成错误。"));
|
|
|
|
|
+ }finally {
|
|
|
|
|
+ out.flush();
|
|
|
|
|
+ out.close();
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|