|
|
@@ -27,6 +27,7 @@ import com.goafanti.order.controller.InputTaskStopLog;
|
|
|
import com.goafanti.order.enums.*;
|
|
|
import com.goafanti.order.service.OrderNewService;
|
|
|
import com.goafanti.order.service.OrderProjectService;
|
|
|
+import com.goafanti.organization.bo.OrganizationListOut;
|
|
|
import com.goafanti.organization.bo.OutPaymentNode;
|
|
|
import com.goafanti.techproject.enums.TaskState;
|
|
|
import org.apache.commons.collections4.map.HashedMap;
|
|
|
@@ -45,6 +46,7 @@ import java.math.BigDecimal;
|
|
|
import java.text.ParseException;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
@Service
|
|
|
public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> implements OrderProjectService {
|
|
|
@@ -128,6 +130,8 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
private TaskTimeMapper taskTimeMapper;
|
|
|
@Autowired
|
|
|
private FinanceCountMapper financeCountMapper;
|
|
|
+ @Autowired
|
|
|
+ private TOrderExamineMapper tOrderExamineMapper;
|
|
|
|
|
|
|
|
|
|
|
|
@@ -1218,7 +1222,28 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
public Pagination<OutMemberList> memberList(InputMemberList in) {
|
|
|
HashMap<String, Object> map = new HashMap<>();
|
|
|
addParam(in, map);
|
|
|
- return (Pagination<OutMemberList>) findPage("findMemberList","findMemberCount",map,in.getPageNo(), in.getPageSize());
|
|
|
+ Pagination<OutMemberList> page = (Pagination<OutMemberList>) findPage("findMemberList", "findMemberCount", map, in.getPageNo(), in.getPageSize());
|
|
|
+ List<OutMemberList> list = (List<OutMemberList>) page.getList();
|
|
|
+ if (!list.isEmpty())pushMyExamine(list);
|
|
|
+ return page;
|
|
|
+ }
|
|
|
+
|
|
|
+ private void pushMyExamine(List<OutMemberList> list) {
|
|
|
+ List<Integer> ids =list.stream().map(e -> e.getId()).collect(Collectors.toList());
|
|
|
+ List<TOrderExamine> examineList = tOrderExamineMapper.selectExamineBytidAndAid(ids, TokenManager.getAdminId());
|
|
|
+ list=list.stream().map(e -> {
|
|
|
+ examineList.forEach(ex -> {
|
|
|
+ if(e.getId().equals(ex.getTid())) {
|
|
|
+ if (ex.getStatus() == 1) {
|
|
|
+ e.setMyExamine(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ if (e.getMyExamine()==null){
|
|
|
+ e.setMyExamine(0);
|
|
|
+ }
|
|
|
+ return e;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
private void addParam(InputMemberList in, HashMap<String, Object> map) {
|
|
|
@@ -1269,11 +1294,18 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
}
|
|
|
|
|
|
|
|
|
-
|
|
|
+ /**
|
|
|
+ * 财务通过走3个逻辑 还有复审 停留不发送邮件 复审也审核了 ,看是否特批,特批走
|
|
|
+ * @param in
|
|
|
+ * @return
|
|
|
+ */
|
|
|
@Override
|
|
|
public int pushExamineMemberProject(InputMenber in) {
|
|
|
TOrderTask task=tOrderTaskMapper.selectByPrimaryKey(in.getId());
|
|
|
+ String aid=TokenManager.getAdminId();
|
|
|
Integer status=1;
|
|
|
+ //是否财务审核加复审
|
|
|
+ boolean flag=false;
|
|
|
TOrderTask nt=new TOrderTask();
|
|
|
nt.setId(task.getId());
|
|
|
Integer result=0;
|
|
|
@@ -1285,22 +1317,60 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
//0=财务 1=特批
|
|
|
if (in.getType()==0){
|
|
|
if(task.getProcessStatus()!=1)throw new BusinessException("审核状态错误");
|
|
|
+ List<TOrderExamine> list = tOrderExamineMapper.selectByTid(task.getId());
|
|
|
+ list.stream().forEach(e ->{
|
|
|
+ if (e.getAid().equals(aid)){
|
|
|
+ TOrderExamine te=new TOrderExamine();
|
|
|
+ te.setId(e.getId());
|
|
|
+ te.setStatus(1);
|
|
|
+ tOrderExamineMapper.updateByPrimaryKeySelective(te);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ OrganizationListOut dep = tOrderNewMapper.selectOrderFinance(task.getOrderNo());
|
|
|
+ int examineType =task.getExamineType();
|
|
|
+
|
|
|
+ if (aid.equals(dep.getFinanceId())){
|
|
|
+ if (examineType==3){
|
|
|
+ examineType=2;
|
|
|
+ } else if (examineType==1) {
|
|
|
+ examineType=4;
|
|
|
+ }
|
|
|
+ }else if (aid.equals(dep.getRetrialFinanceId())){
|
|
|
+ if (examineType==3){
|
|
|
+ examineType=1;
|
|
|
+ }else if (examineType==2){
|
|
|
+ examineType=4;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ nt.setExamineType(examineType);
|
|
|
+ if(examineType==4){
|
|
|
+ flag=true;
|
|
|
+ }
|
|
|
if (task.getMemberType()==1||task.getMemberType()==2){
|
|
|
- nt.setProcessStatus(2);
|
|
|
+ if (flag){
|
|
|
+ nt.setProcessStatus(2);
|
|
|
+ }
|
|
|
status=1;
|
|
|
}else if (task.getMemberType()==0){
|
|
|
- nt.setProcessStatus(3);
|
|
|
- status=3;
|
|
|
- result=1;
|
|
|
+ if(flag){
|
|
|
+ nt.setProcessStatus(3);
|
|
|
+ status=3;
|
|
|
+ result=1;
|
|
|
+ }else {
|
|
|
+ status=1;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ if(flag){
|
|
|
+ subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),1);
|
|
|
}
|
|
|
- subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),1);
|
|
|
}else if(in.getType()==1){
|
|
|
if(task.getProcessStatus()!=2)throw new BusinessException("审核状态错误");
|
|
|
nt.setProcessStatus(3);
|
|
|
status=3;
|
|
|
result=1;
|
|
|
+ flag=true;
|
|
|
}
|
|
|
-
|
|
|
}else if (in.getResult()==0){
|
|
|
status=2;
|
|
|
nt.setProcessStatus(4);
|
|
|
@@ -1310,15 +1380,16 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
}else {
|
|
|
subtractionFinanceCountMember(task.getOrderNo(),tTaskMember.getCreateTime(),2);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
- addNoticMember(notice, ono, in.getType(),result);
|
|
|
addMemberLog(in.getId(),status,in.getRemarks());
|
|
|
- if (nt.getProcessStatus()==3){
|
|
|
+ if (nt.getProcessStatus()!=null&&nt.getProcessStatus()==3){
|
|
|
tTaskMemberMapper.updateServiceYearBySplitSuper(task.getSplitSuper());
|
|
|
}
|
|
|
-
|
|
|
- return tOrderTaskMapper.updateByPrimaryKeySelective(nt);
|
|
|
+ tOrderTaskMapper.updateByPrimaryKeySelective(nt);
|
|
|
+ if (flag){
|
|
|
+ addNoticMember(notice, ono, in.getType(),result);
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -1356,11 +1427,15 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
addMemberLog(t.getId(),0,"修改重新发起");
|
|
|
t.setProcessStatus(1);
|
|
|
TOrderNewBo ono = tOrderNewMapper.getSaleIdByOno(task.getOrderNo());
|
|
|
- addNoticMember(NoticeStatus.MENBER_START.getCode(), ono, null,0);
|
|
|
+ addNoticMember(NoticeStatus.MENBER_START.getCode(), ono, null,0,task);
|
|
|
TTaskMember tTaskMember = tTaskMemberMapper.selectByTid(t.getId());
|
|
|
addFinanceCountMember(task.getOrderNo(), tTaskMember.getCreateTime());
|
|
|
+ addMemberExamine(task);
|
|
|
return orderNewService.updateOrderTask(t);
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public void addMemberLog(Integer id,Integer status ,String remarks){
|
|
|
MemberLog log = new MemberLog();
|
|
|
@@ -1400,6 +1475,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
tOrderTask.setMain(0);
|
|
|
tOrderTask.setCommodityPrice(new BigDecimal(0));
|
|
|
tOrderTaskMapper.insertSelective(tOrderTask);
|
|
|
+
|
|
|
TTaskMember t = tTaskMemberMapper.selectByTid(tid);
|
|
|
TOrderTaskBo tb=new TOrderTaskBo();
|
|
|
BeanUtils.copyProperties(tOrderTask,tb);
|
|
|
@@ -1419,13 +1495,42 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
tTaskMemberMapper.updateServiceYearBySplitSuper(tid);
|
|
|
addMemberLog(tOrderTask.getId(),0,"新增会员项目");
|
|
|
if(memberType!=null){
|
|
|
- addNoticMember(NoticeStatus.MENBER_START.getCode(),tOrderTask.getOrderNo(),null,0);
|
|
|
-
|
|
|
+ addMemberExamine(tOrderTask);
|
|
|
+ addNoticMember(NoticeStatus.MENBER_START.getCode(),tOrderTask,null,0);
|
|
|
addFinanceCountMember(tOrderTask.getOrderNo(),date);
|
|
|
}
|
|
|
return tb;
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ private void addMemberExamine(TOrderTask t) {
|
|
|
+ OrganizationListOut dep = tOrderNewMapper.selectOrderFinance(t.getOrderNo());
|
|
|
+ tOrderExamineMapper.deleteByTid(t.getId());
|
|
|
+ List<TOrderExamine> list=new ArrayList<>();
|
|
|
+ TOrderTask tOrderTask= new TOrderTask();
|
|
|
+ if(!Objects.isNull(dep)){
|
|
|
+ int examineType=0;
|
|
|
+ if (!Objects.isNull(dep.getFinanceId())){
|
|
|
+ list.add(new TOrderExamine(t.getOrderNo(),1,t.getId(),dep.getFinanceId(),dep.getFinanceName()));
|
|
|
+ examineType=1;
|
|
|
+ }
|
|
|
+ if (StringUtils.isNotBlank(dep.getRetrialFinanceId())){
|
|
|
+ list.add(new TOrderExamine(t.getOrderNo(),1,t.getId(),dep.getRetrialFinanceId(),dep.getRetrialFinanceName()));
|
|
|
+ if(examineType==1){
|
|
|
+ examineType=3;
|
|
|
+ }else {
|
|
|
+ examineType=2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ tOrderTask.setExamineType(examineType);
|
|
|
+ }
|
|
|
+ tOrderTask.setId(t.getId());
|
|
|
+
|
|
|
+ tOrderTaskMapper.updateByPrimaryKeySelective(tOrderTask);
|
|
|
+ tOrderExamineMapper.insertBatch(list);
|
|
|
+ }
|
|
|
+
|
|
|
private void addFinanceCountMember(String orderNo, Date date) {
|
|
|
Admin admin = adminMapper.selectOrderByFinanace(orderNo);
|
|
|
String startTime = DateUtils.formatDate(date, AFTConstants.YYYYMMDD);
|
|
|
@@ -1444,20 +1549,26 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public void addNoticMember(Integer type, String orderNo,Integer shiroType,Integer result) {
|
|
|
- TOrderNewBo tn = tOrderNewMapper.getSaleIdByOno(orderNo);
|
|
|
- addNoticMember(NoticeStatus.MENBER_START.getCode(),tn,null,0);
|
|
|
+
|
|
|
+ public void addNoticMember(Integer type, TOrderTask tOrderTask,Integer shiroType,Integer result) {
|
|
|
+ TOrderNewBo tn = tOrderNewMapper.getSaleIdByOno(tOrderTask.getOrderNo());
|
|
|
+ addNoticMember(type,tn,shiroType,result,tOrderTask);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public void addNoticMember(Integer type, TOrderNewBo b,Integer shiroType,Integer result) {
|
|
|
+ public void addNoticMember(Integer type, TOrderNewBo b, Integer shiroType, Integer result) {
|
|
|
+ addNoticMember(type,b,shiroType,result,null);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void addNoticMember(Integer type, TOrderNewBo b,Integer shiroType,Integer result,TOrderTask tOrderTask) {
|
|
|
StringBuffer sb=new StringBuffer();
|
|
|
+ Date date = new Date();
|
|
|
String aid=null;
|
|
|
List<Admin>admins=new ArrayList<>();
|
|
|
sb.append("客户名称【").append(b.getUserName()).append("】,订单编号【").append(b.getOrderNo()).append("】,");
|
|
|
if (type.equals(NoticeStatus.MENBER_START.getCode())){
|
|
|
sb=sb.append("发起会员项目,请及时审核");
|
|
|
- aid=b.getFinanceId();
|
|
|
+ pushTOrderExamineAid(tOrderTask.getId(),admins);
|
|
|
}else if (type.equals(NoticeStatus.MENBER_YES.getCode())){
|
|
|
sb=sb.append("会员项目审核");
|
|
|
if(shiroType==0){
|
|
|
@@ -1480,16 +1591,35 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
aid=b.getSalesmanId();
|
|
|
}
|
|
|
if (admins!=null&&admins.size()>0){
|
|
|
+ List<EmailBo> list =new ArrayList<>();
|
|
|
+ List<Notice> notices=new ArrayList<>();
|
|
|
for (Admin admin : admins) {
|
|
|
- asyncUtils.addNotic(type,admin.getId(),sb.toString());
|
|
|
- sendMemberEmail(type,admin.getId(),sb.toString());
|
|
|
+ list.add(sendMemberEmail(type,admin.getId(),sb.toString()));
|
|
|
+ Notice n = new Notice();
|
|
|
+ n.setId(UUID.randomUUID().toString());
|
|
|
+ n.setAid(admin.getAid());
|
|
|
+ n.setNoticeType(type);
|
|
|
+ n.setContent(sb.toString());
|
|
|
+ n.setCreateTime(date);
|
|
|
+ n.setReaded(0);//未读
|
|
|
+ notices.add(n);
|
|
|
}
|
|
|
+ asyncUtils.sendList(list);
|
|
|
+ asyncUtils.addNoticeBatch(notices);
|
|
|
}else {
|
|
|
asyncUtils.addNotic(type,aid,sb.toString());
|
|
|
sendMemberEmail(type,aid,sb.toString());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private void pushTOrderExamineAid(Integer tid, List<Admin> admins) {
|
|
|
+ List<TOrderExamine> list = tOrderExamineMapper.selectByTid(tid);
|
|
|
+ for (TOrderExamine e : list) {
|
|
|
+ Admin admin = new Admin();
|
|
|
+ admin.setId(e.getAid());
|
|
|
+ admins.add(admin);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
|
|
|
/**
|
|
|
@@ -1511,7 +1641,7 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
* @param b
|
|
|
*/
|
|
|
private void pushTOrderNew(TOrderNewBo b) {
|
|
|
- List<TOrderTaskBo> l = tOrderTaskMapper.selectOrderTask(b.getOrderNo(), 0);
|
|
|
+ List<TOrderTaskBo> l = tOrderTaskMapper.selectOrderTaskAll(b.getOrderNo(), 4);
|
|
|
int counts =l.size();
|
|
|
int x=0;
|
|
|
for (TOrderTaskBo t : l) {
|
|
|
@@ -1537,12 +1667,10 @@ public class OrderProjectServiceImpl extends BaseMybatisDao<TOrderTaskMapper> im
|
|
|
* @param aid
|
|
|
* @param content
|
|
|
*/
|
|
|
- private void sendMemberEmail(Integer type,String aid,String content) {
|
|
|
+ private EmailBo sendMemberEmail(Integer type,String aid,String content) {
|
|
|
Admin admin = adminMapper.selectByPrimaryKey(aid);
|
|
|
EmailBo bo = new EmailBo(NoticeStatus.getValueByCode(type), admin.getEmail(),content);
|
|
|
- if(com.goafanti.common.utils.StringUtils.isNotBlank(admin.getEmail())) {
|
|
|
- asyncUtils.send(bo);
|
|
|
- }
|
|
|
+ return bo;
|
|
|
}
|
|
|
|
|
|
@Override
|