housequery
建档审核功能
This commit is contained in:
2021-06-29 16:18:57 +08:00
parent 3d5c776362
commit 4ce3abcf02
12 changed files with 192 additions and 38 deletions

View File

@@ -626,6 +626,11 @@
房屋详细信息
</summary>
</member>
<member name="T:Ewide.Application.Service.HouseSafety.HouseQuery.HouseQueryService">
<summary>
住宅查询
</summary>
</member>
<member name="M:Ewide.Application.Service.HouseMemberService.QueryMemberPageList(Ewide.Core.Service.UserInput)">
<summary>
分页查询用户

View File

@@ -0,0 +1,14 @@
using Ewide.Core;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Application
{
public class HouseQueryInput: PageInputBase
{
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Application
{
public class HouseQueryOutput
{
}
}

View File

@@ -0,0 +1,48 @@
using Dapper;
using Ewide.Core.Extension;
using Furion.DatabaseAccessor;
using Furion.DependencyInjection;
using Furion.DynamicApiController;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Application.Service.HouseSafety.HouseQuery
{
/// <summary>
/// 住宅查询
/// </summary>
[ApiDescriptionSettings(Name = "HouseQuery", Order = 210)]
public class HouseQueryService : IHouseQueryService, IDynamicApiController, ITransient
{
private readonly IRepository<BsHouseCode> _houseCodeRep;
private readonly IRepository<BsHouseInfo> _houseInfoRep;
private readonly IRepository<BsHouseTask> _houseTaskRep;
private readonly IDapperRepository _dapperRepository;
public HouseQueryService(IRepository<BsHouseCode> HouseCodeRep, IRepository<BsHouseInfo> HouseInfoRep, IRepository<BsHouseTask> HouseTaskRep, IDapperRepository dapperRepository)
{
_houseCodeRep = HouseCodeRep;
_houseInfoRep = HouseInfoRep;
_houseTaskRep = HouseTaskRep;
_dapperRepository = dapperRepository;
}
[HttpPost("/houseQuery/page")]
public async Task<dynamic> QueryPage([FromBody] HouseQueryInput input)
{
var sql = @"SELECT HC.ID,HC.HouseCode,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,CA.AdCode AreaCode,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName,HC.Address,IFNULL(HI.BuildingName,'') BuildingName,IFNULL(HI.TotalFloor,0) TotalFloor,IFNULL(HI.TotalArea,0) TotalArea,HI.LandAttribute,IFNULL(HI.HouseGrade,0) HouseGrade,HC.Type,HC.No,HI.State FROM bs_house_code HC
LEFT JOIN bs_house_info HI ON HI.HouseCodeId = HC.Id
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId
LEFT JOIN sys_area_code CA ON CA.Code = Proj.AreaCode
LEFT JOIN sys_area_code RA ON RA.AdCode = SUBSTR(CA.AdCode,1,9)
LEFT JOIN sys_area_code AA ON AA.AdCode = SUBSTR(CA.AdCode,1,6)
WHERE 1=1";
return await _dapperRepository.QueryPageDataDynamic(sql, input, filterFields: new string[] { "HouseCode", "Address", "BuildingName", "State", "AreaCode", "LandAttribute", "HouseGrade" });
}
}
}

View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Ewide.Application.Service.HouseSafety.HouseQuery
{
public interface IHouseQueryService
{
}
}

View File

@@ -40,7 +40,7 @@ namespace Ewide.Application.Service
[HttpPost("/houseTask/page")]
public async Task<dynamic> QueryPage([FromBody] QueryHouseTaskInput input)
{
var sql = @"SELECT T.Id,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName,HC.HouseCode,HC.Address,T.EndTime,HC.Type,HC.Industry,HC.No FROM `bs_house_task` T
var sql = @"SELECT T.Id,AA.Name AreaName,RA.Name RoadName,CA.Name CommName,Proj.AreaCode,Proj.Note,Proj.Name,CONCAT(Proj.Name,'(',Proj.Note,')') FullProjName,HC.HouseCode,HC.Address,T.EndTime,HC.Type,HC.Industry,HC.No,T.Status,HI.State FROM `bs_house_task` T
LEFT JOIN bs_house_code HC ON T.HouseCodeId = HC.Id
LEFT JOIN bs_house_info HI ON HI.HouseCodeId = T.HouseCodeId
LEFT JOIN bs_house_projectinfo Proj ON Proj.Id=HC.ProjectId

View File

@@ -157,6 +157,7 @@ export default class building extends Component {
onValuesChange(changedValues, allValues) {
const form = this.form.current
const { houseInfo } = changedValues
if (houseInfo) {
if (
houseInfo.hasOwnProperty('landFloorCount') ||
houseInfo.hasOwnProperty('underFloorCount')
@@ -188,6 +189,7 @@ export default class building extends Component {
})
}
}
}
//#region 自定义方法
onShowMap() {

View File

@@ -62,7 +62,7 @@ export default class index extends Component {
children = []
formData = {}
checkform = React.createRef()
checkForm = React.createRef()
shouldComponentUpdate(props, state) {
return !isEqual(this.state, state)
@@ -89,6 +89,21 @@ export default class index extends Component {
}
}
async onCheck(pass_or_back) {
const form = this.checkForm.current
const valid = await form.validateFields()
if (valid) {
var checkRecord = {
taskCheckRecord: {
taskId: this.props.param.taskId,
passOrBack: +pass_or_back,
content: form.getFieldValue(['taskCheckRecord', 'content']),
},
}
await this.onSubmit('houseInfoSave', checkRecord)
}
}
async onSubmit(action, append) {
for (const child of this.children) {
try {
@@ -163,8 +178,18 @@ export default class index extends Component {
/>
</Form.Item>
<Form.Item>
<Button type="primary">通过</Button>
<Button type="primary">退回</Button>
<Button
type="primary"
onClick={() => this.onCheck(6)}
>
通过
</Button>
<Button
type="primary"
onClick={() => this.onCheck(-1)}
>
退回
</Button>
</Form.Item>
</Form>
)}

View File

@@ -124,7 +124,6 @@ export default class handling extends Component {
render() {
const { loading, codes, initGradeValue } = this.state
console.log(initGradeValue)
return (
<Spin spinning={loading} indicator={<AntIcon type="loading" />}>
<Form {...layout} ref={this.form}>

View File

@@ -249,7 +249,7 @@ export default class index extends Component {
size="small"
type="primary"
className="block w-100-p mt-xxs"
onClick={() => this.onOpen(this.selectorModal, record)}
onClick={() => this.onOpen(this.selectorModal, id)}
>
选房
</Button>

View File

@@ -63,7 +63,9 @@ export default class index extends Component {
dataIndex: 'type',
sorter: true,
width: 150,
render: text => this.bindCodeValue(text, 'house_type'),
render: (text, record) =>
this.bindCodeValue(text, 'house_type') +
(text === 2 ? `(${this.bindCodeValue(record.industry, 'house_industry')})` : ''),
},
{
title: '地址',

View File

@@ -6,6 +6,7 @@ import auth from 'components/authorized/handler'
import { isEqual } from 'lodash'
import getDictData from 'util/dic'
import { toCamelCase } from 'util/format'
import { getSearchInfo } from 'util/query'
/**
* 注释段[\/**\/]为必须要改
@@ -27,6 +28,15 @@ const authName = 'houseTask'
export default class index extends Component {
state = {
codes: {
status: [
{ code: -1, value: '审核退回' },
{ code: 0, value: '待处理' },
{ code: null, value: '待处理' },
{ code: 1, value: '暂存' },
{ code: 2, value: '待提交' },
{ code: 3, value: '审核中' },
{ code: 6, value: '审核通过' },
],
houseType: [],
houseIndustry: [],
},
@@ -63,7 +73,9 @@ export default class index extends Component {
dataIndex: 'type',
sorter: true,
width: 150,
render: text => this.bindCodeValue(text, 'house_type'),
render: (text, record) =>
this.bindCodeValue(text, 'house_type') +
(text === 2 ? `(${this.bindCodeValue(record.industry, 'house_industry')})` : ''),
},
{
title: '地址',
@@ -76,6 +88,13 @@ export default class index extends Component {
sorter: true,
width: 150,
},
{
title: '建档状态',
dataIndex: 'state',
sorter: true,
width: 100,
render: text => this.bindCodeValue(text, 'status'),
},
]
/**
@@ -95,7 +114,13 @@ export default class index extends Component {
render: (text, record) => (
<QueryTableActions>
<Auth auth={{ houseInfo: 'getByTaskId' }}>
<a onClick={() => this.onOpen(record.id)}>登记</a>
<a onClick={() => this.onOpen(record.id)}>
{record.state === -1 || record.state === 1 || record.state === 2
? `修改`
: record.state === 3 || record.state === 6
? `查看`
: `登记`}
</a>
</Auth>
</QueryTableActions>
),
@@ -123,7 +148,7 @@ export default class index extends Component {
const { onLoading, onLoadData } = this.table.current
onLoading()
getDictData('house_type', 'house_industry').then(codes => {
this.setState({ codes }, () => {
this.setState({ codes: { ...this.state.codes, ...codes } }, () => {
onLoadData()
})
})
@@ -137,9 +162,19 @@ export default class index extends Component {
* @returns
*/
loadData = async (params, query) => {
const searchInfo = getSearchInfo({
query,
queryType: {
type: '=',
industry: '=',
address: 'like',
houseCode: 'like',
},
})
const { data } = await apiAction.page({
...params,
...query,
searchInfo,
})
return data
}