|
|
@@ -34,16 +34,12 @@ import com.goafanti.common.bo.paymentNodeEmailBo;
|
|
|
import com.goafanti.common.constant.AFTConstants;
|
|
|
import com.goafanti.common.constant.ErrorConstants;
|
|
|
import com.goafanti.common.dao.AdminMapper;
|
|
|
-import com.goafanti.common.dao.BusinessProjectMapper;
|
|
|
-import com.goafanti.common.dao.NewOrderDunMapper;
|
|
|
import com.goafanti.common.dao.NoticeMapper;
|
|
|
import com.goafanti.common.dao.OrganizationContactBookMapper;
|
|
|
import com.goafanti.common.dao.OrganizationIdentityMapper;
|
|
|
import com.goafanti.common.dao.PaymentNodeMapper;
|
|
|
-import com.goafanti.common.dao.TArrearsDunMapper;
|
|
|
import com.goafanti.common.dao.TOrderBonusMapper;
|
|
|
import com.goafanti.common.dao.TOrderLogMapper;
|
|
|
-import com.goafanti.common.dao.TOrderMidMapper;
|
|
|
import com.goafanti.common.dao.TOrderNewMapper;
|
|
|
import com.goafanti.common.dao.TOrderTaskMapper;
|
|
|
import com.goafanti.common.dao.TTaskHoursMapper;
|
|
|
@@ -60,14 +56,11 @@ import com.goafanti.common.enums.NoticeStatus;
|
|
|
import com.goafanti.common.enums.OrderLogProcess;
|
|
|
import com.goafanti.common.error.BusinessException;
|
|
|
import com.goafanti.common.model.Admin;
|
|
|
-import com.goafanti.common.model.BusinessProject;
|
|
|
import com.goafanti.common.model.Notice;
|
|
|
import com.goafanti.common.model.OrganizationContactBook;
|
|
|
import com.goafanti.common.model.OrganizationIdentity;
|
|
|
-import com.goafanti.common.model.TArrearsDun;
|
|
|
import com.goafanti.common.model.TOrderBonus;
|
|
|
import com.goafanti.common.model.TOrderLog;
|
|
|
-import com.goafanti.common.model.TOrderMid;
|
|
|
import com.goafanti.common.model.TOrderNew;
|
|
|
import com.goafanti.common.model.TOrderTask;
|
|
|
import com.goafanti.common.model.TTaskHours;
|
|
|
@@ -86,18 +79,17 @@ 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.OutNewOrderDunBo;
|
|
|
import com.goafanti.order.bo.OutTaskProgressLog;
|
|
|
import com.goafanti.order.bo.TOrderTaskBo;
|
|
|
import com.goafanti.order.bo.TOrderTaskDetailBo;
|
|
|
import com.goafanti.order.bo.TOrderTaskListBo;
|
|
|
import com.goafanti.order.bo.TaskLogBo;
|
|
|
import com.goafanti.order.bo.TaskProgressBo;
|
|
|
+import com.goafanti.order.bo.UpdateProjectStatusBo;
|
|
|
import com.goafanti.order.bo.inuptTaskHoursListBo;
|
|
|
import com.goafanti.order.bo.inuptTaskListBo;
|
|
|
import com.goafanti.order.enums.BonusSubject;
|
|
|
import com.goafanti.order.enums.NewOrderDunType;
|
|
|
-import com.goafanti.order.enums.OrderDunProjectType;
|
|
|
import com.goafanti.order.enums.OrderProjectStatus;
|
|
|
import com.goafanti.order.enums.ProcessStatus;
|
|
|
import com.goafanti.order.enums.ProjectNewStage;
|
|
|
@@ -136,14 +128,6 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
@Autowired
|
|
|
private AdminMapper adminMapper;
|
|
|
@Autowired
|
|
|
- private BusinessProjectMapper businessProjectMapper;
|
|
|
- @Autowired
|
|
|
- private NewOrderDunMapper newOrderDunMapper;
|
|
|
- @Autowired
|
|
|
- private TOrderMidMapper tOrderMidMapper;
|
|
|
- @Autowired
|
|
|
- private TArrearsDunMapper tArrearsDunMapper;
|
|
|
- @Autowired
|
|
|
private PaymentNodeMapper paymentNodeMapper;
|
|
|
@Autowired
|
|
|
private NoticeMapper noticeMapper;
|
|
|
@@ -457,12 +441,11 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
}
|
|
|
//项目触发发催款
|
|
|
if (task2.getSplitStatus()==0) {
|
|
|
- pushOrderDunAndPaymentNode(t,task2);
|
|
|
}else if (task2.getSplitStatus()==2){
|
|
|
//查出父项目
|
|
|
List<TOrderTaskListBo> list=tOrderTaskMapper.splitProjectList(task2.getSplitSuper());
|
|
|
//设置一个比较大的流程数字,然后取最小的
|
|
|
- Integer i=OrderProjectStatus.XMJD10.getCode();
|
|
|
+ Integer i=OrderProjectStatus.XMWC.getCode();
|
|
|
for (TOrderTaskListBo tt : list) {
|
|
|
if (tt.getProjectStatus()<i) i=tt.getProjectStatus();
|
|
|
}
|
|
|
@@ -476,7 +459,6 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
t2.setOrderNo(t.getOrderNo());
|
|
|
t2.setId(task2.getSplitSuper().toString());
|
|
|
t2.setProjectStatus(task3.getProjectStatus());
|
|
|
- pushOrderDunAndPaymentNode(t2,task3);
|
|
|
}
|
|
|
|
|
|
if (task2.getSuperId()!=null) {//是否有父项目
|
|
|
@@ -492,108 +474,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
- private void pushOrderDunAndPaymentNode(TOrderTaskDetailBo t,TOrderTask task2) {
|
|
|
- List<OutNewOrderDunBo> list=newOrderDunMapper.selectByTid(t.getId());
|
|
|
- for (OutNewOrderDunBo ob : list) {
|
|
|
- if (ob!=null) {
|
|
|
- boolean flag=false;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.CGZH.getCode()&&ob.getDunType()==2&&//成果转化 验收
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMYS.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.COMMON.getCode()&&ob.getDunType()==2&&//通用 公示
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.COMMON.getCode()&&ob.getDunType()==3&&//通用 下证
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.KJXM.getCode()&&ob.getDunType()==2&&//科技项目 立项或者公示
|
|
|
- (t.getProjectStatus()==OrderProjectStatus.XMLX.getCode()||(t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()))))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.KJXM.getCode()&&ob.getDunType()==3&&//科技项目 拨款
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMBK.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.KJJR.getCode()&&ob.getDunType()==2&&//科技金融 拨款
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMBK.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.RJKF.getCode()&&ob.getDunType()==2&&//软件开发 立项
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMLX.getCode()))flag=true;
|
|
|
- if((ob.getProjectType()==OrderDunProjectType.RJKF.getCode()&&ob.getDunType()==3&&//软件开发 验收
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMYS.getCode()))flag=true;
|
|
|
- if(ob.getProjectType()==OrderDunProjectType.ZSCQ.getCode()){//知识产权 公示 专利受理、转让(项目已提交),软著下证
|
|
|
- if(ob.getDunType()==3&&t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }else if (ob.getDunType()==2) {
|
|
|
- BusinessProject bp=businessProjectMapper.selectByPrimaryKey(task2.getCommodityId());
|
|
|
- if (bp.getType()==0&&t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
- if (bp.getType()==1&&t.getProjectStatus()==OrderProjectStatus.XMYTJ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
- if (bp.getType()==2&&t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- if(flag) {
|
|
|
- //如果启动催款,则新增欠款与应收款
|
|
|
- tOrderMidMapper.addOrderReceivables(t.getOrderNo(), ob.getMoney());
|
|
|
- TOrderMid tm=tOrderMidMapper.selectByOrderNo(t.getOrderNo());
|
|
|
- TArrearsDun td=new TArrearsDun();
|
|
|
- td.setOrderArrears(tm.getOrderArrears());
|
|
|
- td.setOrderReceivables(tm.getOrderReceivables());
|
|
|
- if (tArrearsDunMapper.checkOrderNo(t.getOrderNo(),null)<1) {
|
|
|
- td.setOrderNo(t.getOrderNo());
|
|
|
- tArrearsDunMapper.insertSelective(td);
|
|
|
- }else if(tArrearsDunMapper.checkOrderNo(t.getOrderNo(),0)>0){
|
|
|
- Integer i=tArrearsDunMapper.selectByStatus(t.getOrderNo(), 0);
|
|
|
- td.setId(i);
|
|
|
- tArrearsDunMapper.updateByPrimaryKeySelective(td);
|
|
|
- }
|
|
|
- orderNewService.addNewDunNoticAndSendEmail(t.getOrderNo(),ob);
|
|
|
- ob.setStatus(1);
|
|
|
- ob.setStartTime(new Date());
|
|
|
- newOrderDunMapper.updateByPrimaryKeySelective(ob);
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- List<OutPaymentNode> list2=paymentNodeMapper.selectByTid(Integer.parseInt(t.getId()),0);
|
|
|
- for (OutPaymentNode op : list2) {
|
|
|
- if (op!=null) {
|
|
|
- boolean flag=false;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.CGZH.getCode()&&op.getDunType()==2&&//成果转化 验收
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMYS.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.COMMON.getCode()&&op.getDunType()==2&&//通用 公示
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.COMMON.getCode()&&op.getDunType()==3&&//通用 下证
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.KJXM.getCode()&&op.getDunType()==2&&//科技项目 立项或者公示
|
|
|
- (t.getProjectStatus()==OrderProjectStatus.XMLX.getCode()||(t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()))))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.KJXM.getCode()&&op.getDunType()==3&&//科技项目 拨款
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMBK.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.KJJR.getCode()&&op.getDunType()==2&&//科技金融 拨款
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMBK.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.RJKF.getCode()&&op.getDunType()==2&&//软件开发 立项
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMLX.getCode()))flag=true;
|
|
|
- if((op.getProjectType()==OrderDunProjectType.RJKF.getCode()&&op.getDunType()==3&&//软件开发 验收
|
|
|
- t.getProjectStatus()==OrderProjectStatus.XMYS.getCode()))flag=true;
|
|
|
- if(op.getProjectType()==OrderDunProjectType.ZSCQ.getCode()){//知识产权 公示 专利受理、转让(项目已提交),软著下证
|
|
|
- if(op.getDunType()==3&&t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }else if (op.getDunType()==2) {
|
|
|
- BusinessProject bp=businessProjectMapper.selectByPrimaryKey(task2.getCommodityId());
|
|
|
- if (bp.getType()==0&&t.getProjectStatus()==OrderProjectStatus.XMGS.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
- if (bp.getType()==1&&t.getProjectStatus()==OrderProjectStatus.XMYTJ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
- if (bp.getType()==2&&t.getProjectStatus()==OrderProjectStatus.XMXZ.getCode()) {
|
|
|
- flag=true;
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
- if(flag)addNoticAndEmail( op,NoticeStatus.PAYMENT_DUN.getCode());
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
|
|
|
public void addNoticAndEmail(OutPaymentNode pn,Integer type) {
|
|
|
@@ -854,7 +735,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
List<TOrderTaskListBo> list=(List<TOrderTaskListBo>) taskHoursList(ib, pageNo, pageSize).getList();
|
|
|
//合同编号 订单编号 客户名称 订单部门 订单负责人 项目类别 项目编号 项目名称 项目负责人 项目价格(万元) 数量(个) 任务状态 项目状态 工时 签单时间 派单时间 分配时间 完成时间
|
|
|
String[] comment = {"合同编号","订单编号","客户名称","订单部门","订单负责人","项目类别","项目编号","项目名称","项目负责人","项目价格(万元)",
|
|
|
- "数量(个)","任务状态","项目状态","是否外包","工时","签单日期","派单日期","分配时间","完成时间" ,"成本(万元)","已付(万元)" };
|
|
|
+ "数量(个)","任务状态","项目状态","工时","签单日期","派单日期","分配时间","完成时间" ,"已付(万元)" };
|
|
|
String fileName ="工时信息记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
//type 0 变更
|
|
|
XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,"工时信息");
|
|
|
@@ -877,7 +758,6 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
case "项目类别": o =ob.getCname(); break;
|
|
|
case "项目编号": o = ob.getId().toString(); break;
|
|
|
case "项目名称": o = ob.getTaskName(); break;
|
|
|
- case "是否外包": o = ob.getOutsource()==1?"是":"否"; break;
|
|
|
case "项目负责人": o = ob.getReceiverName(); break;
|
|
|
case "项目价格(万元)": o = ob.getCommodityPrice().toString(); break;
|
|
|
case "数量(个)": o = ob.getCommodityQuantity().toString(); break;
|
|
|
@@ -888,7 +768,6 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
case "完成时间": o = ob.getTaskEndTime(); break;
|
|
|
case "签单日期": o = ob.getSignTime(); break;
|
|
|
case "派单日期": o = ob.getCreteTime();break;
|
|
|
- case "成本(万元)": o = ob.getCostAmount().toString(); break;
|
|
|
case "已付(万元)": o = ob.getPartyAmount().toString(); break;
|
|
|
default: o = ""; break;
|
|
|
}
|
|
|
@@ -967,7 +846,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
@SuppressWarnings("unchecked")
|
|
|
List<TOrderTaskListBo> list=(List<TOrderTaskListBo>) orderTaskList(ib).getList();
|
|
|
String[] comment = {"项目编号","项目名称","项目数量","订单编号","合同编号","业务类别","客户名称(软著/下证数)","分配状态",
|
|
|
- "项目状态","外包审核","分配时间","订单部门","累计工时","项目金额","成本(万元)","已付(万元)" };
|
|
|
+ "项目状态","分配时间","订单部门","累计工时","项目金额","已付(万元)" };
|
|
|
String fileName =str+"记录表" + new SimpleDateFormat("yyyy-MM-dd HH:mm").format(new Date()) + ".xls";
|
|
|
//type 0 变更
|
|
|
XSSFWorkbook wb =ExportExcelUtil.exportTemplateInfoS(comment,str);
|
|
|
@@ -992,12 +871,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
break;
|
|
|
case "分配状态": o = TaskState.getValueByCode(ob.getTaskStatus()); break;
|
|
|
case "项目状态": o = ProjectNewStage.getValueByCode(ob.getProjectStatus()); break;
|
|
|
- case "外包审核": o = ob.getOutsource()==1?"是":"否"; break;
|
|
|
case "分配时间": o = ob.getTaskDate(); break;
|
|
|
case "订单部门": o =ob.getDepName(); break;
|
|
|
case "累计工时": o = ob.getHours().toString(); break;
|
|
|
case "项目金额": o = ob.getCommodityPrice().toString(); break;
|
|
|
- case "成本(万元)": o = ob.getCostAmount().toString(); break;
|
|
|
case "已付(万元)": o = ob.getPartyAmount().toString(); break;
|
|
|
default: o = ""; break;
|
|
|
}
|
|
|
@@ -1027,5 +904,29 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
public List<OutTaskProgressLog> selectTaskProgressLog(Integer tid) {
|
|
|
return taskProgressLogMapper.selectTaskProgressLog(tid);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ public int updateProjectStatus(UpdateProjectStatusBo b) {
|
|
|
+ TOrderTask t=new TOrderTask();
|
|
|
+ t.setId(b.getTid());
|
|
|
+ t.setProjectStatus(b.getProjectStatus());
|
|
|
+ t.setCertificateNumber(b.getCertificateNumber());
|
|
|
+ t.setSetUpAmount(b.getSetUpAmount());
|
|
|
+ tOrderTaskMapper.updateByPrimaryKeySelective(t);
|
|
|
+ pushTaskLog(b.getTid(), b.getProjectStatus());
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void pushTaskLog(Integer tid,Integer projectStatus) {
|
|
|
+ TaskLog tl = new TaskLog();
|
|
|
+ tl.setCreateTime(new Date());
|
|
|
+ tl.setTaskId(tid);
|
|
|
+ tl.setAid(TokenManager.getAdminId());
|
|
|
+ StringBuffer s = new StringBuffer("项目状态修改为:");
|
|
|
+ s.append(OrderProjectStatus.getValueByCode(projectStatus));
|
|
|
+ tl.setContent(s.toString());
|
|
|
+ taskLogMapper.insertSelective(tl);
|
|
|
+ }
|
|
|
|
|
|
}
|