| | |
| | | import com.product.core.entity.FieldSetEntity; |
| | | import com.product.core.service.support.AbstractBaseService; |
| | | import com.product.core.service.support.QueryFilterService; |
| | | import com.product.util.UnifySQLFunction; |
| | | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | |
| | | */ |
| | | 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("\nselect * from ("); |
| | | sql.append("\n select d.uuid,org_level_uuid,badge_name,badge_level,holder,badge_type,borrow_by,borrow_time,return_date,flow_flag,"); |
| | | sql.append("\n ").append(UnifySQLFunction.ifnull("badge_status", "'未借出'", "badge_status")); |
| | | sql.append("\n from ").append(fse.getTableName()).append(" d"); |
| | | sql.append("\n left 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 ) 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 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 ) t "); |
| | | sql.append("\n on b.uuid=t.uuid and b.borrow_time=t.last_borrow_time "); |
| | | sql.append("\n ) b on d.uuid=b.badge_uuid "); |
| | | sql.append("\n) a "); |
| | | |
| | | |
| | | String filter = publicService.getListFilter(fse, 0); |
| | | |
| | | if (!StringUtils.isEmpty(filter)) { |