|
@@ -0,0 +1,1597 @@
|
|
|
|
+package com.rtrh.projects.modules.projects.dao;
|
|
|
|
+
|
|
|
|
+import java.math.BigDecimal;
|
|
|
|
+import java.math.BigInteger;
|
|
|
|
+import java.math.RoundingMode;
|
|
|
|
+import java.text.DateFormat;
|
|
|
|
+import java.text.ParseException;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.time.DayOfWeek;
|
|
|
|
+import java.time.LocalDate;
|
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
|
+import java.util.Calendar;
|
|
|
|
+import java.util.Collections;
|
|
|
|
+import java.util.Date;
|
|
|
|
+import java.util.HashMap;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.Map;
|
|
|
|
+import java.util.Objects;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+import com.github.pagehelper.PageHelper;
|
|
|
|
+import com.github.pagehelper.PageInfo;
|
|
|
|
+import com.rtrh.projects.modules.projects.mapper.SubInfoMapper;
|
|
|
|
+import com.rtrh.projects.modules.system.vo.PersonInfoVO;
|
|
|
|
+import org.hibernate.criterion.*;
|
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
+import org.springframework.stereotype.Service;
|
|
|
|
+
|
|
|
|
+import com.google.common.base.CaseFormat;
|
|
|
|
+import com.rtrh.common.util.DateUtil;
|
|
|
|
+import com.rtrh.common.util.StringUtil;
|
|
|
|
+import com.rtrh.core.repository.Page;
|
|
|
|
+import com.rtrh.core.repository.hibernate.EntityServiceImpl;
|
|
|
|
+import com.rtrh.projects.modules.projects.enums.ProjectStatusEnum;
|
|
|
|
+import com.rtrh.projects.modules.projects.mapper.StaticsMapper;
|
|
|
|
+import com.rtrh.projects.modules.projects.po.SubInfo;
|
|
|
|
+import com.rtrh.projects.modules.projects.vo.HistoryVO;
|
|
|
|
+import com.rtrh.projects.modules.projects.vo.SubInfoQueryTzVO;
|
|
|
|
+import com.rtrh.projects.modules.system.dao.TSystableDao;
|
|
|
|
+import com.rtrh.projects.modules.system.enums.JUnitKind;
|
|
|
|
+import com.rtrh.projects.modules.system.enums.SysTableKind;
|
|
|
|
+import com.rtrh.projects.modules.system.enums.UserKindUnitEnum;
|
|
|
|
+import com.rtrh.projects.modules.system.po.TSystable;
|
|
|
|
+import com.rtrh.projects.modules.system.vo.LoginUserVO;
|
|
|
|
+
|
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
|
+
|
|
|
|
+import javax.annotation.Resource;
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+@Service
|
|
|
|
+public class SubInfoDao extends EntityServiceImpl<SubInfo> {
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
|
|
+ private TSystableDao tSystableDao;
|
|
|
|
+ @Autowired
|
|
|
|
+ private StaticsMapper staicsMapper;
|
|
|
|
+ @Resource
|
|
|
|
+ private SubInfoMapper subInfoMapper;
|
|
|
|
+
|
|
|
|
+ public Page pageYqInfo(Page page, LoginUserVO vo, String projName, String startTime, String endTime, String overStatus, String year, String beginMonth, String endMonth, Boolean onlySub, String hyfl, String subjectId, String zjly, Boolean containHide, Boolean blSub){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ List<TSystable> list = tSystableDao.getSysDataByKind(SysTableKind.YQTS);
|
|
|
|
+ //延期天数
|
|
|
|
+ Integer yqts = 0;
|
|
|
|
+ if(CollectionUtil.isNotEmpty(list) && list.size() > 0) {
|
|
|
|
+ yqts = Integer.valueOf(list.get(0).getCode());
|
|
|
|
+ }
|
|
|
|
+ String yearBeginDate = null;
|
|
|
|
+ String yearEndDate = null;
|
|
|
|
+ if(StringUtil.isNotEmpty(year)) {
|
|
|
|
+ Calendar yCalendar = Calendar.getInstance();
|
|
|
|
+ yCalendar.set(Calendar.YEAR, Integer.valueOf(year));
|
|
|
|
+ yCalendar.set(Calendar.DAY_OF_MONTH, 1);
|
|
|
|
+ if(StringUtil.isNotEmpty(beginMonth)) {
|
|
|
|
+ yCalendar.set(Calendar.MONTH, Integer.valueOf(beginMonth) -1);
|
|
|
|
+ } else {
|
|
|
|
+ yCalendar.set(Calendar.MONTH, 0);
|
|
|
|
+ }
|
|
|
|
+ yearBeginDate = DateUtil.getDateStr(yCalendar.getTime(), DateUtil.FORMAT_DATE);
|
|
|
|
+ if(StringUtil.isNotEmpty(endMonth)) {
|
|
|
|
+ yCalendar.set(Calendar.MONTH, Integer.valueOf(endMonth) -1);
|
|
|
|
+ yCalendar.set(Calendar.DAY_OF_MONTH, 31);
|
|
|
|
+ } else {
|
|
|
|
+ yCalendar.set(Calendar.MONTH, 11);
|
|
|
|
+ yCalendar.set(Calendar.DAY_OF_MONTH, 31);
|
|
|
|
+ }
|
|
|
|
+ yearEndDate = DateUtil.getDateStr(yCalendar.getTime(), DateUtil.FORMAT_DATE);
|
|
|
|
+ }
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(new Date());
|
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, yqts);
|
|
|
|
+ String ybDayStr = DateUtil.getDateStr(calendar.getTime(), DateUtil.FORMAT_DATE);
|
|
|
|
+ sql.append("select if(us.id is NULL,0,1) as usersub,tem.* FROM ( ");
|
|
|
|
+ /*if(!Boolean.TRUE.equals(onlySub)) {
|
|
|
|
+ sql.append(" SELECT a.id, c.title zgdw, d.title as sbdw,b.sub_name as subName,a.kind, e.title, DATE_FORMAT(a.date_plan,'%Y-%m-%d') as `endDate`,DATEDIFF(CURDATE(),a.date_plan) overDays, b.id as subId, b.name_zrr as nameZrr, b.tel, b.name_lead nameLead, b.tel_Lead telLead ");
|
|
|
|
+ sql.append(" FROM sub_pre_new a LEFT JOIN sub_info b ON a.sub_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON b.main_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit d ON b.unit_id = d.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_pre_flow e ON a.pre_flow_id = e.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage f ON f.sub_id = a.sub_id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify h ON h.sub_id = a.sub_id AND h.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" WHERE a.logic_delete_flag = 0 AND (b.`status` = 1) AND b.logic_delete_flag = 0 AND NOT ISNULL(a.date_plan) AND ISNULL(a.date_confirm) ");
|
|
|
|
+ if(yearBeginDate != null) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (b.begin_date <= '").append(yearBeginDate).append("' and b.end_date >= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.begin_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.end_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(projName)) {
|
|
|
|
+ sql.append(" AND b.sub_name LIKE '%" + projName + "%' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(startTime)) {
|
|
|
|
+ sql.append(" and a.date_plan >= '" + startTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(endTime)) {
|
|
|
|
+ sql.append(" and a.date_plan <= '" + endTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.depart_id = '"+vo.getDepartId()+"' or h.depart_id = '"+vo.getDepartId()+"') ");
|
|
|
|
+ sql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' or a.sub_unit = '"+ vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals("0", overStatus)) {
|
|
|
|
+ //还未过期,但快过期了
|
|
|
|
+ sql.append("AND a.date_plan > CURDATE() AND a.date_plan <= '" + ybDayStr+"' ");
|
|
|
|
+ } else if(Objects.equals("1", overStatus)) {
|
|
|
|
+ //已过期的
|
|
|
|
+ sql.append(" AND DATE_ADD(a.date_plan, INTERVAL a.num2 DAY) <= CURDATE() ");
|
|
|
|
+ } else if(Objects.equals("2", overStatus)) {
|
|
|
|
+ //已过期和快过期的
|
|
|
|
+ sql.append(" AND (").append("( a.date_plan > CURDATE() AND a.date_plan <= '" + ybDayStr+"') ");
|
|
|
|
+ sql.append(" OR DATE_ADD(a.date_plan, INTERVAL a.num2 DAY) <= CURDATE())");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append( "UNION ");
|
|
|
|
+ }*/
|
|
|
|
+ sql.append(" SELECT b.id, c.title zgdw,d.title as sbdw, b.sub_name as subName, '4' as kind, '项目进度整体延期' as content, b.end_date as `endDate`,DATEDIFF(CURDATE(),b.end_date) overDays,b.id as subId, b.name_zrr as nameZrr, b.tel, b.name_lead nameLead, b.tel_Lead telLead ");
|
|
|
|
+ sql.append(" FROM sub_info b ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON b.main_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit d ON b.unit_id = d.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage f ON f.sub_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify h ON h.sub_id = b.id AND h.logic_delete_flag = 0 ");
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" LEFT JOIN sub_source g ON g.sub_id = a.id and g.logic_delete_flag=0");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sql.append(" WHERE (b.`status` >= '1' and b.`status` <= '7' ) AND b.logic_delete_flag = 0 ");
|
|
|
|
+ if(yearBeginDate != null) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (b.begin_date <= '").append(yearBeginDate).append("' and b.end_date >= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.begin_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.end_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(projName)) {
|
|
|
|
+ sql.append(" AND b.sub_name LIKE '%" + projName + "%' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(startTime)) {
|
|
|
|
+ sql.append(" and b.end_date >= '" + startTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(endTime)) {
|
|
|
|
+ sql.append(" and b.end_date <= '" + endTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" and g.source_id = '" + zjly+ "' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+/* if (Objects.equals(Boolean.TRUE,containHide)){
|
|
|
|
+ sql.append(" and b.is_hide = '1' ");
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(subjectId)) {
|
|
|
|
+ sql.append(" and a.subject_id = '"+ subjectId+"' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(hyfl)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + hyfl + "' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.depart_id = '"+vo.getDepartId()+"' or h.depart_id = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals("0", overStatus)) {
|
|
|
|
+ //还未过期,但快过期了
|
|
|
|
+ sql.append("AND b.end_date > CURDATE() AND b.end_date <= '" + ybDayStr+"' ");
|
|
|
|
+ } else if(Objects.equals("1", overStatus)) {
|
|
|
|
+ //已过期的
|
|
|
|
+ sql.append(" AND b.end_date <= CURDATE() ");
|
|
|
|
+ } else if(Objects.equals("2", overStatus)) {
|
|
|
|
+ //已过期和快过期的
|
|
|
|
+ sql.append(" AND (").append("( b.end_date > CURDATE() AND b.end_date <= '" + ybDayStr+"') ");
|
|
|
|
+ sql.append(" OR b.end_date <= CURDATE())");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY b.id ");
|
|
|
|
+ /*if(!Boolean.TRUE.equals(onlySub)) {
|
|
|
|
+ sql.append(" UNION ");
|
|
|
|
+ sql.append(" SELECT a.id, c.title zgdw,d.title as sbdw, b.sub_name as subName, '5' as kind, a.title as content, a.date_conf as `endDate`,DATEDIFF(CURDATE(),a.date_conf) overDays,b.id as subId, b.name_zrr as nameZrr, b.tel, b.name_lead nameLead, b.tel_Lead telLead ");
|
|
|
|
+ sql.append(" FROM sub_q_info a LEFT JOIN sub_info b ON a.sub_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON b.main_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit d ON b.unit_id = d.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage f ON f.sub_id = a.sub_id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify h ON h.sub_id = a.sub_id AND h.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" WHERE a.`status` = 0 AND b.logic_delete_flag = 0 and a.logic_delete_flag = 0 ");
|
|
|
|
+ if(yearBeginDate != null) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (b.begin_date <= '").append(yearBeginDate).append("' and b.end_date >= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.begin_date >= '").append(yearBeginDate).append("' and b.begin_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" or (b.end_date >= '").append(yearBeginDate).append("' and b.end_date <= '").append(yearEndDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(projName)) {
|
|
|
|
+ sql.append(" AND b.sub_name LIKE '%" + projName + "%' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(startTime)) {
|
|
|
|
+ sql.append(" and a.date_conf >= '" + startTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(endTime)) {
|
|
|
|
+ sql.append(" and a.date_conf <= '" + endTime + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ sql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' or a.unit_id = '"+vo.getUnitId()+"') ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals("0", overStatus)) {
|
|
|
|
+ //还未过期,但快过期了
|
|
|
|
+ sql.append("AND a.date_conf > CURDATE() AND a.date_conf <= '" + ybDayStr+"' ");
|
|
|
|
+ } else if(Objects.equals("1", overStatus)) {
|
|
|
|
+ //已过期的
|
|
|
|
+ sql.append(" AND a.date_conf <= CURDATE() ");
|
|
|
|
+ } else if(Objects.equals("2", overStatus)) {
|
|
|
|
+ //已过期和快过期的
|
|
|
|
+ sql.append(" AND (").append("( a.date_conf > CURDATE() AND a.date_conf <= '" + ybDayStr+"') ");
|
|
|
|
+ sql.append(" OR a.date_conf <= CURDATE())");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ }*/
|
|
|
|
+ sql.append(" ) as tem ");
|
|
|
|
+
|
|
|
|
+ if (Objects.equals(Boolean.TRUE,blSub)){
|
|
|
|
+ sql.append(" inner JOIN sec_user_sub us ON tem.subId = us.sub_id AND us.logic_delete_flag =0 ");
|
|
|
|
+ }else{
|
|
|
|
+ sql.append(" LEFT JOIN sec_user_sub us ON tem.subId = us.sub_id AND us.logic_delete_flag =0 AND us.user_id='"+vo.getId()+"' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sql.append(" ORDER BY usersub desc,tem.endDate, subId ASC ");
|
|
|
|
+ return this.queryForListBySql(sql.toString(), page);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @SuppressWarnings("unchecked")
|
|
|
|
+ public Map<String,Object> getSubAmountForWorkBentch(LoginUserVO vo){
|
|
|
|
+ /*StringBuffer preBaseSql = new StringBuffer();
|
|
|
|
+ preBaseSql.append(" SELECT count(1) as num ");
|
|
|
|
+ preBaseSql.append(" FROM sub_pre_new a LEFT JOIN sub_info b ON a.sub_id = b.id ");
|
|
|
|
+ preBaseSql.append(" LEFT JOIN sub_manage f ON f.sub_id = a.sub_id ");
|
|
|
|
+ preBaseSql.append(" LEFT JOIN sub_verify h ON h.sub_id = a.sub_id AND h.logic_delete_flag = 0 ");
|
|
|
|
+ preBaseSql.append(" WHERE a.logic_delete_flag = 0 AND (b.`status` = 1) AND b.logic_delete_flag = 0 AND NOT ISNULL(a.date_plan) AND ISNULL(a.date_confirm) ");*/
|
|
|
|
+
|
|
|
|
+ StringBuffer planBaseSql = new StringBuffer();
|
|
|
|
+ planBaseSql.append(" SELECT count(1) as num ");
|
|
|
|
+ planBaseSql.append(" FROM sub_info b ");
|
|
|
|
+ planBaseSql.append(" LEFT JOIN sub_manage f ON f.sub_id = b.id ");
|
|
|
|
+ planBaseSql.append(" LEFT JOIN sub_verify h ON h.sub_id = b.id AND h.logic_delete_flag = 0 ");
|
|
|
|
+ planBaseSql.append(" WHERE b.logic_delete_flag = 0 AND (b.`status` >= '1' and b.`status` <= '7') ");
|
|
|
|
+
|
|
|
|
+ /*StringBuffer questionBaseSql = new StringBuffer();
|
|
|
|
+ questionBaseSql.append(" SELECT count(1) as num ");
|
|
|
|
+ questionBaseSql.append(" FROM sub_q_info a LEFT JOIN sub_info b ON a.sub_id = b.id ");
|
|
|
|
+ questionBaseSql.append(" LEFT JOIN j_unit c ON b.main_id = c.id ");
|
|
|
|
+ questionBaseSql.append(" LEFT JOIN j_unit d ON b.unit_id = d.id ");
|
|
|
|
+ questionBaseSql.append(" LEFT JOIN sub_manage f ON f.sub_id = a.sub_id ");
|
|
|
|
+ questionBaseSql.append(" LEFT JOIN sub_verify h ON h.sub_id = a.sub_id AND h.logic_delete_flag = 0 ");
|
|
|
|
+ questionBaseSql.append(" WHERE a.`status` = 0 AND b.logic_delete_flag = 0 ");*/
|
|
|
|
+
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ //preBaseSql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ planBaseSql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ //questionBaseSql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ //preBaseSql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ planBaseSql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ //questionBaseSql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //preBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.depart_id = '"+vo.getDepartId()+"' or h.depart_id = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ //planBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.depart_id = '"+vo.getDepartId()+"' or h.depart_id = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ //questionBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.depart_id = '"+vo.getDepartId()+"' or h.depart_id = '"+vo.getDepartId()+"' or a.unit_id = '"+vo.getUnitId()+"') ");
|
|
|
|
+ //preBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' or a.sub_unit = '"+ vo.getUnitId()+"' ) ");
|
|
|
|
+ planBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ //questionBaseSql.append(" AND ( b.unit_id = '"+ vo.getUnitId()+"' or b.main_id = '"+vo.getUnitId()+"' or f.manage_id = '"+vo.getUnitId()+"' or h.unit_id = '"+vo.getUnitId()+"' or a.unit_id = '"+vo.getUnitId()+"') ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<TSystable> list = tSystableDao.getSysDataByKind(SysTableKind.YQTS);
|
|
|
|
+ //延期天数
|
|
|
|
+ Integer yqts = 0;
|
|
|
|
+ if(CollectionUtil.isNotEmpty(list) && list.size() > 0) {
|
|
|
|
+ yqts = Integer.valueOf(list.get(0).getCode());
|
|
|
|
+ }
|
|
|
|
+ Calendar calendar = Calendar.getInstance();
|
|
|
|
+ calendar.setTime(new Date());
|
|
|
|
+ calendar.add(Calendar.DAY_OF_MONTH, yqts);
|
|
|
|
+ String ybDayStr = DateUtil.getDateStr(calendar.getTime(), DateUtil.FORMAT_DATE);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //sub_pre已过期
|
|
|
|
+ //String subPreOver = preBaseSql.toString()+ " AND a.date_plan <= CURDATE() ";
|
|
|
|
+ //sub_pre待过期
|
|
|
|
+ //String subPreWillOver = preBaseSql.toString() + " AND a.date_plan > CURDATE() AND a.date_plan <= '"+ybDayStr+"' ";
|
|
|
|
+ //sub_plan已过期
|
|
|
|
+ String subPlanOver = planBaseSql.toString()+ " AND b.end_date <= CURDATE() ";
|
|
|
|
+ //sub_plan待过期
|
|
|
|
+ String subPlanWillOver = planBaseSql.toString() + " AND b.end_date > CURDATE() AND b.end_date <= '"+ybDayStr+"' ";
|
|
|
|
+ //sub_q_info已过期
|
|
|
|
+ //String questionOver = questionBaseSql.toString()+ " AND a.date_conf <= CURDATE() ";
|
|
|
|
+ //sub_q_info待过期
|
|
|
|
+ //String questionWillOver = questionBaseSql.toString() + " AND a.date_conf > CURDATE() AND a.date_conf <= '"+ybDayStr+"' ";
|
|
|
|
+
|
|
|
|
+ //Map<String, BigInteger> subPreOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+subPreOver+" GROUP BY a.id) as tem ");
|
|
|
|
+ //Map<String, BigInteger> subPreWillOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+subPreWillOver+" GROUP BY a.id) as tem ");
|
|
|
|
+ Map<String, BigInteger> subPlanOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+subPlanOver+" GROUP BY b.id) as tem ");
|
|
|
|
+ Map<String, BigInteger> subPlanWillOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+subPlanWillOver+" GROUP BY b.id) as tem ");
|
|
|
|
+ //Map<String, BigInteger> questionOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+questionOver+" GROUP BY a.id) as tem ");
|
|
|
|
+ //Map<String, BigInteger> questionWillOverNum = (Map<String, BigInteger>)this.queryForObjectBySql("SELECT COUNT(*) as num FROM ("+questionWillOver+" GROUP BY a.id) as tem ");
|
|
|
|
+ Map<String, Object> result= new HashMap<>();
|
|
|
|
+ //result.put("isOver", subPreOverNum.getOrDefault("num", BigInteger.ZERO).add(subPlanOverNum.getOrDefault("num", BigInteger.ZERO))/*.add(questionOverNum.getOrDefault("num", BigInteger.ZERO))*/);
|
|
|
|
+ //result.put("willOver", subPreWillOverNum.getOrDefault("num", BigInteger.ZERO).add(subPlanWillOverNum.getOrDefault("num", BigInteger.ZERO))/*.add(questionWillOverNum.getOrDefault("num", BigInteger.ZERO))*/);
|
|
|
|
+ result.put("isOver", subPlanOverNum.getOrDefault("num", BigInteger.ZERO));
|
|
|
|
+ result.put("willOver", subPlanWillOverNum.getOrDefault("num", BigInteger.ZERO));
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Map<String,Object> getSubInfoById(String id, String queryYear){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String subInfoTableName = "sub_info";
|
|
|
|
+/*
|
|
|
|
+ if(StringUtil.isNotEmpty(queryYear)&&(!queryYear.equals("undefined"))) {
|
|
|
|
+ HistoryVO historyVO = new HistoryVO();
|
|
|
|
+ historyVO.setYear(queryYear);
|
|
|
|
+ staicsMapper.historyLib(historyVO);
|
|
|
|
+ subInfoTableName = historyVO.getResult();
|
|
|
|
+ }
|
|
|
|
+*/
|
|
|
|
+
|
|
|
|
+ //20231205 增加项目 今年 年度计划投资,年度实际投资
|
|
|
|
+ SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyyMM");
|
|
|
|
+ Date date=new Date();
|
|
|
|
+ String yearMonth= simpleDateFormat.format(date);
|
|
|
|
+ String year=yearMonth.substring(0,4);
|
|
|
|
+ Integer numBeginMonth=Integer.parseInt(year+"01");
|
|
|
|
+ Integer numEndMonth=Integer.parseInt(yearMonth);
|
|
|
|
+ Calendar calendar_1=Calendar.getInstance();
|
|
|
|
+ calendar_1.set(Calendar.DAY_OF_MONTH,5);
|
|
|
|
+ calendar_1.set(Calendar.HOUR_OF_DAY,23);
|
|
|
|
+ String month=yearMonth.substring(2,yearMonth.length());
|
|
|
|
+ if (calendar_1.getTime().getTime()>date.getTime()){
|
|
|
|
+ numEndMonth=numEndMonth-2;
|
|
|
|
+ }else{
|
|
|
|
+ numEndMonth=numEndMonth-1;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //每年1月份, 投资为0 2月5号之前 投资为0
|
|
|
|
+ if ("01".equals(month)||("02".equals(month)&&calendar_1.getTime().getTime()>date.getTime())){
|
|
|
|
+ sql.append(" select sa.yearAmt,src.yearAmtSj,src.yearAmtRt,'0' AS `offset`,sqi.title problemReason,IF (us.id IS NULL, 0, 1) AS isBl,a.*,b.title as unitName,f.title as mainName, c.title as indusName, d.title as manageName, e.title subjectId ");
|
|
|
|
+
|
|
|
|
+ }else {
|
|
|
|
+ sql.append(" select sa.yearAmt,src.yearAmtSj,src.yearAmtRt,IF (sa.yearAmt != 0,ROUND((src.yearAmtSj - sa.yearAmt) * 100 / sa.yearAmt,2),NULL) AS `offset`,sqi.title problemReason,IF (us.id IS NULL, 0, 1) AS isBl,a.*,b.title as unitName,f.title as mainName, c.title as indusName, d.title as manageName, e.title subjectId ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" from "+subInfoTableName+" a ");
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit d ON a.manage_id = d.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit f ON a.main_id = f.id ");
|
|
|
|
+ sql.append(" left join t_systable c on a.indus_kind = c.id ");
|
|
|
|
+ sql.append(" left join t_systable e on a.subject_id = e.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sec_user_sub us ON a.id = us.sub_id AND us.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_q_info sqi ON sqi.sub_id=a.id AND sqi.logic_delete_flag=0 AND sqi.`status`='0' AND sqi.kind = "+ JUnitKind.ZFDW.getCode()+" ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //20231219 增加项目 今年 年度计划投资,年度实际投资
|
|
|
|
+// SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy");
|
|
|
|
+// Date date=new Date();
|
|
|
|
+// String year= simpleDateFormat.format(date);
|
|
|
|
+
|
|
|
|
+ sql.append(" LEFT JOIN ( SELECT sum(amt) yearAmt, sa.sub_id FROM sub_amtplan sa WHERE sa.logic_delete_flag = 0 AND sa.y_month >='"+numBeginMonth+"' AND sa.y_month <= '"+numEndMonth+"' GROUP BY sa.sub_id ) sa ON sa.sub_id=a.id ");
|
|
|
|
+ sql.append(" LEFT JOIN ( SELECT sum(amt) yearAmtSj,sum( amt_rt) yearAmtRt,src.sub_id FROM sub_rpt_cont src WHERE src.logic_delete_flag = 0 AND src.kj_month >= '"+numBeginMonth+"' AND src.kj_month <= '"+numEndMonth+"' GROUP BY src.sub_id ) src ON src.sub_id=a.id ");
|
|
|
|
+
|
|
|
|
+ sql.append(" where a.id = ?");
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+
|
|
|
|
+ return (Map<String,Object>)this.queryForObjectBySql(sql.toString(), id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询过程管理列表
|
|
|
|
+ * @param page
|
|
|
|
+ * @param vo
|
|
|
|
+ * @param subName
|
|
|
|
+ * @param kind
|
|
|
|
+ * @param propKind
|
|
|
|
+ * @param indusKind
|
|
|
|
+ * @param status
|
|
|
|
+ * @param beginDateStart
|
|
|
|
+ * @param beginDateEnd
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Page pageGc(Page page, LoginUserVO vo,String subName, String kind,
|
|
|
|
+ String propKind, String indusKind, String status, String beginDate, String endDate) {
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+
|
|
|
|
+ sql.append(" select if(us.id is NULL,0,1) as usersub,a.id,a.sub_name as subName,a.kind,a.prop_kind as propKind,a.amt_total as amtTotal,a.amt_year as amtYear, a.reason, ");
|
|
|
|
+ sql.append(" IFNULL(a.amt_comp,0) as amtComp, IFNULL(num_total,0) as numTotal, IFNULL(a.num_comp,0) as numComp, ");
|
|
|
|
+ sql.append(" DATE_FORMAT(a.end_date,'%Y-%m-%d') as endDate,b.title as unitName, c.title as manageName,DATE_FORMAT(a.begin_date,'%Y-%m-%d') as beginDate,a.status,a.status_jh statusJh,a.status_tg statusTg ");
|
|
|
|
+ sql.append(" ,(select src.num_bl FROM sub_rpt_cont as src where src.sub_id =a.id and src.logic_delete_flag = 0 and src.kind = '1' and not isnull(src.num_bl) order by kj_month desc limit 1) as numBl ");
|
|
|
|
+ sql.append(" from sub_info a ");
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON a.manage_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sec_user_sub us ON a.id = us.sub_id AND us.logic_delete_flag = 0 AND us.user_id = '"+vo.getId()+"' ");
|
|
|
|
+ sql.append(" where a.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(!Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ sql.append(" and a.`status` = '" + status + "' ");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" AND (a.`status` = '6' or a.`status` = 7 or a.`status` = '8' )");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ sql.append(" and a.sub_name like '" + subName + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(kind)) {
|
|
|
|
+ //遍历
|
|
|
|
+ String [] kinds=kind.split(",");
|
|
|
|
+ String sqlTemp="";
|
|
|
|
+ for (String temp:kinds){
|
|
|
|
+
|
|
|
|
+ sqlTemp=sqlTemp+ " INSTR (a.kind,'"+temp+"')>0 OR ";
|
|
|
|
+ }
|
|
|
|
+ //去掉最后的 OR
|
|
|
|
+ String sqlCheck=sqlTemp.substring(0,sqlTemp.length()-3);
|
|
|
|
+
|
|
|
|
+ sql.append(" AND ( "+sqlCheck+" )");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(propKind)) {
|
|
|
|
+ sql.append(" and a.prop_kind = '" + propKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(beginDate) && StringUtil.isNotEmpty(endDate)) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(beginDate).append("' and a.end_date >= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.begin_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append(" order by usersub desc,a.begin_date,a.create_time desc");
|
|
|
|
+ return this.queryForListBySql(sql.toString(), page);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> queryProcessProjects(LoginUserVO vo,String subName, String kind,
|
|
|
|
+ String propKind, String indusKind, String status, String beginDate, String endDate, Boolean containHide) {
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+
|
|
|
|
+ sql.append(" select a.id,a.sub_name as subName,a.kind,a.prop_kind as propKind,a.amt_total as amtTotal,a.amt_year as amtYear, a.reason, ");
|
|
|
|
+ sql.append(" IFNULL(a.amt_comp,0) as amtComp, IFNULL(num_total,0) as numTotal, IFNULL(a.num_comp,0) as numComp, ");
|
|
|
|
+ sql.append(" DATE_FORMAT(a.end_date,'%Y-%m-%d') as endDate,b.title as unitName, c.title as manageName,DATE_FORMAT(a.begin_date,'%Y-%m-%d') as beginDate,a.status,a.status_jh statusJh ");
|
|
|
|
+
|
|
|
|
+ //关联问题数量
|
|
|
|
+ sql.append(" ,(select count(*) FROM sub_q_info as sqi WHERE sqi.sub_id=a.id AND sqi.logic_delete_flag=0 and sqi.status = 0) as problemNum ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sql.append(" from sub_info a ");
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON a.manage_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" where a.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(!Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ /* if(Boolean.FALSE.equals(containHide)) {
|
|
|
|
+ sql.append(" AND (isnull(a.is_hide) or a.is_hide = '0') ");
|
|
|
|
+ }*/
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ sql.append(" and a.`status` = '" + status + "' ");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" AND (a.`status` = 'A' or a.`status`= '1' or a.`status` = '6' or a.`status` = 7 or a.`status` = '8' )");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ sql.append(" and a.sub_name like '" + subName + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(kind)) {
|
|
|
|
+ sql.append(" and a.kind = '" + kind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(propKind)) {
|
|
|
|
+ sql.append(" and a.prop_kind = '" + propKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(beginDate) && StringUtil.isNotEmpty(endDate)) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(beginDate).append("' and a.end_date >= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.begin_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append(" order by a.begin_date,a.create_time desc");
|
|
|
|
+ return (List<Map<String, Object>>) this.queryForObjListBySql(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Page pageQueryNew(Page page, LoginUserVO vo, SubInfoQueryTzVO queryVO) {
|
|
|
|
+ List<Map<String, String>> maps = null;
|
|
|
|
+ if(StringUtil.isEmpty(queryVO.getYear())) {
|
|
|
|
+ queryVO.setYear(String.valueOf(cn.hutool.core.date.DateUtil.thisYear()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (queryVO.getBeginDate() == null) {
|
|
|
|
+ queryVO.setBeginDate("1900-01-01 00:00:00");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getIsFix())){
|
|
|
|
+ queryVO.setQueryTimeType("4");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String yearStr = queryVO.getBeginDate().substring(0, 4);
|
|
|
|
+ HistoryVO historyVO = new HistoryVO();
|
|
|
|
+ historyVO.setYear(yearStr);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String beginYearMonth=yearStr+"01";
|
|
|
|
+ String endYearMonth=yearStr+"12";
|
|
|
|
+
|
|
|
|
+ //拼接月份
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getBeginDate())){
|
|
|
|
+ beginYearMonth=queryVO.getBeginDate().substring(0, 4)+queryVO.getBeginDate().substring(5,7);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+ endYearMonth=queryVO.getEndDate().substring(0, 4)+queryVO.getEndDate().substring(5,7);
|
|
|
|
+ }
|
|
|
|
+ PageHelper.startPage(page.getPageNo(), page.getPageSize());
|
|
|
|
+ if("2".equals(queryVO.getType())){
|
|
|
|
+ maps = subInfoMapper.pageQueryNew(beginYearMonth,endYearMonth,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId(), queryVO.getType());
|
|
|
|
+ }else if("JSDD".equals(queryVO.getType())){
|
|
|
|
+ maps = subInfoMapper.pageQueryJSDD(beginYearMonth,endYearMonth,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId(), queryVO.getType());
|
|
|
|
+ }else if("HYFL".equals(queryVO.getType())){
|
|
|
|
+ maps = subInfoMapper.pageQueryHYFL(beginYearMonth,endYearMonth,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId(), queryVO.getType());
|
|
|
|
+ }else if("PLD".equals(queryVO.getType())){
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
|
|
+ String lastMonth= "";
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+ LocalDate currentDate = LocalDate.parse(queryVO.getEndDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
|
+ LocalDate lastMonthDate = currentDate.minusMonths(1);
|
|
|
|
+ lastMonth = lastMonthDate.format(formatter);
|
|
|
|
+ }else{
|
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
|
+ LocalDate lastMonthDate = currentDate.minusMonths(1);
|
|
|
|
+ lastMonth = lastMonthDate.format(formatter);
|
|
|
|
+ }
|
|
|
|
+ endYearMonth=lastMonth.substring(0, 4)+lastMonth.substring(5,7);
|
|
|
|
+ maps = subInfoMapper.pageQueryPLD(beginYearMonth,endYearMonth,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId());
|
|
|
|
+
|
|
|
|
+ }else if("ZB".equals(queryVO.getType())){
|
|
|
|
+ LocalDate today = LocalDate.now();
|
|
|
|
+ DayOfWeek dayOfWeek = today.getDayOfWeek();
|
|
|
|
+
|
|
|
|
+ LocalDate startOfWeek;
|
|
|
|
+ LocalDate endOfWeek;
|
|
|
|
+
|
|
|
|
+ if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) {
|
|
|
|
+ // 获取本周周一
|
|
|
|
+ startOfWeek = today.with(DayOfWeek.MONDAY);
|
|
|
|
+ // 获取本周周日
|
|
|
|
+ endOfWeek = today.with(DayOfWeek.SUNDAY);
|
|
|
|
+ } else {
|
|
|
|
+ // 获取上周周一
|
|
|
|
+ startOfWeek = today.minusWeeks(1).with(DayOfWeek.MONDAY);
|
|
|
|
+ // 获取上周周日
|
|
|
|
+ endOfWeek = today.minusWeeks(1).with(DayOfWeek.SUNDAY);
|
|
|
|
+ }
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
|
+ String startDate = startOfWeek.format(formatter);
|
|
|
|
+ String endDate = endOfWeek.format(formatter);
|
|
|
|
+ if ("2".equals(queryVO.getFixCat()) && (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY || dayOfWeek == DayOfWeek.MONDAY)){
|
|
|
|
+ maps = subInfoMapper.pageQueryZB(beginYearMonth,endYearMonth,startDate,endDate,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId());
|
|
|
|
+ }else{
|
|
|
|
+ maps = subInfoMapper.pageQueryZB(beginYearMonth,endYearMonth,startDate,endDate,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId());
|
|
|
|
+ }
|
|
|
|
+ }else if("YB".equals(queryVO.getType())){
|
|
|
|
+ DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM");
|
|
|
|
+ String lastMonth= "";
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+ LocalDate currentDate = LocalDate.parse(queryVO.getEndDate(), DateTimeFormatter.ofPattern("yyyy-MM-dd"));
|
|
|
|
+ LocalDate lastMonthDate = currentDate.minusMonths(1);
|
|
|
|
+ lastMonth = lastMonthDate.format(formatter);
|
|
|
|
+ }else{
|
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
|
+ LocalDate lastMonthDate = currentDate.minusMonths(1);
|
|
|
|
+ lastMonth = lastMonthDate.format(formatter);
|
|
|
|
+ }
|
|
|
|
+ endYearMonth=lastMonth.substring(0, 4)+lastMonth.substring(5,7);
|
|
|
|
+ // 获取当前日期
|
|
|
|
+ LocalDate currentDate = LocalDate.now();
|
|
|
|
+ // 获取当前月份
|
|
|
|
+ int currentMonth = currentDate.getMonthValue();
|
|
|
|
+ if(currentMonth == 1){
|
|
|
|
+ LocalDate lastMonthDate = currentDate.minusMonths(1);
|
|
|
|
+ lastMonth = lastMonthDate.format(formatter);
|
|
|
|
+ queryVO.setYear(String.valueOf(currentDate.getYear()-1));
|
|
|
|
+ beginYearMonth=lastMonth.substring(0, 4)+"01";
|
|
|
|
+ endYearMonth=lastMonth.substring(0, 4)+"12";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ maps = subInfoMapper.pageQueryYB(beginYearMonth,endYearMonth,queryVO.getYear(), queryVO.getFixCat(), queryVO.getSubjectId());
|
|
|
|
+ }
|
|
|
|
+ PageInfo<Map<String, String>> pageInfo = new PageInfo<>(maps);
|
|
|
|
+ page.setList(maps);
|
|
|
|
+ page.setTotalCount(pageInfo.getTotal());
|
|
|
|
+ return page;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Page pageTZ(Page page, LoginUserVO vo, SubInfoQueryTzVO queryVO) {
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ if(StringUtil.isEmpty(queryVO.getYear())) {
|
|
|
|
+ queryVO.setYear(String.valueOf(cn.hutool.core.date.DateUtil.thisYear()));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (queryVO.getBeginDate() == null) {
|
|
|
|
+ queryVO.setBeginDate("1900-01-01 00:00:00");
|
|
|
|
+ }
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getIsFix())){
|
|
|
|
+ queryVO.setQueryTimeType("4");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String yearStr = queryVO.getBeginDate().substring(0, 4);
|
|
|
|
+ HistoryVO historyVO = new HistoryVO();
|
|
|
|
+ historyVO.setYear(yearStr);
|
|
|
|
+/* staicsMapper.historyLib(historyVO);*/
|
|
|
|
+ String subInfoTableName = "";
|
|
|
|
+
|
|
|
|
+ subInfoTableName = "sub_info";
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ String beginYearMonth=yearStr+"01";
|
|
|
|
+ String endYearMonth=yearStr+"12";
|
|
|
|
+
|
|
|
|
+ //拼接月份
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getBeginDate())){
|
|
|
|
+ beginYearMonth=queryVO.getBeginDate().substring(0, 4)+queryVO.getBeginDate().substring(5,7);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+ endYearMonth=queryVO.getEndDate().substring(0, 4)+queryVO.getEndDate().substring(5,7);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //3为计划投资 去掉 计划投资为0的 4为实际投资,去掉实际投资为 0的
|
|
|
|
+ if ("3".equals(queryVO.getAmtType())||"4".equals(queryVO.getAmtType())||"5".equals(queryVO.getAmtType())){
|
|
|
|
+
|
|
|
|
+ queryVO.setBeginDate(yearStr+"-01-01");
|
|
|
|
+ queryVO.setEndDate(yearStr+"-12-31");
|
|
|
|
+ sql.append(" select * from ( ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //20230816 增加联系人,负责人信息。 用于导出。
|
|
|
|
+ sql.append(" select if(us.id is NULL,0,1) as usersub,sum(sa.amt) yearAmt,sum(src.amt) yearAmtSj,sum(src.amt_rt) yearAmtRt,a.id,a.status_fgw, a.date_fgw,a.indus_kind indusKind,a.subject_id,a.name_lead,a.tel_lead,a.name_zrr,a.tel,a.sub_name as subName,a.kind,a.prop_kind as propKind,a.amt_total as amtTotal, a.reason, a.unit_id as unitId, ");
|
|
|
|
+ sql.append(" a.reason_no_rk as reasonNoRk,a.reason_no_amt as reasonNoAmt,a.reason_no_kg as reasonNoKg,a.reason_q as reasonq,a.reason_jd as reasonJd, a.is_rk as isRk, a.kind_nature, ");
|
|
|
|
+ sql.append(" IFNULL(a.amt_comp,0) as amtComp, IFNULL(num_total,0) as numTotal, IFNULL(a.num_comp,0) as numComp, ");
|
|
|
|
+ sql.append(" DATE_FORMAT(a.end_date,'%Y-%m-%d') as endDate,b.title as unitName, c.title as mainName,DATE_FORMAT(a.begin_date,'%Y-%m-%d') as beginDate,a.status,a.status_jh statusJh,a.status_sp statusSp,a.status_tg statusTg ");
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+ sql.append(", g.amt amtSource, t.title amtSourceName ");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if(Boolean.TRUE.equals(queryVO.getApp())) {
|
|
|
|
+ sql.append(", NOT ISNULL(sc.id) as isAttention ");
|
|
|
|
+ } else {
|
|
|
|
+ //sql.append(", (select sp.end_date FROM sub_plan as sp where sp.sub_id =a.id and sp.logic_delete_flag = 0 and sp.status_sp = '1' ) as planDate, ");
|
|
|
|
+ sql.append(" ,IFNULL((select sum(amt) from sub_amtplan sa where sa.sub_id = a.id and sa.y_month >= '"+beginYearMonth+"' and sa.y_month <= '"+endYearMonth+"' and not isnull(sa.amt) group by sa.sub_id) , 0) as yearPlanAmt, ");
|
|
|
|
+ sql.append(" IFNULL((select sum(amt) from sub_rpt_cont src where src.sub_id = a.id and src.kj_month >= '"+beginYearMonth+"' and src.kj_month <= '"+endYearMonth+"' and not isnull(src.amt) group by src.sub_id), 0) as yearEndAmt, ");
|
|
|
|
+ sql.append(" IFNULL((select sum(amt_rt) from sub_rpt_cont src5 where src5.sub_id = a.id and src5.kj_month >= '"+beginYearMonth+"' and src.kj_month <= '"+endYearMonth+"' and not isnull(src5.amt_rt) group by src5.sub_id), 0) as yearRtAmt ");
|
|
|
|
+ //sql.append(" (select count(1) from sub_start ss where ss.sub_id = a.id and ss.logic_delete_flag = 0 ) as hasStart, ");
|
|
|
|
+ //sql.append(" (select count(1) from sub_completed sc where sc.sub_id = a.id and sc.logic_delete_flag = 0) as hasEnd ");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ sql.append(" from "+subInfoTableName+" a ");
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON a.main_id = c.id ");
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+ sql.append(" LEFT JOIN sub_source g ON g.sub_id = a.id and g.logic_delete_flag=0");
|
|
|
|
+ sql.append(" LEFT JOIN t_systable t ON t.id = g.source_id and t.logic_delete_flag=0");
|
|
|
|
+ }
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify e ON a.id = e.sub_id AND e.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" LEFT JOIN sec_user_sub us ON a.id = us.sub_id AND us.logic_delete_flag =0 AND us.user_id='"+vo.getId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(queryVO.getBlSub())) {
|
|
|
|
+ //是否分管先项目
|
|
|
|
+ sql.append(" INNER JOIN sec_user_sub sus ON a.id = sus.sub_id AND sus.logic_delete_flag = 0 ");
|
|
|
|
+ }
|
|
|
|
+ if(Boolean.TRUE.equals(queryVO.getApp())) {
|
|
|
|
+ //是app查询则加上关注条件
|
|
|
|
+ sql.append(" LEFT JOIN sub_concern sc ON a.id = sc.sub_id and sc.user_id = '"+ vo.getId()+"' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+// //判断项目状态如果 查询在建已开工数 关联开工表
|
|
|
|
+// if(ProjectStatusEnum.YKG.getKey().equals(queryVO.getStatus())){
|
|
|
|
+// sql.append(" LEFT JOIN sub_start ss on ss.sub_id = a.id and ss.logic_delete_flag = 0 ");
|
|
|
|
+// }
|
|
|
|
+//
|
|
|
|
+// //判断项目状态如果 查询在建已开工数 关联开工表
|
|
|
|
+// if(ProjectStatusEnum.END.getKey().equals(queryVO.getStatus())){
|
|
|
|
+// sql.append(" LEFT JOIN sub_completed scd on scd.sub_id = a.id and scd.logic_delete_flag = 0 ");
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //20231205 增加项目 今年 年度计划投资,年度实际投资
|
|
|
|
+ SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy");
|
|
|
|
+ Date date=new Date();
|
|
|
|
+ String year= simpleDateFormat.format(date);
|
|
|
|
+
|
|
|
|
+ sql.append(" LEFT JOIN sub_amtplan sa ON sa.sub_id=a.id and sa.y_month like '"+year+"%' ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_rpt_cont src ON src.sub_id=a.id and src.kj_month like '"+year+"%' ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sql.append(" where a.logic_delete_flag = 0 ");
|
|
|
|
+ //2024-01-05修改该查询为大屏穿透专用,强制限定只能查询is_hide = 1的项目
|
|
|
|
+
|
|
|
|
+ //2024-05-08 添加参数用于查询储备项目。
|
|
|
|
+/* if (queryVO.getIsCb()!=null){
|
|
|
|
+ if (queryVO.getIsCb()){
|
|
|
|
+ sql.append(" and ( a.is_hide = '0' or a.is_hide is null ) ");
|
|
|
|
+ }else{
|
|
|
|
+ sql.append(" and a.is_hide = '1' ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else{
|
|
|
|
+ sql.append(" and a.is_hide = '1' ");
|
|
|
|
+ }*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sql.append(" AND a.status != '" + ProjectStatusEnum.TEMPSAVE.getKey()+"' ");
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.depart_id = '"+vo.getDepartId()+"' or e.depart_id = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.manage_id = '"+vo.getUnitId()+"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getHydw())) {
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ queryVO.getHydw()+"' or a.main_id = '"+queryVO.getHydw()+"' or d.manage_id = '"+queryVO.getHydw()+"' or e.unit_id = '"+queryVO.getHydw()+"' ) ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getKindNature())) {
|
|
|
|
+ sql.append(" AND a.kind_nature = '"+ queryVO.getKindNature()+"' ");
|
|
|
|
+ }
|
|
|
|
+ //是否在建
|
|
|
|
+ if(Objects.equals("1", queryVO.getIsZj())) {
|
|
|
|
+ //2024/6/3 在建包含 停工项目
|
|
|
|
+// sql.append(" and a.`status` <> '" + ProjectStatusEnum.STOP.getKey()+"' ");
|
|
|
|
+ sql.append(" and a.`status` <> '"+ ProjectStatusEnum.END.getKey()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getOtherStatus())) {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //判断项目状态如果 查询在建已开工数
|
|
|
|
+
|
|
|
|
+// if(ProjectStatusEnum.YKG.getKey().equals(queryVO.getOtherStatus())){
|
|
|
|
+//
|
|
|
|
+//// sql.append(" and ss.status = 9 " );
|
|
|
|
+//// if (StringUtil.isNotEmpty(queryVO.getBeginDate())&&StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+//// sql.append(" and ss.date_sq >= "+queryVO.getBeginDate()+ " and ss.date_sq <=" + queryVO.getEndDate() );
|
|
|
|
+//// }
|
|
|
|
+//
|
|
|
|
+//// sql.append(" and a.prop_kind = '1' "); //查询在建
|
|
|
|
+// sql.append(" AND (a.`status`='7' OR a.`status` = '8' OR a.`status` ='A') ");
|
|
|
|
+// }
|
|
|
|
+// else{
|
|
|
|
+
|
|
|
|
+ String[] split = queryVO.getOtherStatus().split(",");
|
|
|
|
+ sql.append("and (");
|
|
|
|
+ for(String st : split) {
|
|
|
|
+ sql.append(" a.`status` = '"+ st +"' or ");
|
|
|
|
+ }
|
|
|
|
+ sql.delete(sql.length()-3, sql.length());
|
|
|
|
+ sql.append(")");
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ else if(StringUtil.isNotEmpty(queryVO.getStatus())) {
|
|
|
|
+
|
|
|
|
+// //判断项目状态如果 查询在建已开工数 关联开工表
|
|
|
|
+// if(ProjectStatusEnum.YKG.getKey().equals(queryVO.getStatus())){
|
|
|
|
+//
|
|
|
|
+// sql.append(" and a.prop_kind = '1' "); //查询在建
|
|
|
|
+// sql.append(" AND (a.`status`='7' OR a.`status` = '8' OR a.`status` ='A') ");
|
|
|
|
+//// sql.append(" and ss.status = 9 " );
|
|
|
|
+//// if (StringUtil.isNotEmpty(queryVO.getBeginDate())&&StringUtil.isNotEmpty(queryVO.getEndDate())){
|
|
|
|
+//// sql.append(" and ss.date_sq >= "+queryVO.getBeginDate()+ " and ss.date_sq <=" + queryVO.getEndDate() );
|
|
|
|
+//// }
|
|
|
|
+// } else{
|
|
|
|
+
|
|
|
|
+ sql.append(" and a.`status` = '" + queryVO.getStatus() + "' ");
|
|
|
|
+
|
|
|
|
+// }
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" AND a.status != '" + ProjectStatusEnum.TEMPSAVE.getKey()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getSubName())) {
|
|
|
|
+ sql.append(" and a.sub_name like '" + queryVO.getSubName() + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getKind())) {
|
|
|
|
+ //遍历
|
|
|
|
+ String [] kinds=queryVO.getKind().split(",");
|
|
|
|
+ String sqlTemp="";
|
|
|
|
+ for (String temp:kinds){
|
|
|
|
+
|
|
|
|
+ sqlTemp=sqlTemp+ " INSTR (a.kind,'"+temp+"')>0 OR ";
|
|
|
|
+ }
|
|
|
|
+ //去掉最后的 OR
|
|
|
|
+ String sqlCheck=sqlTemp.substring(0,sqlTemp.length()-3);
|
|
|
|
+
|
|
|
|
+ sql.append(" AND ( "+sqlCheck+" )");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getPropKind())) {
|
|
|
|
+ if(queryVO.getPropKind().indexOf(",") > 0) {
|
|
|
|
+ sql.append(" and a.prop_kind IN (");
|
|
|
|
+ for(String propKind : queryVO.getPropKind().split(",")) {
|
|
|
|
+ sql.append("'").append(propKind).append("',");
|
|
|
|
+ }
|
|
|
|
+ sql.delete(sql.length()-1, sql.length());
|
|
|
|
+ sql.append(") ");
|
|
|
|
+ }else {
|
|
|
|
+ sql.append(" and a.prop_kind = '" + queryVO.getPropKind() + "' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getIndusKind())) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + queryVO.getIndusKind() + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getLight())) {
|
|
|
|
+ sql.append(" AND ( a.status_fgw IN (" + queryVO.getLight()+" ) ");
|
|
|
|
+ if(queryVO.getLight().contains("0")) {
|
|
|
|
+ sql.append(" or isnull(a.status_fgw) ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getAbc())) {
|
|
|
|
+ sql.append(" and a.abc = '" + queryVO.getAbc() + "' ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //20240307 判断是否逾期
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getIsYq())){
|
|
|
|
+
|
|
|
|
+ if ("1".equals(queryVO.getIsYq())){
|
|
|
|
+ sql.append(" and (a.`status` = '7' or a.`status` = '8' ) ");
|
|
|
|
+ sql.append(" AND a.end_date <= CURDATE() ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //查询年固定资产投资项目
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getIsFix())) {
|
|
|
|
+ if (queryVO.getIsFix().equals("1")) {
|
|
|
|
+ if (queryVO.getFixCat().contains(",")) {
|
|
|
|
+ sql.append(" and exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "' and (");
|
|
|
|
+ String[] ary = queryVO.getFixCat().split(",");
|
|
|
|
+ sql.append(" f.cat='" + ary[0] + "'");
|
|
|
|
+ for (int i = 1; i < ary.length; i++) {
|
|
|
|
+ sql.append(" or f.cat='" + ary[i] + "'");
|
|
|
|
+ }
|
|
|
|
+ sql.append(") )");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" and exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "' and f.cat='" + queryVO.getFixCat() + "') ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (queryVO.getIsFix().equals("0")) {
|
|
|
|
+ sql.append(" and not exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "') ");
|
|
|
|
+ }
|
|
|
|
+ if (queryVO.getIsFix().equals("2")) {
|
|
|
|
+ if (StringUtil.isNotEmpty(queryVO.getFixCat())) {
|
|
|
|
+ if (queryVO.getFixCat().contains(",")) {
|
|
|
|
+ sql.append(" and exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "' and (");
|
|
|
|
+ String[] ary = queryVO.getFixCat().split(",");
|
|
|
|
+ sql.append(" f.cat='" + ary[0] + "'");
|
|
|
|
+ for (int i = 1; i < ary.length; i++) {
|
|
|
|
+ sql.append(" or f.cat='" + ary[i] + "'");
|
|
|
|
+ }
|
|
|
|
+ sql.append(") )");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" and exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "' and f.cat='" + queryVO.getFixCat() + "') ");
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" and exists(select 1 from sub_fix f where a.id=f.sub_id and f.year='" + queryVO.getYear() + "') ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //20230530 增加资金来源
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+ sql.append(" and g.source_id = '" + queryVO.getZjly() + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getSubjectId())) {
|
|
|
|
+ sql.append(" and a.subject_id = '"+ queryVO.getSubjectId()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isEmpty(queryVO.getQueryTimeType())) {
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getBeginDate()) && StringUtil.isNotEmpty(queryVO.getEndDate())) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(queryVO.getBeginDate()).append("' and a.end_date >= '").append(queryVO.getEndDate()).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(queryVO.getBeginDate()).append("' and a.end_date <= '").append(queryVO.getEndDate()).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(queryVO.getBeginDate()).append("' and a.begin_date <= '").append(queryVO.getEndDate()).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(queryVO.getBeginDate()).append("' and a.end_date <= '").append(queryVO.getEndDate()).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ switch (queryVO.getQueryTimeType()) {
|
|
|
|
+ case "1":
|
|
|
|
+ //计划开工日期
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getBeginDate())) {
|
|
|
|
+ sql.append("AND a.begin_date >= '"+ queryVO.getBeginDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getEndDate())) {
|
|
|
|
+ sql.append(" AND a.begin_date <= '" + queryVO.getEndDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "2":
|
|
|
|
+ //计划结束日期
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getBeginDate())) {
|
|
|
|
+ sql.append("AND a.end_date >= '"+ queryVO.getBeginDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getEndDate())) {
|
|
|
|
+ sql.append(" AND a.end_date <= '" + queryVO.getEndDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ case "3":
|
|
|
|
+ //创建时间
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getBeginDate())) {
|
|
|
|
+ sql.append("AND a.create_time >= '"+ queryVO.getBeginDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getEndDate())) {
|
|
|
|
+ sql.append(" AND a.create_time <= '" + queryVO.getEndDate()+"' ");
|
|
|
|
+ }
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getStartAmt())) {
|
|
|
|
+ sql.append(" and a.amt_total >= '" + queryVO.getStartAmt() + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getEndAmt())) {
|
|
|
|
+ sql.append(" and a.amt_total < '" + queryVO.getEndAmt() + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getSbdw())) {
|
|
|
|
+ sql.append(" AND b.title like '%" + queryVO.getSbdw()+"%' ");
|
|
|
|
+ }
|
|
|
|
+ if(queryVO.getEndBl() != null|| queryVO.getEndBlPlus() !=null) {
|
|
|
|
+ //先查询存在计划投资金额的项目
|
|
|
|
+ StringBuffer planAmtSubIdQuery = new StringBuffer();
|
|
|
|
+ planAmtSubIdQuery.append(" SELECT sub_id,SUM(amt) as planAmt from sub_amtplan WHERE y_month RLIKE '"+queryVO.getYear()+"' and not isnull(amt) GROUP BY sub_id ");
|
|
|
|
+ List<Map<String, Object>> planAmtData = (List<Map<String, Object>>)this.queryForObjListBySql(planAmtSubIdQuery.toString());
|
|
|
|
+ Map<String, Object> bigSubMap = new HashMap<>();
|
|
|
|
+ if(CollectionUtil.isNotEmpty(planAmtData)) {
|
|
|
|
+ //筛选金额不为0的项目
|
|
|
|
+ bigSubMap.putAll(planAmtData.stream().filter(item->{
|
|
|
|
+ return BigDecimal.ZERO.compareTo(new BigDecimal(String.valueOf(item.get("planAmt")))) != 0;
|
|
|
|
+ }).collect(Collectors.toMap(i->String.valueOf(i.get("sub_id")), i->i.get("planAmt"), (a,b)->b)));
|
|
|
|
+ }
|
|
|
|
+ if(CollectionUtil.isNotEmpty(bigSubMap)) {
|
|
|
|
+ //再查询实际投资金额的项目
|
|
|
|
+ StringBuffer endAmtSubIdQuery = new StringBuffer();
|
|
|
|
+ endAmtSubIdQuery.append(" SELECT sub_id, SUM(amt) as endAmt from sub_rpt_cont where kj_month RLIKE '"+queryVO.getYear()+"' and not isnull(amt) GROUP BY sub_id ");
|
|
|
|
+ List<Map<String, Object>> endAmtData = (List<Map<String, Object>>)this.queryForObjListBySql(endAmtSubIdQuery.toString());
|
|
|
|
+ if(CollectionUtil.isNotEmpty(endAmtData)) {
|
|
|
|
+ List<String> moreThanSubId = endAmtData.stream().filter(item->{
|
|
|
|
+ //先筛选同时存在计划金额和实际金额的项目,并排除实际金额为0的数据
|
|
|
|
+ return bigSubMap.containsKey(String.valueOf(item.get("sub_id"))) && !Objects.equals(0, item.get("endAmt"));
|
|
|
|
+ }).filter(item->{
|
|
|
|
+ //筛选完成率大于查询条件的项目
|
|
|
|
+ BigDecimal planAmt = new BigDecimal(String.valueOf(bigSubMap.get(String.valueOf(item.get("sub_id")))));
|
|
|
|
+ BigDecimal endAmtValue = new BigDecimal(String.valueOf(item.get("endAmt")));
|
|
|
|
+
|
|
|
|
+ //判断两个比例都存在
|
|
|
|
+ if (queryVO.getEndBl() != null && queryVO.getEndBlPlus() !=null){
|
|
|
|
+ Boolean filter = endAmtValue.divide(planAmt, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).compareTo(queryVO.getEndBl()) >= 0 && endAmtValue.divide(planAmt, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).compareTo(queryVO.getEndBlPlus()) <= 0;
|
|
|
|
+ return filter;
|
|
|
|
+ }else if (queryVO.getEndBl()!=null){
|
|
|
|
+ Boolean filter = endAmtValue.divide(planAmt, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).compareTo(queryVO.getEndBl()) >= 0 ;
|
|
|
|
+ return filter;
|
|
|
|
+ }else if (queryVO.getEndBlPlus() !=null){
|
|
|
|
+ Boolean filter = endAmtValue.divide(planAmt, 2, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).compareTo(queryVO.getEndBlPlus()) <= 0 ;
|
|
|
|
+ return filter;
|
|
|
|
+ }else{
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
|
|
+ }).map(item->{return String.valueOf(item.get("sub_id"));}).collect(Collectors.toList());
|
|
|
|
+ if(CollectionUtil.isNotEmpty(moreThanSubId)) {
|
|
|
|
+ //满足条件的项目id加入查询
|
|
|
|
+ sql.append(" AND a.id IN (");
|
|
|
|
+ for(String inId : moreThanSubId) {
|
|
|
|
+ sql.append("'").append(inId).append("',");
|
|
|
|
+ }
|
|
|
|
+ sql.delete(sql.length()-1, sql.length());
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" AND a.id = '不存在' ");
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ sql.append(" AND a.id = '不存在' ");
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //不存在
|
|
|
|
+ sql.append(" AND a.id = '不存在' ");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ if(page != null) {
|
|
|
|
+ if(StringUtil.isNotEmpty(page.getOrderBy()) && page.getOrderType() != null) {
|
|
|
|
+
|
|
|
|
+// if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+// sql.append("order by g.amt desc ");
|
|
|
|
+//
|
|
|
|
+// }else{
|
|
|
|
+ sql.append(" order by usersub desc ,").append(CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, page.getOrderBy())).append(" ").append(page.getOrderType().name());
|
|
|
|
+// }
|
|
|
|
+ } else {
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+ sql.append("order by g.amt desc ");
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ sql.append(" order by usersub desc ,a.begin_date,a.create_time desc");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //3为计划投资 去掉 计划投资为0的 4为实际投资,去掉实际投资为 0的 5为入统金额
|
|
|
|
+ if ("3".equals(queryVO.getAmtType())||"4".equals(queryVO.getAmtType())||"5".equals(queryVO.getAmtType())){
|
|
|
|
+
|
|
|
|
+ sql.append(" ) t ");
|
|
|
|
+
|
|
|
|
+// if ("3".equals(queryVO.getAmtType())){
|
|
|
|
+// sql.append(" where t.yearAmt > 0 ");
|
|
|
|
+// }else if ("4".equals(queryVO.getAmtType())){
|
|
|
|
+// sql.append(" where t.yearAmtSj > 0 ");
|
|
|
|
+// }else{
|
|
|
|
+// sql.append(" where t.yearAmtRt > 0 ");
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+ return this.queryForListBySql(sql.toString(), page);
|
|
|
|
+ } else {
|
|
|
|
+ page = new Page();
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getZjly())) {
|
|
|
|
+ sql.append("order by g.amt desc ");
|
|
|
|
+
|
|
|
|
+ }else{
|
|
|
|
+ sql.append(" order by usersub desc ,a.begin_date,a.create_time desc");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //3为计划投资 去掉 计划投资为0的 4为实际投资,去掉实际投资为 0的
|
|
|
|
+ if ("3".equals(queryVO.getAmtType())||"4".equals(queryVO.getAmtType())||"5".equals(queryVO.getAmtType())){
|
|
|
|
+
|
|
|
|
+ sql.append(" ) t ");
|
|
|
|
+
|
|
|
|
+// if ("3".equals(queryVO.getAmtType())){
|
|
|
|
+// sql.append(" where t.yearAmt > 0 ");
|
|
|
|
+// }else if ("4".equals(queryVO.getAmtType())){
|
|
|
|
+// sql.append(" where t.yearAmtSj > 0 ");
|
|
|
|
+// }else{
|
|
|
|
+// sql.append(" where t.yearAmtRt > 0 ");
|
|
|
|
+// }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ page.setList(this.queryForObjListBySql(sql.toString()));
|
|
|
|
+ return page;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public Page pageDel(Page page,String subName){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ sql.append(" select a.id,a.status_fgw, a.date_fgw,a.indus_kind indusKind,a.subject_id,a.name_lead,a.tel_lead,a.name_zrr,a.tel,a.sub_name as subName,a.kind,a.prop_kind as propKind,a.amt_total as amtTotal, a.reason, a.unit_id as unitId, ");
|
|
|
|
+ sql.append(" a.reason_no_rk as reasonNoRk,a.reason_no_amt as reasonNoAmt,a.reason_no_kg as reasonNoKg,a.reason_q as reasonq,a.reason_jd as reasonJd, a.is_rk as isRk, a.kind_nature, ");
|
|
|
|
+ sql.append(" IFNULL(a.amt_comp,0) as amtComp, IFNULL(num_total,0) as numTotal, IFNULL(a.num_comp,0) as numComp, ");
|
|
|
|
+ sql.append(" DATE_FORMAT(a.end_date,'%Y-%m-%d') as endDate,b.title as unitName, c.title as mainName,DATE_FORMAT(a.begin_date,'%Y-%m-%d') as beginDate,a.status,a.status_jh statusJh,a.status_sp statusSp,a.status_tg statusTg ");
|
|
|
|
+
|
|
|
|
+ //20231205 增加项目 今年 年度计划投资,年度实际投资
|
|
|
|
+ SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy");
|
|
|
|
+ Date date=new Date();
|
|
|
|
+ String year= simpleDateFormat.format(date);
|
|
|
|
+
|
|
|
|
+ sql.append(" ,IFNULL((select sum(amt) from sub_amtplan sa where sa.sub_id = a.id and sa.y_month rlike '"+year+"' and not isnull(sa.amt) group by sa.sub_id) , 0) as yearPlanAmt, ");
|
|
|
|
+ sql.append(" IFNULL((select sum(amt) from sub_rpt_cont src where src.sub_id = a.id and src.kj_month rlike '"+year+"' and not isnull(src.amt) group by src.sub_id), 0) as yearEndAmt ");
|
|
|
|
+
|
|
|
|
+ sql.append(" from sub_info a ");
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON a.main_id = c.id ");
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ sql.append(" where a.logic_delete_flag=0 ");
|
|
|
|
+
|
|
|
|
+ if (StringUtil.isNotEmpty(subName)){
|
|
|
|
+ sql.append(" and a.sub_name like '%"+subName+"%' ");
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ return this.queryForListBySql(sql.toString(), page);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 资金计划统计分析
|
|
|
|
+ * @param vo
|
|
|
|
+ * @param subName
|
|
|
|
+ * @param kind
|
|
|
|
+ * @param propKind
|
|
|
|
+ * @param indusKind
|
|
|
|
+ * @param status
|
|
|
|
+ * @param beginDateStart
|
|
|
|
+ * @param beginDateEnd
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public List<Map<String,Object>> queryProjectsAmt(LoginUserVO vo,String subName, String kind,
|
|
|
|
+ String propKind, String indusKind, String subjectId, String status, String beginDate, String endDate, Boolean containHide, String zjly){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+
|
|
|
|
+ sql.append(" select if(us.id is NULL,0,1) as usersub,a.id,a.sub_name as subName,a.kind,a.prop_kind as propKind,a.amt_total as amtTotal,a.amt_year as amtYear, a.reason, ");
|
|
|
|
+ sql.append(" IFNULL(a.amt_comp,0) as amtComp, IFNULL(num_total,0) as numTotal, IFNULL(a.num_comp,0) as numComp, ");
|
|
|
|
+ sql.append(" DATE_FORMAT(a.end_date,'%Y-%m-%d') as endDate,b.title as unitName, c.title as manageName,DATE_FORMAT(a.begin_date,'%Y-%m-%d') as beginDate,a.status,a.status_jh statusJh ");
|
|
|
|
+ sql.append(" ,(select sp.end_date FROM sub_plan as sp where sp.sub_id =a.id and sp.logic_delete_flag = 0 and sp.status_sp = '1' ) as planDate ");
|
|
|
|
+
|
|
|
|
+ sql.append(" from sub_info a ");
|
|
|
|
+
|
|
|
|
+ sql.append(" left join j_unit b on a.unit_id = b.id ");
|
|
|
|
+ sql.append(" LEFT JOIN j_unit c ON a.manage_id = c.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify e ON e.sub_id = a.id AND e.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_source ss ON ss.sub_id = a.id AND ss.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sec_user_sub us ON a.id = us.sub_id AND us.logic_delete_flag =0 AND us.user_id='"+vo.getId()+"' ");
|
|
|
|
+ sql.append(" where a.logic_delete_flag = 0 and a.status <> '0' ");
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.depart_id = '"+vo.getDepartId()+"' or e.depart_id = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.manage_id = '"+vo.getUnitId()+"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ //是否包含隐藏
|
|
|
|
+/* if(Boolean.FALSE.equals(containHide)) {
|
|
|
|
+ sql.append(" and (isnull(a.is_hide) or a.is_hide = '0') ");
|
|
|
|
+ }*/
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ sql.append(" and a.`status` = '" + status + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ sql.append(" and a.sub_name like '%" + subName + "%' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(kind)) {
|
|
|
|
+ //遍历
|
|
|
|
+ String [] kinds=kind.split(",");
|
|
|
|
+ String sqlTemp="";
|
|
|
|
+ for (String temp:kinds){
|
|
|
|
+
|
|
|
|
+ sqlTemp=sqlTemp+ " INSTR (a.kind,'"+temp+"')>0 OR ";
|
|
|
|
+ }
|
|
|
|
+ //去掉最后的 OR
|
|
|
|
+ String sqlCheck=sqlTemp.substring(0,sqlTemp.length()-3);
|
|
|
|
+
|
|
|
|
+ sql.append(" AND ( "+sqlCheck+" )");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(propKind)) {
|
|
|
|
+ sql.append(" and a.prop_kind = '" + propKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subjectId)) {
|
|
|
|
+ sql.append(" and a.subject_id = '" + subjectId +"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" AND ss.source_id = '" + zjly+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(beginDate) && StringUtil.isNotEmpty(endDate)) {
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(beginDate).append("' and a.end_date >= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.begin_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ }
|
|
|
|
+ //sql.append(" and (a.`status` in('2','7','9') or (a.`status`='1' and a.status_sp='9' ) or a.`status` = '0') ");
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append(" order by usersub desc, a.begin_date,a.create_time desc");
|
|
|
|
+ return (List<Map<String,Object>>)this.queryForObjListBySql(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> queryProjectsIndusKind(LoginUserVO vo,String subName, String kind,
|
|
|
|
+ String propKind, String indusKind, String status, String beginDateStart, String beginDateEnd, Boolean containHide, String zjly){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ sql.append(" SELECT COUNT(*) num,title FROM ( ");
|
|
|
|
+ sql.append(" SELECT a.id, b.title,a.indus_kind ");
|
|
|
|
+ sql.append(" FROM sub_info a ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify e ON e.sub_id = a.id AND e.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_source ss ON ss.sub_id = a.id AND ss.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN t_systable b on a.indus_kind=b.id ");
|
|
|
|
+ sql.append(" where a.logic_delete_flag = 0 and a.status <> '0' ");
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.depart_id = '"+vo.getDepartId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.manage_id = '"+vo.getUnitId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId() +"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+/* if(Boolean.FALSE.equals(containHide)) {
|
|
|
|
+ sql.append(" and (isnull(a.is_hide) or a.is_hide = '0') ");
|
|
|
|
+ }*/
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ sql.append(" and a.`status` = '" + status + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ sql.append(" and a.sub_name like '" + subName + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(kind)) {
|
|
|
|
+ sql.append(" and a.kind = '" + kind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(propKind)) {
|
|
|
|
+ sql.append(" and a.prop_kind = '" + propKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(beginDateStart)) {
|
|
|
|
+ sql.append(" and a.end_date >= '" + beginDateStart + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(beginDateEnd)) {
|
|
|
|
+ sql.append(" and a.end_date <= '" + beginDateEnd + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" AND ss.source_id = '"+ zjly+"' ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ) tem ");
|
|
|
|
+ sql.append(" GROUP BY indus_kind ");
|
|
|
|
+ return (List<Map<String,Object>>)this.queryForObjListBySql(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public List<Map<String,Object>> queryProjectsBuildAddreee(LoginUserVO vo, String indusKind, String year, String zjly){
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ sql.append(" SELECT sum(amt) amtTotal,title,subject_id subjectId ");
|
|
|
|
+ sql.append(" FROM ( ");
|
|
|
|
+ sql.append(" SELECT src.id, src.amt, b.title, a.subject_id ");
|
|
|
|
+ sql.append(" FROM sub_rpt_cont src LEFT JOIN sub_info a ON src.sub_id = a.id ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify e ON a.id = e.sub_id AND e.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN t_systable b on a.subject_id=b.code AND b.kind = 'JSDD' ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_source ss ON ss.sub_id = a.id ");
|
|
|
|
+ sql.append(" where src.logic_delete_flag = 0 AND a.logic_delete_flag = 0 AND src.kind = '1' ");
|
|
|
|
+ if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ vo.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.depart_id = '"+vo.getDepartId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.manage_id = '"+vo.getUnitId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId()+"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" and a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(year)) {
|
|
|
|
+ sql.append(" and src.kj_month LIKE '" + year + "%' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" ANd ss.source_id = '"+ zjly+"' ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY src.id ) tem ");
|
|
|
|
+ sql.append(" WHERE not ISNULL(amt) ");
|
|
|
|
+ sql.append(" GROUP BY subject_id ");
|
|
|
|
+ return (List<Map<String,Object>>)this.queryForObjListBySql(sql.toString());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ 1.状态不等与0,7,8,9 状态不管
|
|
|
|
+ 2.政府 个人 查自己的项目
|
|
|
|
+ 3.单位查整个单位项目
|
|
|
|
+ 4.1-政府机构用户 2-申请单位用户
|
|
|
|
+ */
|
|
|
|
+ public Page querysubInfo(Page page, LoginUserVO loginUser,String subName,String status) {
|
|
|
|
+
|
|
|
|
+ DetachedCriteria detachedCriteria=DetachedCriteria.forClass(SubInfo.class);
|
|
|
|
+ Criterion criterion = Restrictions.eq("logicDeleteFlag", 0);
|
|
|
|
+ criterion = Restrictions.and(criterion,
|
|
|
|
+ Restrictions.or(Restrictions.eq("createUserId", loginUser.getId()), Restrictions.eq("unitId", loginUser.getUnitId())));
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ criterion = Restrictions.and(criterion, Restrictions.like("subName", subName, MatchMode.ANYWHERE));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ criterion = Restrictions.and(criterion, Restrictions.eq("status",status));
|
|
|
|
+ }
|
|
|
|
+ detachedCriteria.add(criterion);
|
|
|
|
+ detachedCriteria.addOrder( Order.desc("createTime"));
|
|
|
|
+ return this.pagedQuery(page,detachedCriteria);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public Page queryInfo(Page page, String subjectId,String subName,String status) {
|
|
|
|
+
|
|
|
|
+ DetachedCriteria detachedCriteria=DetachedCriteria.forClass(SubInfo.class);
|
|
|
|
+ Criterion criterion = Restrictions.eq("logicDeleteFlag", 0);
|
|
|
|
+ if(StringUtil.isNotEmpty(subjectId)) {
|
|
|
|
+ criterion = Restrictions.and(criterion, Restrictions.eq("subjectId", subjectId));
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subName)) {
|
|
|
|
+ criterion = Restrictions.and(criterion, Restrictions.like("subName", subName, MatchMode.ANYWHERE));
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(status)) {
|
|
|
|
+ criterion = Restrictions.and(criterion, Restrictions.eq("status",status));
|
|
|
|
+ }
|
|
|
|
+ detachedCriteria.add(criterion);
|
|
|
|
+ detachedCriteria.addOrder( Order.desc("createTime"));
|
|
|
|
+ return this.pagedQuery(page,detachedCriteria);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ public Map<String, Object> amtStatics(LoginUserVO loginUser, String year, String indusKind, String subjectId, String zjly) {
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ sql.append(" SELECT ");
|
|
|
|
+ sql.append(" ifnull(sum(if(amt_total < 10000,1,0)),0) numAmt1, ");
|
|
|
|
+ sql.append(" ifnull(sum(if(amt_total >= 10000 AND amt_total < 50000, 1,0 )),0) numAmt2, ");
|
|
|
|
+ sql.append(" ifnull(sum(if(amt_total >= 50000 AND amt_total < 100000, 1,0)),0) numAmt3, ");
|
|
|
|
+ sql.append(" ifnull(sum(if(amt_total >= 100000, 1,0)),0) numAmt4 ");
|
|
|
|
+ sql.append(" FROM ");
|
|
|
|
+ sql.append(" ( select a.id, a.amt_total from sub_info a ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage d ON a.id = d.sub_id AND d.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify e ON a.id = e.sub_id AND e.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_source ss ON ss.sub_id = a.id AND ss.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" WHERE a.logic_delete_flag = 0 and a.status <> '"+ProjectStatusEnum.TEMPSAVE.getKey()+"' ");
|
|
|
|
+ if(Objects.equals(loginUser.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ loginUser.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(loginUser.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ loginUser.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(loginUser.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", loginUser.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ //sql.append(" AND ( a.unit_id = '"+ vo.getUnitId()+"' or a.main_id = '"+vo.getUnitId()+"' or d.depart_id = '"+vo.getDepartId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId()+"' ) ");
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ loginUser.getUnitId()+"' or a.main_id = '"+loginUser.getUnitId()+"' or d.manage_id = '"+loginUser.getUnitId()+"' or a.approve_departid = '"+loginUser.getDepartId()+"' or a.approve_departid2 = '"+loginUser.getDepartId()+"' or e.unit_id = '"+loginUser.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ String beginDate = year + "-01-01";
|
|
|
|
+ String endDate = year + "-12-31";
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(beginDate).append("' and a.end_date >= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.begin_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" AND a.indus_kind = '" + indusKind + "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subjectId)){
|
|
|
|
+ sql.append(" AND a.subject_id = '" + subjectId +"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" AND ss.source_id = '"+ zjly+"' ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append(" ) as tem ");
|
|
|
|
+ List<Map<String, Object>> list = (List<Map<String, Object>>)this.queryForObjListBySql(sql.toString());
|
|
|
|
+ return CollectionUtil.isNotEmpty(list) ? list.get(0) : new HashMap<>();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 查询在建项目,为统计app首页在建
|
|
|
|
+ * @param userVO
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ public Map<String, BigDecimal> findBuilding(String year, String indusKind, String subjectId, LoginUserVO userVO, String zjly) {
|
|
|
|
+ StringBuffer sql = new StringBuffer();
|
|
|
|
+ sql.append(" SELECT IFNULL(SUM(1),0) total, SUM(if(`status` = '7', 1, 0)) as doing, SUM(if(`status` = '8',1,0)) as stop, SUM(if(`status` = 'A', 1,0)) as end ");
|
|
|
|
+ sql.append(" FROM ( ");
|
|
|
|
+ sql.append(" SELECT a.id, a.`status` ");
|
|
|
|
+ sql.append(" FROM sub_info a ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_manage b ON a.id = b.sub_id AND b.logic_delete_flag =0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_verify c ON a.id = c.sub_id AND c.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" LEFT JOIN sub_source ss ON ss.sub_id = a.id AND ss.logic_delete_flag = 0 ");
|
|
|
|
+ sql.append(" WHERE a.logic_delete_flag = 0");
|
|
|
|
+ String beginDate = year + "-01-01";
|
|
|
|
+ String endDate = year + "-12-31";
|
|
|
|
+ sql.append(" and (");
|
|
|
|
+ sql.append(" (a.begin_date <= '").append(beginDate).append("' and a.end_date >= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.begin_date >= '").append(beginDate).append("' and a.begin_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" or (a.end_date >= '").append(beginDate).append("' and a.end_date <= '").append(endDate).append("') ");
|
|
|
|
+ sql.append(" ) ");
|
|
|
|
+ if(Objects.equals(userVO.getKindUnit(), UserKindUnitEnum.SBDW.getCode())) {
|
|
|
|
+ //项目单位
|
|
|
|
+ sql.append(" AND a.unit_id = '"+ userVO.getUnitId()+"' ");
|
|
|
|
+ if(Boolean.TRUE.equals(userVO.getIsUnit())) {
|
|
|
|
+ //单位用户,看单位全部的
|
|
|
|
+ } else {
|
|
|
|
+ //个人用户,看自己申报的
|
|
|
|
+ sql.append(" AND a.create_user_id = '"+ userVO.getId() +"' ");
|
|
|
|
+ }
|
|
|
|
+ } else if(Objects.equals(userVO.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
|
+ //政府单位
|
|
|
|
+ if(Objects.equals("0", userVO.getStatusProj())) {
|
|
|
|
+ //看自己部门监管的或者监管单位或审批的
|
|
|
|
+ sql.append(" AND ( a.unit_id = '"+ userVO.getUnitId()+"' or a.main_id = '"+userVO.getUnitId()+"' or b.manage_id = '"+userVO.getUnitId()+"' or a.approve_departid = '"+userVO.getDepartId()+"' or a.approve_departid2 = '"+userVO.getDepartId()+"' or c.unit_id = '"+userVO.getUnitId()+"' ) ");
|
|
|
|
+ } else {
|
|
|
|
+ //看所有的
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(indusKind)) {
|
|
|
|
+ sql.append(" AND a.indus_kind = '"+ indusKind+"' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(subjectId)) {
|
|
|
|
+ sql.append(" AND a.subject_id = '" + subjectId+ "' ");
|
|
|
|
+ }
|
|
|
|
+ if(StringUtil.isNotEmpty(zjly)) {
|
|
|
|
+ sql.append(" AND ss.source_id = '"+ zjly+"' ");
|
|
|
|
+ }
|
|
|
|
+ sql.append(" AND a.prop_kind = '1' and (a.`status` = '7' or a.`status` = '8' or a.`status` = 'A') ");//新建项目
|
|
|
|
+ sql.append(" GROUP BY a.id ");
|
|
|
|
+ sql.append(" ) as tmp ");
|
|
|
|
+ List<?> list = queryForObjListBySql(sql.toString());
|
|
|
|
+ return CollectionUtil.isNotEmpty(list) ? (Map<String, BigDecimal>)list.get(0) : Collections.emptyMap();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public SubInfo getBySubName(String subName) {
|
|
|
|
+ DetachedCriteria detachedCriteria = DetachedCriteria.forClass(SubInfo.class);
|
|
|
|
+ Criterion criterion = Restrictions.and(Restrictions.eq("logicDeleteFlag", 0),
|
|
|
|
+ Restrictions.eq("subName", subName));
|
|
|
|
+ detachedCriteria.add(criterion);
|
|
|
|
+ List<SubInfo> list = find(detachedCriteria);
|
|
|
|
+ return CollectionUtil.isNotEmpty(list) ? list.get(0) : null;
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public List<SubInfo> findFixList(SubInfoQueryTzVO queryTzVO){
|
|
|
|
+ DetachedCriteria detachedCriteria = DetachedCriteria.forClass(SubInfo.class);
|
|
|
|
+ Criterion criterion = Restrictions.and(
|
|
|
|
+ Restrictions.eq("logicDeleteFlag", 0),
|
|
|
|
+ Restrictions.eq("isHide", "1"),
|
|
|
|
+ Restrictions.eq("isFix", "1"),
|
|
|
|
+ Restrictions.eq("stateFix", queryTzVO.getStateFix())
|
|
|
|
+ );
|
|
|
|
+ detachedCriteria.add(criterion);
|
|
|
|
+
|
|
|
|
+ List<SubInfo> list = find(detachedCriteria);
|
|
|
|
+ return list;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ public Map<String,Object> beginCount(SubInfoQueryTzVO queryTzVO){
|
|
|
|
+ return subInfoMapper.beginCount(queryTzVO.getSubjectId(),queryTzVO.getStatus());
|
|
|
|
+ }
|
|
|
|
+}
|