diff --git a/Api/Ewide.Application/Ewide.Application.xml b/Api/Ewide.Application/Ewide.Application.xml index 0519e69..53d4ca2 100644 --- a/Api/Ewide.Application/Ewide.Application.xml +++ b/Api/Ewide.Application/Ewide.Application.xml @@ -489,6 +489,11 @@ 最后提交时间 + + + 是否有效 + + 任务Id @@ -1451,6 +1456,21 @@ 上报备注 + + + 提交时间 + + + + + 最后提交时间 + + + + + 是否有效 + + 所属街道 diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseInfo/HouseInfoService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseInfo/HouseInfoService.cs index 2a42a56..ee92918 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseInfo/HouseInfoService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseInfo/HouseInfoService.cs @@ -28,17 +28,24 @@ namespace Ewide.Application.Service.HouseSafety.HouseInfo private readonly IRepository _houseCodeRep; private readonly IRepository _houseInfoRep; private readonly IRepository _houseTaskRep; + private readonly IRepository _sysUserRep; private readonly IUserManager _userManager; private readonly IDapperRepository _dapperRepository; private readonly IHouseLogService _houseLogService; - public HouseInfoService(IRepository HouseCodeRep,IRepository HouseInfoRep, IRepository HouseTaskRep, IUserManager userManager, IDapperRepository dapperRepository, IHouseLogService houseLogService) + public HouseInfoService( + IRepository HouseCodeRep, + IRepository HouseInfoRep, + IRepository HouseTaskRep, + IRepository sysUserRep, + IUserManager userManager, IDapperRepository dapperRepository, IHouseLogService houseLogService) { _houseCodeRep = HouseCodeRep; _houseInfoRep = HouseInfoRep; _houseTaskRep = HouseTaskRep; + _sysUserRep = sysUserRep; _userManager = userManager; _dapperRepository = dapperRepository; @@ -135,9 +142,9 @@ WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId } var houseEntity = await _houseInfoRep.DetachedEntities.FirstOrDefaultAsync(h => h.HouseCodeId == input.houseCode.Id); //建档审核通过的房屋数据修改时,对应的建档任务Task不处理 + var houseTask = input.PatrolInfo.Adapt(); if (houseEntity == null || houseEntity.State != 6) { - var houseTask = input.PatrolInfo.Adapt(); houseTask.HouseCodeId = input.houseCode.Id; //任务没有暂存状态,其他状态与HouseInfo的State一致 houseTask.Status = dataStatus == DataStatus.TempSaved ? (int)DataStatus.Saved : (int)dataStatus; @@ -167,7 +174,6 @@ WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId } var org = await _userManager.GetUserOrgInfo(); - var _sysUserRep = Db.GetRepository(); var _sysEmpRep = Db.GetRepository(); var _sysUserRoleRep = Db.GetRepository(); var _sysRoleRep = Db.GetRepository(); @@ -178,14 +184,20 @@ WHERE HC.Id=@HouseCodeId", new { houseTask.HouseCodeId } where e.OrgId == org.Id && r.Code == Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase() select u).ToListAsync(); - await _houseLogService.AddThenDone(input.houseCode.Id, zoneManagerList, HouseLogType.Check); + await _houseLogService.Add(input.houseCode.Id, zoneManagerList, HouseLogType.Check); } //审核操作则新增一条审核记录 if (dataStatus == DataStatus.Back || dataStatus == DataStatus.Passed) { var checkRecord = input.TaskCheckRecord.Adapt(); await checkRecord.InsertAsync(); + await _houseLogService.Done(input.houseCode.Id); await _houseLogService.AddThenDone(input.houseCode.Id, _userManager.User, dataStatus == DataStatus.Passed ? HouseLogType.Agree : HouseLogType.Disagree); + if (dataStatus == DataStatus.Back) + { + var user = await _sysUserRep.DetachedEntities.FirstOrDefaultAsync(p => p.Id.Equals(houseTask.UserID)); + await _houseLogService.Add(input.houseCode.Id, user, HouseLogType.CreateInfo); + } } } } diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseTask/HouseTaskService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseTask/HouseTaskService.cs index 2399842..6337437 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseTask/HouseTaskService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseTask/HouseTaskService.cs @@ -51,22 +51,22 @@ 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 {0}"; +WHERE T.IsEnabled = 1 {0}"; var user = await _userManager.CheckUserAsync(); if (user == null) throw Oops.Oh("登录信息丢失"); var userRoles = await _userManager.GetUserRoleList(); var userOrg = await _userManager.GetUserOrgInfo(); var param = new DynamicParameters(); - if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.HouseSecurityManager).ToUnderScoreCase()).Count() > 0) + if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.HouseSecurityManager).ToUnderScoreCase()).Any()) { - sql = String.Format(sql, " T.UserID=@UserID "); + sql = String.Format(sql, " AND T.UserID=@UserID "); param.Add("UserID", user.Id); } - if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase()).Count() > 0) + if (userRoles.Where(r => r.Code == Enum.GetName(HouseManagerRole.ZoneManager).ToUnderScoreCase()).Any()) { - sql = String.Format(sql, " (T.Status=3 OR T.Status=6) AND HC.ZoneId = @ZoneId "); + sql = String.Format(sql, " AND (T.Status=3 OR T.Status=6) AND HC.ZoneId = @ZoneId "); param.Add("ZoneId", userOrg.Id); } diff --git a/web-react/src/components/index.js b/web-react/src/components/index.js index a729563..43eca8f 100644 --- a/web-react/src/components/index.js +++ b/web-react/src/components/index.js @@ -14,3 +14,5 @@ export { default as QueryList } from './query-list' export { default as QueryTable } from './query-table' export { default as QueryTableActions } from './query-table-actions' export { default as QueryTreeLayout } from './query-tree-layout' + +export { default as HouseLog } from './business/house-log' \ No newline at end of file diff --git a/web-react/src/pages/business/house/task/index.jsx b/web-react/src/pages/business/house/task/index.jsx index 1beecdd..ed5dea0 100644 --- a/web-react/src/pages/business/house/task/index.jsx +++ b/web-react/src/pages/business/house/task/index.jsx @@ -1,5 +1,5 @@ import React, { Component } from 'react' -import { Card, Form, Input, message as Message, Radio, Select, Tag } from 'antd' +import { Card, Checkbox, Form, Input, message as Message, Radio, Select, Tag } from 'antd' import { Auth, Container, QueryTable, QueryTableActions } from 'components' import { api } from 'common/api' import auth from 'components/authorized/handler' @@ -7,6 +7,7 @@ import { isEqual } from 'lodash' import getDictData from 'util/dic' import { toCamelCase } from 'util/format' import { getSearchInfo } from 'util/query' +import { checkboxCheckedNone } from 'util/tool' /** * 注释段[\/**\/]为必须要改 @@ -245,12 +246,22 @@ export default class index extends Component { columns={this.columns} queryInitialValues={{ type: '', - state: 0, + state: [-1, 0, 1, 2], }} onQueryChange={values => { if (values.hasOwnProperty('type')) { this.setState({ type: values.type }) } + if (values.hasOwnProperty('state')) { + const value = checkboxCheckedNone({ + value: values.state, + length: codes.houseStatus.length, + required: true, + }) + return { + state: value, + } + } }} query={ @@ -286,14 +297,14 @@ export default class index extends Component { - + } diff --git a/web-react/src/util/tool/index.js b/web-react/src/util/tool/index.js new file mode 100644 index 0000000..239faaf --- /dev/null +++ b/web-react/src/util/tool/index.js @@ -0,0 +1,23 @@ +import { first, last } from "lodash" + +export const checkboxCheckedNone = (arg) => { + let { value, length, noneValue, required } = arg + if (length === undefined) length = 2 + if (noneValue === undefined) noneValue = '' + if (required === undefined) required = false + + if (first(value) === noneValue && value.length > 1) { + // 在'无'之后选中其他值 + value.shift() + } else if ( + value.length >= length + || + (last(value) === noneValue && value.length > 1) + || + (!value.length && required) + ) { + // 在其他值之后选中'无' + value = [noneValue] + } + return value +} \ No newline at end of file