package com.product.badge.service;
|
|
import com.product.admin.service.PublicService;
|
import com.product.badge.config.CmnConst;
|
import com.product.common.lang.StringUtils;
|
import com.product.core.dao.BaseDao;
|
import com.product.core.entity.DataTableEntity;
|
import com.product.core.entity.FieldSetEntity;
|
import com.product.core.service.support.AbstractBaseService;
|
import com.product.core.service.support.QueryFilterService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* Copyright © 6c
|
*
|
* @Date: 2021-06-29 16:30
|
* @Author: 6c
|
* @Description:
|
*/
|
@Service
|
public class BadgeService extends AbstractBaseService {
|
@Autowired
|
public BaseDao baseDao;
|
@Autowired
|
public QueryFilterService queryFilterService;
|
@Autowired
|
public PublicService publicService;
|
|
/**
|
* 列表台账
|
* @param fse
|
* @return
|
*/
|
public DataTableEntity listTable(FieldSetEntity fse) {
|
StringBuilder sql = new StringBuilder(512);
|
sql.append("select * from (");
|
sql.append("\nselect d.uuid,org_level_uuid,badge_name,badge_level,holder,badge_type,ifnull(badge_status,'未借出') badge_status,borrow_by,borrow_time,return_date,flow_flag");
|
sql.append("\nfrom ").append(fse.getTableName()).append(" d");
|
sql.append("\nleft join ( ");
|
sql.append("\n select b.* from ( ");
|
sql.append("\n select s.uuid,m.created_by borrow_by,m.created_utc_datetime borrow_time,s.return_by,s.return_date,badge_uuid, ");
|
sql.append("\n case when s.return_by is null or s.return_by='' then '借出' else '归还' END badge_status ");
|
sql.append("\n from product_oa_badge_borrow_record m ");
|
sql.append("\n left join product_oa_badge_borrow_detail s ");
|
sql.append("\n on m.uuid=s.record_uuid ");
|
sql.append("\n ) b ");
|
sql.append("\n inner join ( ");
|
sql.append("\n select uuid,max(created_utc_datetime) last_borrow_time ");
|
sql.append("\n from ( ");
|
sql.append("\n select s.uuid,m.created_utc_datetime ");
|
sql.append("\n from product_oa_badge_borrow_record m ");
|
sql.append("\n left join product_oa_badge_borrow_detail s ");
|
sql.append("\n on m.uuid=s.record_uuid ");
|
sql.append("\n ) b ");
|
sql.append("\n group by uuid ");
|
sql.append("\n ) t ");
|
sql.append("\n on b.uuid=t.uuid and b.borrow_time=t.last_borrow_time ");
|
sql.append("\n) b ");
|
sql.append("\non d.uuid=b.badge_uuid ");
|
sql.append("\n) a ");
|
|
|
String filter = publicService.getListFilter(fse, 0);
|
|
if (!StringUtils.isEmpty(filter)) {
|
sql.append(" where ").append(filter);
|
}
|
int pageSize = fse.getInteger(CmnConst.PAGE_SIZE) == null ? Integer.MAX_VALUE : fse.getInteger(CmnConst.PAGE_SIZE);
|
int curPage = fse.getInteger(CmnConst.CUR_PAGE) == null ? 1 : fse.getInteger(CmnConst.CUR_PAGE);
|
DataTableEntity dte = baseDao.listTable(sql.toString(), new Object[]{}, pageSize, curPage);
|
dte.getMeta().addAliasTable(fse.getTableName(),"d");
|
baseDao.loadPromptData(dte);
|
return dte;
|
}
|
}
|