| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934 |
- package com.goafanti.organization.service.impl;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.io.UnsupportedEncodingException;
- import java.math.BigDecimal;
- import java.text.SimpleDateFormat;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import java.util.UUID;
- import javax.mail.MessagingException;
- import javax.servlet.http.HttpServletResponse;
- 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.stereotype.Service;
- import com.goafanti.admin.bo.AdminListBo;
- import com.goafanti.common.bo.EmailBo;
- import com.goafanti.common.bo.Error;
- import com.goafanti.common.constant.AFTConstants;
- import com.goafanti.common.dao.AdminMapper;
- import com.goafanti.common.dao.CompanyLibraryMapper;
- import com.goafanti.common.dao.FinancialPaymentMapper;
- import com.goafanti.common.dao.NoticeMapper;
- import com.goafanti.common.dao.OfficialFeePriceMapper;
- import com.goafanti.common.dao.PatentPriceMapper;
- import com.goafanti.common.dao.PaymentLogMapper;
- import com.goafanti.common.dao.PaymentNodeMapper;
- import com.goafanti.common.dao.SoftWritingPriceMapper;
- import com.goafanti.common.dao.TOrderOutsourceMapper;
- import com.goafanti.common.dao.TOrderPaymentMapper;
- import com.goafanti.common.dao.TOrderTaskMapper;
- import com.goafanti.common.dao.ThirdPartyCompanyMapper;
- import com.goafanti.common.enums.NoticeStatus;
- import com.goafanti.common.error.BusinessException;
- import com.goafanti.common.model.CompanyLibrary;
- import com.goafanti.common.model.Notice;
- import com.goafanti.common.model.OfficialFeePrice;
- import com.goafanti.common.model.PatentPrice;
- import com.goafanti.common.model.PaymentLog;
- import com.goafanti.common.model.PaymentNode;
- import com.goafanti.common.model.SoftWritingPrice;
- import com.goafanti.common.model.TOrderPayment;
- import com.goafanti.common.model.TOrderTask;
- import com.goafanti.common.model.ThirdPartyCompany;
- import com.goafanti.common.utils.DateUtils;
- import com.goafanti.common.utils.ExportExcelUtil;
- import com.goafanti.common.utils.SendEmailUtil;
- import com.goafanti.core.mybatis.BaseMybatisDao;
- import com.goafanti.core.mybatis.page.Pagination;
- import com.goafanti.core.shiro.token.TokenManager;
- import com.goafanti.order.bo.OrderOutsourceDtails;
- import com.goafanti.order.bo.TOrderTaskDetailBo;
- import com.goafanti.order.enums.NewOrderDunType;
- import com.goafanti.order.enums.ProjectNewStage;
- import com.goafanti.organization.bo.InputNodeList;
- import com.goafanti.organization.bo.InputPaymentList;
- import com.goafanti.organization.bo.InputPaymentNode;
- import com.goafanti.organization.bo.InuptFinancialPayment;
- import com.goafanti.organization.bo.NoticeInformationBo;
- import com.goafanti.organization.bo.OutPaymentLog;
- import com.goafanti.organization.bo.OutPaymentNode;
- import com.goafanti.organization.bo.OutThirdPartyCompany;
- import com.goafanti.organization.bo.outFinancialPayment;
- import com.goafanti.organization.bo.outNodeList;
- import com.goafanti.organization.bo.outPaymentList;
- import com.goafanti.organization.bo.outProjectBo;
- import com.goafanti.organization.bo.outOrderPayment;
- import com.goafanti.organization.service.ThirdPartyCompanyService;
- @Service
- public class ThirdPartyCompanyServiceImpl extends BaseMybatisDao<ThirdPartyCompanyMapper> implements ThirdPartyCompanyService {
- @Autowired
- private ThirdPartyCompanyMapper thirdPartyCompanyMapper;
- @Autowired
- private CompanyLibraryMapper companyLibraryMapper;
- @Autowired
- private PaymentNodeMapper paymentNodeMapper;
- @Autowired
- private TOrderPaymentMapper tOrderPaymentMapper;
- @Autowired
- private PaymentLogMapper paymentLogMapper;
- @Autowired
- private AdminMapper adminMapper;
- @Autowired
- private NoticeMapper noticeMapper;
- @Autowired
- private FinancialPaymentMapper financialPaymentMapper;
- @Autowired
- private TOrderTaskMapper tOrderTaskMapper;
- @Autowired
- private SoftWritingPriceMapper softWritingPriceMapper;
- @Autowired
- private OfficialFeePriceMapper officialFeePriceMapper;
- @Autowired
- private PatentPriceMapper patentPriceMapper;
- @Autowired
- private TOrderOutsourceMapper tOrderOutsourceMapper;
-
-
- @Override
- public int addCompany(ThirdPartyCompany t,Integer calculation) {
- CompanyLibrary c=new CompanyLibrary();
- String aid=TokenManager.getAdminId();
- if(calculation==0) {
- List<Integer> list=companyLibraryMapper.selectName(t.getCompanyName(),1,aid);
- if (list.size()<1) {
- c.setCompanyName(t.getCompanyName());
- c.setAid(aid);
- c.setType(1);//类型 0软著 1其他 2专利
- companyLibraryMapper.insertSelectiveGetId(c);
- t.setCid(c.getId());
- }else {
- t.setCid(list.get(0));
- }
- t.setTotalAmount(t.getUnitPrice().multiply(new BigDecimal(t.getQuantity())));
- }
- thirdPartyCompanyMapper.insertSelective(t);
- return 1;
- }
-
- @Override
- public int updateCompany(ThirdPartyCompany t,Integer calculation) {
- if (calculation==0) {//0其他 1计算
- CompanyLibrary c=new CompanyLibrary();
- String aid=TokenManager.getAdminId();
- List<Integer> list=companyLibraryMapper.selectName(t.getCompanyName(),1,aid);
- if (list.size()<1) {
- c.setCompanyName(t.getCompanyName());
- c.setAid(aid);
- c.setType(1);//0系统 1录入
- companyLibraryMapper.insertSelectiveGetId(c);
- t.setCid(c.getId());
- }else {
- t.setCid(list.get(0));
- }
- t.setTotalAmount(t.getUnitPrice().multiply(new BigDecimal(t.getQuantity())));
- }
- thirdPartyCompanyMapper.updateByPrimaryKeySelective(t);
- return 1;
- }
- @Override
- public List<CompanyLibrary> selectVague(String name,Integer type) {
- String aid = null;
- if(type==null)type=1;
- if (type==1) aid=TokenManager.getAdminId();
- return companyLibraryMapper.selectVague(name,type,aid);
- }
- @Override
- public int addPaymentNode(InputPaymentNode p) {
- if (StringUtils.isNoneBlank(p.getPartyTimes())) {
- p.setPartyTime(DateUtils.StringToDate(p.getPartyTimes(), AFTConstants.YYYYMMDD));
- }
- return paymentNodeMapper.insertSelective(p);
- }
- @Override
- public boolean addNodeCheck(InputPaymentNode p) {
- ThirdPartyCompany t=thirdPartyCompanyMapper.selectByPrimaryKey(p.getCid());
- List<OutPaymentNode> list=paymentNodeMapper.selectByTidAndCid(p.getTid(),p.getCid());
- BigDecimal sum=p.getTotalAmount()==null?new BigDecimal(0):p.getTotalAmount();
- for (OutPaymentNode pn : list) {
- if (p.getId()==null || !pn.getId().equals(p.getId())) {
- sum=sum.add(pn.getTotalAmount());
- }
- }
- if(p.getUnitPrice()==null)p.setUnitPrice(t.getUnitPrice());
- if(p.getTotalAmount()==null)p.setTotalAmount(p.getUnitPrice().multiply(new BigDecimal(p.getQuantity())));
- if(p.getTotalAmount()==null)p.setTotalAmount(new BigDecimal(0));
- if (p.getTotalAmount().compareTo(t.getTotalAmount())>0) {
- return true;
- }
- if (sum.compareTo(t.getTotalAmount())>0) {
- return true;
- }
- return false;
- }
- @Override
- public int updatePaymentNode(InputPaymentNode p) {
- if (StringUtils.isNoneBlank(p.getPartyTimes())) {
- p.setPartyTime(DateUtils.StringToDate(p.getPartyTimes(), AFTConstants.YYYYMMDD));
- }
- if (p.getDunType()!=0) {
- PaymentNode pn=paymentNodeMapper.selectByPrimaryKey(p.getId());
- pn.setPartyTime(null);
- paymentNodeMapper.updateByPrimaryKey(pn);
- }
- return paymentNodeMapper.updateByPrimaryKeySelective(p);
- }
- @Override
- public List<OutThirdPartyCompany> selectCompany(Integer tid) {
- List<OutThirdPartyCompany> list=thirdPartyCompanyMapper.selectByTid(tid);
- if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
- !TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)&&
- !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&&
- !TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
- outProjectBo op =null;
- if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(tid);
- //外包type
- if (op!=null && op.getStartType()!=null&&op.getStartType()==1) {
- for (OutThirdPartyCompany oc : list) {
- if(op.getProjectType()==null)op.setProjectType(0);
- if((op.getProjectType()==1&&oc.getType()==1)||(op.getProjectType()==2)) {
- oc.setUnitPrice("***");
- oc.setTotalAmount("***");
- }
- }
- }
- }
- return list;
- }
-
-
- @Override
- public List<OutPaymentNode> selectPaymentNode(Integer tid) {
- List<OutPaymentNode> list=paymentNodeMapper.selectByTid(tid,null);
-
- return list;
- }
- @Override
- public int deleteCompany(String id) {
- if (id.contains(",")) {
- String []ids =id.split(",");
- for (String s : ids) {
- thirdPartyCompanyMapper.deleteByPrimaryKey(Integer.valueOf(s));
- }
- }else {
- thirdPartyCompanyMapper.deleteByPrimaryKey(Integer.valueOf(id));
- }
- return 1;
- }
- @Override
- public int deletePaymentNode(String id) {
- if (id.contains(",")) {
- String []ids =id.split(",");
- for (String s : ids) {
- paymentNodeMapper.deleteByPrimaryKey(Integer.valueOf(s));
- }
- }else paymentNodeMapper.deleteByPrimaryKey(Integer.valueOf(id));
- return 1;
- }
- @Override
- public int addOrderPayment(TOrderPayment p) {
- p.setStatus(0);
- AdminListBo a =adminMapper.getDeptNameByAid(TokenManager.getAdminId());
- p.setAid(a.getId());
- p.setAname(a.getName());
- tOrderPaymentMapper.insertSelectiveGetId(p);
- NoticeInformationBo ni=financialPaymentMapper.selectBypidGetNotice(p.getId());
- addNoticAndSendEmail(ni,a,NoticeStatus.PAYMENT_NODE.getCode());
- PaymentLog pl=new PaymentLog(p.getId(),0,"发起付款:"+p.getRemarks(),a.getId(),a.getName());
- paymentLogMapper.insertSelective(pl);
- return 1;
- }
- @Override
- public outOrderPayment OrderPaymentDetails(Integer id) {
- TOrderPayment tp=tOrderPaymentMapper.selectByPrimaryKey(id);
- Integer type=tp.getChooseType();
- outOrderPayment op=tOrderPaymentMapper.selectByidGetDetails(id);
- op.setChooseType(type);
- ThirdPartyCompany tpc=thirdPartyCompanyMapper.selectByPrimaryKey(tp.getTpcId());
- if(!op.getCompanyName().equals(tpc.getCompanyName()))op.setCompanyName(op.getCompanyName()+"("+tpc.getCompanyName()+")");
- if (type==0) {//支付种类 0第三方 1催款 2官费
- op.setInitialQuantity(tpc.getQuantity());
- op.setInitialTotalAmount(tpc.getTotalAmount().toString());
- op.setInitialUnitPrice(tpc.getUnitPrice().toString());
- op.setInitialPaymentAmount(tpc.getPartyAmount().toString());
-
- }else if (type==1) {
- PaymentNode pn=paymentNodeMapper.selectByPrimaryKey(tp.getNodeId());
- op.setInitialQuantity(pn.getQuantity());
- op.setInitialTotalAmount(pn.getTotalAmount().toString());
- op.setInitialUnitPrice(pn.getUnitPrice().toString());
- op.setInitialPaymentAmount(pn.getPartyAmount().toString());
- }else if (type==2) {
- op.setInitialQuantity(tpc.getQuantity());
- TOrderTask tk=tOrderTaskMapper.selectByPrimaryKey(tp.getTid());
- OrderOutsourceDtails out=tOrderOutsourceMapper.selectByOrderNo(null, tp.getTid().toString());
- OfficialFeePrice of=officialFeePriceMapper.selectBytype(out.getPatentNameType());
- if (tk.getCostReduction()==0) {
- op.setInitialUnitPrice(of.getAmount().toString());
- }else {
- op.setInitialUnitPrice(of.getProportion85().toString());
- }
- op.setInitialTotalAmount(new BigDecimal( op.getInitialUnitPrice()).multiply(new BigDecimal(op.getInitialQuantity())).toString());
- }
- 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());
- if (ob!=null &&ob.getStartType()!=null&& ob.getStartType()==1) {
- if((ob.getProjectType()==1&&ob.getPatentType()==0)||(ob.getProjectType()==2)) {
- op.setInitialUnitPrice("***");
- op.setInitialTotalAmount("***");
- }
- }
-
- }
- return op;
- }
- @Override
- public int updateOrderPayment(TOrderPayment p) {
- TOrderPayment tp=new TOrderPayment();
- tp.setId(p.getId());
- tp.setRemarks(p.getRemarks());
- tp.setStatus(p.getStatus());
- Integer type=NoticeStatus.PAYMENT_NODE.getCode();
- String auditStr="重新发起付款:";
- //状态 0审核 1待支付 2驳回 3已支付 4取消
- if (p.getStatus()==0) {
- tp.setApplicationAmount(p.getApplicationAmount());
- tp.setChooseType(p.getChooseType());
- tp.setPaymentType(p.getPaymentType());
- tp.setPaymentAmount(p.getPaymentAmount());
- tp.setQuantity(p.getQuantity());
- tp.setPaymentStatus(p.getPaymentStatus());
- }else if (p.getStatus()==1) {
- type= NoticeStatus.PAYMENT_YES.getCode();
- tp.setApplicationAmount(p.getApplicationAmount());
- tp.setQuantity(p.getQuantity());
- auditStr="审核通过:";
- }else if(p.getStatus()==2) {
- type= NoticeStatus.PAYMENT_NO.getCode();
- tp.setApplicationAmount(p.getApplicationAmount());
- auditStr="审核驳回:";
- }else if (p.getStatus()==3) {
- type=NoticeStatus.PAYMENT_COMPLETE.getCode();
- tp.setPaymentAmount(p.getPaymentAmount()==null?p.getPaymentAmount():p.getApplicationAmount());
- confirmPayment(p);
- auditStr="审核完成";
- }else if(p.getStatus()==4) {
- auditStr="付款取消";
- }
- NoticeInformationBo ni=financialPaymentMapper.selectBypidGetNotice(p.getId());
- AdminListBo a =adminMapper.getDeptNameByAid(TokenManager.getAdminId());
- addNoticAndSendEmail(ni,a,type);
- PaymentLog pl=new PaymentLog(p.getId(),p.getStatus(),auditStr+p.getAuditNotes()==null?"":p.getAuditNotes(),a.getId(),a.getName());
- paymentLogMapper.insertSelective(pl);
- return tOrderPaymentMapper.updateByPrimaryKeySelective(tp);
- }
- private void confirmPayment(TOrderPayment p) {
- //如果确定支付
- int flag=0;
- TOrderPayment tp=tOrderPaymentMapper.selectByPrimaryKey(p.getId());
- ThirdPartyCompany tpc=new ThirdPartyCompany();
- if (p.getPaymentAmount()==null||p.getPaymentAmount().compareTo(new BigDecimal(0))==0) {
- p.setPaymentAmount(tp.getApplicationAmount());
- }
- if(tp.getChooseType()==0){
- tpc=thirdPartyCompanyMapper.selectByPrimaryKey(tp.getTpcId());
- }else if (tp.getChooseType()==1) {
- PaymentNode pn=paymentNodeMapper.selectByPrimaryKey(tp.getNodeId());
- BigDecimal count=pn.getTotalAmount();
- BigDecimal party=pn.getPartyAmount();
- party=party.add(p.getPaymentAmount());
- if (party.compareTo(new BigDecimal(0))==0) {
- flag=0;
- }else if (party.compareTo(count)==0) {
- flag=2;
- }else if (party.compareTo(count)==-1) {
- flag=1;
- }
- pn.setStatus(flag);
- pn.setPartyAmount(p.getPaymentAmount());
- paymentNodeMapper.updateByPrimaryKeySelective(pn);
- tpc=thirdPartyCompanyMapper.selectByPrimaryKey(pn.getCid());
- }else if(tp.getChooseType()==2){
- tpc=thirdPartyCompanyMapper.selectByPrimaryKey(tp.getTpcId());
- tpc.setOfficialAmount(tpc.getOfficialAmount().add(p.getPaymentAmount()));
- }
- tpc.setPartyAmount(tpc.getPartyAmount().add(p.getPaymentAmount()));
- p.setPaymentAmount(p.getApplicationAmount());
- financialPaymentMapper.updateOrderCost(p.getId(),p.getPaymentAmount());
- thirdPartyCompanyMapper.updateByPrimaryKeySelective(tpc);
- }
- @Override
- public List<OutPaymentLog> selectPaymentLog(Integer id) {
- return paymentLogMapper.selectByPid(id);
- }
- @Override
- public List<outOrderPayment> selectOrderPayment(Integer id) {
- List<outOrderPayment> list=tOrderPaymentMapper.selectByTid(id);
- if (!TokenManager.hasRole(AFTConstants.FINANCE)&&
- !TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)&&
- !TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)&&
- !TokenManager.hasRole(AFTConstants.OUTSOURCE_AUDITOR)) {
- outProjectBo op =null;
- if(!list.isEmpty()) op=tOrderOutsourceMapper.selectByTid(id);
- if (op!=null &&op.getStartType()!=null&&op.getStartType()==1) {
- if((op.getProjectType()==1&&op.getPatentType()==0)||(op.getProjectType()==2)) {
- for (outOrderPayment oc : list) {
- if (oc.getChooseType()!=2) {
- oc.setApplicationAmount("***");
- }
- }
- }
- }
- }
- return list;
- }
- @Override
- public int addfinancialPayment(InuptFinancialPayment f) {
- f.setPaymentTime(DateUtils.StringToDate(f.getPaymentTimes(), AFTConstants.YYYYMMDD));
- financialPaymentMapper.insertSelectiveGetId(f);
- return f.getId();
- }
- @Override
- public List<outFinancialPayment> selectfinancialPayment(Integer id) {
- return financialPaymentMapper.selectByPid(id);
- }
- public void addNoticAndSendEmail(NoticeInformationBo in,AdminListBo a,Integer type) {
- String str=NoticeStatus.getValueByCode(type)+": 订单编号 -"+in.getOrderNo()+
- ",客户名称:"+in.getBuyerName()+", 操作人:"+a.getName()+"-"+a.getDepartmentName()+"。";
- Notice n =new Notice();
- EmailBo bo = new EmailBo(NoticeStatus.getValueByCode(type), a.getEmail(), a.getDepartmentName(), a.getName(),
- in.getOrderNo(), in.getSalesmanName());
- n.setId(UUID.randomUUID().toString());
- if (type==NoticeStatus.PAYMENT_NODE.getCode()||type==NoticeStatus.PAYMENT_NODE.getCode()) {
- n.setAid(in.getFinanceId());
- bo.setAddress(in.getFinanceEmail());
- } else if(type==NoticeStatus.PAYMENT_NO.getCode()||type==NoticeStatus.PAYMENT_YES.getCode()
- ||type==NoticeStatus.PAYMENT_COMPLETE.getCode()) {
- n.setAid(in.getTechId());
- bo.setAddress(in.getTechEmail());
- }
-
- n.setNoticeType(type);
- n.setContent(str);
- n.setReaded(0);//未读
- noticeMapper.insertSelective(n);
- if(StringUtils.isNotBlank(a.getEmail())) {
- try {
- SendEmailUtil.getInstance().send(bo);
- } catch (UnsupportedEncodingException | MessagingException e) {
- e.printStackTrace();
- }
- }
- }
- @Override
- public boolean checkPayment(TOrderPayment p) {
- BigDecimal total=new BigDecimal(0);
- BigDecimal a=p.getApplicationAmount()==null?new BigDecimal(0):p.getApplicationAmount();
- List<outOrderPayment> list=new ArrayList<>();
- //支付种类 0第三方 1催款2官费
- if (p.getChooseType()==0) {
- //首先不能大于第三方
- list=tOrderPaymentMapper.selectList(p.getTpcId(),null,p.getChooseType());
- }else if (p.getChooseType()==1) {
- list=tOrderPaymentMapper.selectList(null,p.getNodeId(),p.getChooseType());
- }else if (p.getChooseType()==2) {
- list=tOrderPaymentMapper.selectList(p.getTpcId(),null,p.getChooseType());
- }
- for (outOrderPayment o : list) {
- a=a.add(new BigDecimal(o.getApplicationAmount()));
- }
- if (p.getChooseType()==0) {
- ThirdPartyCompany t=thirdPartyCompanyMapper.selectByPrimaryKey(p.getTpcId());
- total=t.getTotalAmount();
- }else if (p.getChooseType()==1) {
- PaymentNode n=paymentNodeMapper.selectByPrimaryKey(p.getNodeId());
- total=n.getTotalAmount();
- }else if (p.getChooseType()==2) {
- OutThirdPartyCompany ot=thirdPartyCompanyMapper.selectByIdPuls(p.getTpcId());
- if (ot.getCostReduction()==0) {
- total=new BigDecimal(ot.getOfficialUnitPrice()).multiply(new BigDecimal(ot.getQuantity()));
- }else {
- total=new BigDecimal(ot.getReductionAmount()).multiply(new BigDecimal(ot.getQuantity()));
- }
- }
- if (a.compareTo(total) != 1) {
- return false;
- }
- return true;
- }
- @Override
- public boolean checkprojectDun(TOrderPayment p) {
- PaymentNode pn=paymentNodeMapper.selectByPrimaryKey(p.getNodeId());
- TOrderTaskDetailBo tt=tOrderTaskMapper.getOrderTaskDetail(p.getTid().toString());
- // 项目状态 0-项目待提交 1-项目已提交,2-项目评审,3-项目立项,4-项目公示,5-项目抽查,6-项目备案,7-项目下证,8-项目验收,
- // 9-项目拨款 10- 项目进度10% 11- 项目进度30% 12- 项目进度70%
- if(pn.getDunType()==1) {
- return false;
- }
- if (pn.getDunType()==0&&pn.getPartyTime().getTime()<new Date().getTime()) {//如果自定义则看触发时间
- return false;
- }else if (NewOrderDunType.CGZH_WC.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>7&&tt.getProjectStatus()<10)) {
- return false;
- }else if (NewOrderDunType.COMMON_NGS.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>3&&tt.getProjectStatus()<10)) {
- return false;
- }else if (NewOrderDunType.COMMON_XZ.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>6&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.KJXM_LX.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>2&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.KJXM_BK.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>8&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.KJJR_BK.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>8&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.RJKF_LX.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>2&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.RJKF_WZ.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>7&&tt.getProjectStatus()<10)) {
- return false;
- } else if (NewOrderDunType.ZSCQ_GS_SL_XZ.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())) {
- if (tt.getBpType()==1&&(tt.getProjectStatus()>7&&tt.getProjectStatus()<10)) {
- return false;
- }else if (tt.getBpType()!=1&&(tt.getProjectStatus()>3&&tt.getProjectStatus()<10)){
- return false;
- }
- } else if (NewOrderDunType.ZSCQ_XZ.getCode()==Integer.valueOf(""+pn.getProjectType()+pn.getDunType())
- &&(tt.getProjectStatus()>6&&tt.getProjectStatus()<10)) {
- return false;
- }
-
- return true;
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<outPaymentList> selectPaymentList(InputPaymentList i) {
- Map<String, Object> map =new HashMap<>();
- map.put("aid", TokenManager.getAdminId());
- if (i.getContractNo()!=null)map.put("contractNo", i.getContractNo());
- if (i.getOrderNo()!=null)map.put("orderNo", i.getOrderNo());
- if (i.getUserName()!=null)map.put("userName", i.getUserName());
- if (i.getDepId()!=null)map.put("depId", i.getDepId());
- if (i.getAname()!=null)map.put("aname", i.getAname());
- if (i.getFinanceName()!=null)map.put("financeName", i.getFinanceName());
- if (i.getCname()!=null)map.put("cname", i.getCname());
- if (i.getPname()!=null)map.put("pname", i.getPname());
- if (i.getStatus()!=null)map.put("status", i.getStatus());
- if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
- map.put("lvl", 1);
- }else if (TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)||TokenManager.hasRole(AFTConstants.VICE_CEO)||
- TokenManager.hasRole(AFTConstants.CED)||TokenManager.hasRole(AFTConstants.SUPERADMIN)||
- TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)) {
- map.put("lvl", 2);
- }else if (TokenManager.hasRole(AFTConstants.TECH)||TokenManager.hasRole(AFTConstants.TECH_MANAGER)) {
- map.put("lvl", 3);
- }else {
- map.put("lvl", 0);
- }
- return (Pagination<outPaymentList>)findPage("selectPaymentList","selectPaymentCount",
- map,i.getPageNo(),i.getPageSize());
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<outNodeList> selectPaymentList(InputNodeList i) {
- Map<String, Object> map =new HashMap<>();
- map.put("aid", TokenManager.getAdminId());
- if (i.getContractNo()!=null)map.put("contractNo", i.getContractNo());
- if (i.getOrderNo()!=null)map.put("orderNo", i.getOrderNo());
- if (i.getUserName()!=null)map.put("userName", i.getUserName());
- if (i.getCname()!=null)map.put("cname", i.getCname());
- if (i.getPname()!=null)map.put("pname", i.getPname());
- if (i.getStatus()!=null)map.put("status", i.getStatus());
- if (i.getStartTime()!=null&&i.getEndTime()!=null) {
- map.put("startTime", DateUtils.StringToDate(i.getStartTime(), AFTConstants.YYYYMMDD));
- map.put("endTime", DateUtils.StringToDate(i.getEndTime()+" 23:59:59", AFTConstants.YYYYMMDDHHMMSS));
- }
- if (TokenManager.hasRole(AFTConstants.FINANCE)) {
- map.put("lvl", 1);
- }else if (TokenManager.hasRole(AFTConstants.FINANCE_MANAGER)) {
- map.put("lvl", 2);
- }else if (TokenManager.hasRole(AFTConstants.FINANCE_ADMIN)||TokenManager.hasRole(AFTConstants.VICE_CEO)||
- TokenManager.hasRole(AFTConstants.CED)||TokenManager.hasRole(AFTConstants.SUPERADMIN)||
- TokenManager.hasRole(AFTConstants.APPROVAL_DECISION)) {
- map.put("lvl", 3);
- }else {
- map.put("lvl", 0);
- }
- return (Pagination<outNodeList>)findPage("selectNodeList","selectNodeCount",
- map,i.getPageNo(),i.getPageSize());
- }
- @Override
- public int insertSoftWritingPrice(SoftWritingPrice s) {
- return softWritingPriceMapper.insertSelective(s);
- }
- @Override
- public int updateSoftWritingPrice(SoftWritingPrice s) {
- //
- return softWritingPriceMapper.updateByPrimaryKeySelective(s);
- }
- @Override
- public Integer pushSelectByCid(String companyName,int i) {
- String aid=null;
- if (i==1) {
- aid=TokenManager.getAdminId();
- }
- List<Integer> list=companyLibraryMapper.selectName(companyName,i,aid);
- if (list.size()<1) {
- CompanyLibrary c=new CompanyLibrary();
- c.setCompanyName(companyName);
- c.setType(i);
- companyLibraryMapper.insertSelectiveGetId(c);
- return c.getId();
- }else {
- return list.get(0);
- }
-
- }
- @SuppressWarnings("unchecked")
- @Override
- public Pagination<SoftWritingPrice> listSoftWritingPrice(SoftWritingPrice s, Integer pageNo, Integer pageSize) {
- Map<String, Object> map =new HashMap<>();
- map.put("s", s);
- return (Pagination<SoftWritingPrice>)findPage("softWritingPriceList","softWritingPriceCount",
- map,pageNo,pageSize);
- }
- @Override
- public int deleteSoftWritingPrice(Integer id) {
- SoftWritingPrice sw=softWritingPriceMapper.selectByPrimaryKey(id);
- if (sw.getCid()!=null) {
- companyLibraryMapper.deleteByPrimaryKey(sw.getCid());
- }
- return softWritingPriceMapper.deleteByPrimaryKey(id);
- }
- @Override
- public boolean checkSoftWritingPrice(SoftWritingPrice s) {
- SoftWritingPrice sw=new SoftWritingPrice();
- if(s.getId()!=null)sw=softWritingPriceMapper.selectByPrimaryKey(s.getId());
- if (s.getId()!=null) {
- s.setCid(sw.getCid());
- }
- List<SoftWritingPrice>list=softWritingPriceMapper.checkSoftWritingPrice(s);
- if (list.size()<1) {
- return false;
- }else if (list.size()==1&&s.getId()!=null) {
- for (SoftWritingPrice ss : list) {
- if(ss.getId().equals(s.getId()))return false;
- }
- }
- return true;
- }
- @Override
- public Map<String ,Object> updateGroupPayment(String ids) {
- String [] idss=ids.split(",");
- List<Integer>elist=new ArrayList<>();
- List<Integer> list=new ArrayList<>();
- List<Notice> nlist=new ArrayList<>();
- Date date=new Date();
- for (String s : idss) {
- TOrderPayment top=tOrderPaymentMapper.selectByPrimaryKey(Integer.valueOf(s));
- if (top!=null&&top.getStatus()==1) {
- top.setStatus(3);
- top.setPaymentAmount(top.getApplicationAmount());
- tOrderPaymentMapper.updateByPrimaryKeySelective(top);
- list.add(top.getId());
- //做已付款金额计算
- confirmPayment(top);
- //发送站内通知
- Notice n =new Notice();
- n.setId(UUID.randomUUID().toString());
- NoticeInformationBo ni=financialPaymentMapper.selectBypidGetNotice(Integer.valueOf(s));
- AdminListBo a =adminMapper.getDeptNameByAid(TokenManager.getAdminId());
- n.setAid(ni.getTechId());
- n.setCreateTime(date);
- n.setNoticeType(NoticeStatus.PAYMENT_COMPLETE.getCode());
- String str=NoticeStatus.getValueByCode(n.getNoticeType())+": 订单编号 -"+ni.getOrderNo()+
- ",客户名称:"+ni.getBuyerName()+", 操作人:"+a.getName()+"-"+a.getDepartmentName()+"。";
- n.setContent(str);
- n.setReaded(0);//未读
- nlist.add(n);
- }else {
- elist.add(Integer.valueOf(s));
- }
- }
- if(!nlist.isEmpty())noticeMapper.insertBatch(nlist);
- // if(!list.isEmpty())tOrderPaymentMapper.updateByids(list);
- Map<String ,Object> map=new HashMap<>();
- map.put("OK", list);
- map.put("fail", elist);
- return map;
- }
- @Override
- public int addOfficialFeePrice(OfficialFeePrice o) {
- return officialFeePriceMapper.insertSelective(o);
- }
- @Override
- public int updateOfficialFeePrice(OfficialFeePrice o) {
- return officialFeePriceMapper.updateByPrimaryKeySelective(o);
- }
- @Override
- public int deleteOfficialFeePrice(Integer id) {
- return officialFeePriceMapper.deleteByPrimaryKey(id);
- }
- @Override
- public List<OfficialFeePrice> listOfficialFeePrice(String name) {
- return officialFeePriceMapper.selectListByname(name);
- }
- @Override
- public int deleteFinancialPayment(Integer id) {
- return financialPaymentMapper.deleteByPrimaryKey(id);
- }
- @Override
- public void calculationUnitPrice(ThirdPartyCompany t) {
- SoftWritingPrice s=new SoftWritingPrice();
- s.setCid(t.getCid());
- s.setMaterial(t.getMaterial());
- s.setUrgent(t.getUrgent());
- List<SoftWritingPrice> list=softWritingPriceMapper.checkSoftWritingPrice(s);
- for (SoftWritingPrice sw : list) {
- t.setUnitPrice(sw.getUnitPrice());
- t.setTotalAmount(sw.getUnitPrice().multiply(new BigDecimal(t.getQuantity())));
- }
- }
-
- @Override
- public void calculationPatentUnitPrice(ThirdPartyCompany t,Integer patentType) {
- PatentPrice p=patentPriceMapper.selectBycid(t.getCid());
- // 专利名称 0实用新型 1发明专利 2外观专利 3 其他
- BigDecimal unitPrice=null;
- if (patentType==0) {
- unitPrice=p.getUtilityModel();
- }else if (patentType==1) {
- unitPrice=p.getInventionPatent();
- }else if (patentType==2) {
- unitPrice=p.getAppearancePatent();
- }
- t.setUnitPrice(unitPrice);
- t.setTotalAmount(unitPrice.multiply(new BigDecimal(t.getQuantity())));
- }
- @Override
- public int addpatentPrice(PatentPrice p) {
- return patentPriceMapper.insertSelective(p);
- }
- @Override
- public int updatepatentPrice(PatentPrice p) {
- return patentPriceMapper.updateByPrimaryKeySelective(p);
- }
- @Override
- public int deletepatentPrice(Integer id) {
- PatentPrice pp=patentPriceMapper.selectByPrimaryKey(id);
- if (pp.getCid()!=null) {
- companyLibraryMapper.deleteByPrimaryKey(pp.getCid());
- }
- return patentPriceMapper.deleteByPrimaryKey(id);
- }
- @Override
- public List<PatentPrice> listpatentPrice(String name) {
- return patentPriceMapper.selectlist(name);
- }
- @Override
- public boolean addCompanyChekeNumber(ThirdPartyCompany t) {
- TOrderTask tt=tOrderTaskMapper.selectByPrimaryKey(t.getTid());
- List<OutThirdPartyCompany> list =thirdPartyCompanyMapper.selectByTid(t.getTid());
- Integer count=t.getQuantity();
- for (OutThirdPartyCompany out : list) {
- if (t.getId()==null||!t.getId().equals(out.getId())) {
- count+=out.getQuantity();
- }
- }
- if (tt.getCommodityQuantity()>=count) {
- return false;
- }
- return true;
- }
-
- @Override
- public void checkGetAmount(TOrderPayment p) {
- if(p.getApplicationAmount()==null) {
- ThirdPartyCompany tpc=thirdPartyCompanyMapper.selectByPrimaryKey(p.getTpcId());
- BigDecimal count =tpc.getUnitPrice().multiply(new BigDecimal(p.getQuantity()));
- p.setApplicationAmount(count);
- }
-
- }
- @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?"已支付":
- ob.getStatus()==4?"已取消":"";
- 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();
- }
-
- }
- }
|