|
@@ -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 ( ");
|
|
|
+
|
|
|
+ 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.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+ "' ");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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.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 ");
|
|
|
+
|
|
|
+ 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){
|
|
|
+
|
|
|
+ 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') ");
|
|
|
+
|
|
|
+
|
|
|
+ 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())) {
|
|
|
+
|
|
|
+
|
|
|
+ planBaseSql.append(" AND b.unit_id = '"+ vo.getUnitId()+"' ");
|
|
|
+
|
|
|
+ if(Boolean.TRUE.equals(vo.getIsUnit())) {
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+
|
|
|
+ planBaseSql.append(" AND b.create_user_id = '"+ vo.getId() +"' ");
|
|
|
+
|
|
|
+ }
|
|
|
+ } else if(Objects.equals(vo.getKindUnit(), UserKindUnitEnum.ZFDW.getCode())) {
|
|
|
+
|
|
|
+ if(Objects.equals("0", vo.getStatusProj())) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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()+"' ) ");
|
|
|
+
|
|
|
+ } 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);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ String subPlanOver = planBaseSql.toString()+ " AND b.end_date <= CURDATE() ";
|
|
|
+
|
|
|
+ String subPlanWillOver = planBaseSql.toString() + " AND b.end_date > CURDATE() AND b.end_date <= '"+ybDayStr+"' ";
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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, Object> result= new HashMap<>();
|
|
|
+
|
|
|
+
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+*/
|
|
|
+
|
|
|
+
|
|
|
+ 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;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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()+" ");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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 ";
|
|
|
+ }
|
|
|
+
|
|
|
+ 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() +"' ");
|
|
|
+ }
|
|
|
+
|
|
|
+ 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);
|
|
|
+
|
|
|
+ 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);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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 ( ");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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(" ,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(" 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())) {
|
|
|
+
|
|
|
+ sql.append(" LEFT JOIN sub_concern sc ON a.id = sc.sub_id and sc.user_id = '"+ vo.getId()+"' ");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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 ");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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.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())) {
|
|
|
+
|
|
|
+
|
|
|
+ sql.append(" and a.`status` <> '"+ ProjectStatusEnum.END.getKey()+"' ");
|
|
|
+ }
|
|
|
+ if(StringUtil.isNotEmpty(queryVO.getOtherStatus())) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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())) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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 ";
|
|
|
+ }
|
|
|
+
|
|
|
+ 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() + "' ");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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() + "') ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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)) {
|
|
|
+
|
|
|
+ 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->{
|
|
|
+
|
|
|
+ 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)) {
|
|
|
+
|
|
|
+ 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) {
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ 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");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if ("3".equals(queryVO.getAmtType())||"4".equals(queryVO.getAmtType())||"5".equals(queryVO.getAmtType())){
|
|
|
+
|
|
|
+ sql.append(" ) t ");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ 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");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if ("3".equals(queryVO.getAmtType())||"4".equals(queryVO.getAmtType())||"5".equals(queryVO.getAmtType())){
|
|
|
+
|
|
|
+ sql.append(" ) t ");
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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 ");
|
|
|
+
|
|
|
+
|
|
|
+ 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.manage_id = '"+vo.getUnitId()+"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ 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 ";
|
|
|
+ }
|
|
|
+
|
|
|
+ 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(" 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.manage_id = '"+vo.getUnitId()+"' or a.approve_departid = '"+vo.getDepartId()+"' or a.approve_departid2 = '"+vo.getDepartId() +"' or e.unit_id = '"+vo.getUnitId()+"' ) ");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ 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.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 = '"+ 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());
|
|
|
+ }
|
|
|
+}
|