完善功能
This commit is contained in:
parent
fb160b3e98
commit
0b1bbe32b1
@ -0,0 +1,91 @@
|
||||
package cn.com.tenlion.systemduty.controller.api.count;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
import cn.com.tenlion.systemduty.service.count.IDutyCountService;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.result.ErrorResult;
|
||||
import ink.wgink.pojo.result.SuccessResultData;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import io.swagger.annotations.ApiResponse;
|
||||
import io.swagger.annotations.ApiResponses;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: DutyCountController
|
||||
* @Description: 责任统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 10:01 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.API_TAGS_SYSTEM_PREFIX + "责任统计")
|
||||
@RestController
|
||||
@RequestMapping(ISystemConstant.API_PREFIX + "/duty-count")
|
||||
public class DutyCountController extends DefaultBaseController {
|
||||
|
||||
@Autowired
|
||||
private IDutyCountService dutyCountService;
|
||||
|
||||
@ApiOperation(value = "总上报量", notes = "总上报量接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("count-total-report")
|
||||
public SuccessResultData<Integer> countTotalReport() {
|
||||
Integer total = dutyCountService.countTotalReport();
|
||||
return new SuccessResultData<>(total);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "年度上报量", notes = "年度上报量接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("count-year-report")
|
||||
public SuccessResultData<Integer> countYearReport() {
|
||||
Integer total = dutyCountService.countYearReport();
|
||||
return new SuccessResultData<>(total);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "本月上报量", notes = "年度上报量接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("count-month-report")
|
||||
public SuccessResultData<Integer> countMonthReport() {
|
||||
Integer total = dutyCountService.countMonthReport();
|
||||
return new SuccessResultData<>(total);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "本周上报量", notes = "本周上报量接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("count-week-report")
|
||||
public SuccessResultData<Integer> countWeekReport() {
|
||||
Integer total = dutyCountService.countWeekReport();
|
||||
return new SuccessResultData<>(total);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "指标上报TOP10", notes = "指标上报TOP10接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("list-report-list-top10")
|
||||
public List<ReportListCountDTO> listReportListTop10() {
|
||||
return dutyCountService.listReportListTop10();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "本周每日上报量", notes = "本周每日上报量接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("week-day-report")
|
||||
public SuccessResultData<Map<String, Object>> weekDayReport() {
|
||||
Map<String, Object> result = dutyCountService.weekDayReport();
|
||||
return new SuccessResultData<>(result);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "部门 上报量/通过量 排名", notes = "部门 上报量/通过量 排名接口")
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("department-report-total-pass")
|
||||
public SuccessResultData<Map<String, Object>> departmentReportTotalPass() {
|
||||
Map<String, Object> result = dutyCountService.departmentReportTotalPass();
|
||||
return new SuccessResultData<>(result);
|
||||
}
|
||||
|
||||
}
|
@ -1,7 +1,8 @@
|
||||
package cn.com.tenlion.systemduty.controller.api.reportsummary88;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.list.ListDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ListSelfDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ReportSummary88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88UpdateExamineVO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88VO;
|
||||
import cn.com.tenlion.systemduty.service.reportsummary88.IReportSummary88Service;
|
||||
import ink.wgink.annotation.CheckRequestBodyAnnotation;
|
||||
@ -55,15 +56,15 @@ public class ReportSummary88Controller extends DefaultBaseController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改88项考核指标上报汇总", notes = "修改88项考核指标上报汇总接口")
|
||||
@ApiOperation(value = "修改88项考核指标上报审核", notes = "修改88项考核指标上报审核接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{reportSummary88Id}")
|
||||
@PutMapping("update-examine/{reportSummary88Id}")
|
||||
@CheckRequestBodyAnnotation
|
||||
public SuccessResult update(@PathVariable("reportSummary88Id") String reportSummary88Id, @RequestBody ReportSummary88VO reportSummary88VO) {
|
||||
reportSummary88Service.update(reportSummary88Id, reportSummary88VO);
|
||||
public SuccessResult updateExamine(@PathVariable("reportSummary88Id") String reportSummary88Id, @RequestBody ReportSummary88UpdateExamineVO reportSummary88UpdateExamineVO) {
|
||||
reportSummary88Service.updateExamine(reportSummary88Id, reportSummary88UpdateExamineVO);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ -72,9 +73,9 @@ public class ReportSummary88Controller extends DefaultBaseController {
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("get/{reportSummary88Id}")
|
||||
public ReportSummary88DTO get(@PathVariable("reportSummary88Id") String reportSummary88Id) {
|
||||
return reportSummary88Service.get(reportSummary88Id);
|
||||
@GetMapping("get/{reportSummaryId}")
|
||||
public ReportSummary88DTO get(@PathVariable("reportSummaryId") String reportSummaryId) {
|
||||
return reportSummary88Service.get(reportSummaryId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "88项考核指标上报汇总列表", notes = "88项考核指标上报汇总列表接口")
|
||||
@ -119,7 +120,7 @@ public class ReportSummary88Controller extends DefaultBaseController {
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("listpage-list/self")
|
||||
public SuccessResultList<List<ListDTO>> listPageListBySelf(ListPage page) {
|
||||
public SuccessResultList<List<ListSelfDTO>> listPageListBySelf(ListPage page) {
|
||||
Map<String, Object> params = requestParams();
|
||||
page.setParams(params);
|
||||
return reportSummary88Service.listPageListBySelf(page);
|
||||
|
@ -58,28 +58,15 @@ public class ReportSummary88AppController extends DefaultBaseController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改88项考核指标上报汇总", notes = "修改88项考核指标上报汇总接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("updatereportsummary88/{reportSummary88Id}")
|
||||
@CheckRequestBodyAnnotation
|
||||
public SuccessResult updateReportSummary88(@RequestHeader("token") String token, @PathVariable("reportSummary88Id") String reportSummary88Id, @RequestBody ReportSummary88VO reportSummary88VO) {
|
||||
reportSummary88Service.update(token, reportSummary88Id, reportSummary88VO);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "88项考核指标上报汇总详情(通过ID)", notes = "88项考核指标上报汇总详情(通过ID)接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "token", value = "token", paramType = "header"),
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
@ApiImplicitParam(name = "reportSummaryId", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("get/{reportSummary88Id}")
|
||||
public ReportSummary88DTO get(@RequestHeader("token") String token, @PathVariable("reportSummary88Id") String reportSummary88Id) {
|
||||
return reportSummary88Service.get(reportSummary88Id);
|
||||
@GetMapping("get/{reportSummaryId}")
|
||||
public ReportSummary88DTO get(@RequestHeader("token") String token, @PathVariable("reportSummaryId") String reportSummaryId) {
|
||||
return reportSummary88Service.get(reportSummaryId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "88项考核指标上报汇总列表", notes = "88项考核指标上报汇总列表接口")
|
||||
|
@ -58,28 +58,15 @@ public class ReportSummary88ResourceController extends DefaultBaseController {
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "修改88项考核指标上报汇总", notes = "修改88项考核指标上报汇总接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query"),
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@PutMapping("update/{reportSummary88Id}")
|
||||
@CheckRequestBodyAnnotation
|
||||
public SuccessResult update(@PathVariable("reportSummary88Id") String reportSummary88Id, @RequestBody ReportSummary88VO reportSummary88VO) {
|
||||
reportSummary88Service.update(reportSummary88Id, reportSummary88VO);
|
||||
return new SuccessResult();
|
||||
}
|
||||
|
||||
@ApiOperation(value = "88项考核指标上报汇总详情", notes = "88项考核指标上报汇总详情接口")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "access_token", value = "access_token", paramType = "query"),
|
||||
@ApiImplicitParam(name = "reportSummary88Id", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
@ApiImplicitParam(name = "reportSummaryId", value = "88项考核指标上报汇总ID", paramType = "path")
|
||||
})
|
||||
@ApiResponses({@ApiResponse(code = 400, message = "请求失败", response = ErrorResult.class)})
|
||||
@GetMapping("get/{reportSummary88Id}")
|
||||
public ReportSummary88DTO get(@PathVariable("reportSummary88Id") String reportSummary88Id) {
|
||||
return reportSummary88Service.get(reportSummary88Id);
|
||||
@GetMapping("get/{reportSummaryId}")
|
||||
public ReportSummary88DTO get(@PathVariable("reportSummaryId") String reportSummaryId) {
|
||||
return reportSummary88Service.get(reportSummaryId);
|
||||
}
|
||||
|
||||
@ApiOperation(value = "88项考核指标上报汇总列表", notes = "88项考核指标上报汇总列表接口")
|
||||
|
@ -3,6 +3,7 @@ package cn.com.tenlion.systemduty.controller.route.catalogue;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
@ -16,7 +17,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "责任目录路由")
|
||||
@RestController
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/catalogue")
|
||||
public class CatalogueRouteController extends DefaultBaseController {
|
||||
|
||||
|
@ -0,0 +1,64 @@
|
||||
package cn.com.tenlion.systemduty.controller.route.defaultpage;
|
||||
|
||||
import cn.com.tenlion.systemduty.properties.SystemRoleProperties;
|
||||
import ink.wgink.common.component.SecurityComponent;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.pojo.dtos.role.RoleSimpleDTO;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @ClassName: DefaultPageRouteController
|
||||
* @Description: 默认页面路由
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 5:41 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "默认页面路由")
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/default-page")
|
||||
public class DefaultPageRouteController {
|
||||
|
||||
@Autowired
|
||||
private SystemRoleProperties systemRoleProperties;
|
||||
@Autowired
|
||||
private SecurityComponent securityComponent;
|
||||
|
||||
@GetMapping("home")
|
||||
public ModelAndView home() {
|
||||
String roleId = getRole(securityComponent.getCurrentUser().getRoles());
|
||||
ModelAndView mv;
|
||||
// if (StringUtils.equals(systemRoleProperties.getReporter(), roleId)) {
|
||||
// mv = new ModelAndView("default-page/home-report");
|
||||
// } else if (StringUtils.equals(systemRoleProperties.getExaminer(), roleId)) {
|
||||
// mv = new ModelAndView("default-page/home-examine");
|
||||
// } else {
|
||||
// mv = new ModelAndView("default-page/home-admin");
|
||||
// }
|
||||
mv = new ModelAndView("default-page/home-admin");
|
||||
return mv;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param roles
|
||||
* @return
|
||||
*/
|
||||
private String getRole(List<RoleSimpleDTO> roles) {
|
||||
for (RoleSimpleDTO roleSimpleDTO : roles) {
|
||||
if (StringUtils.equals(systemRoleProperties.getExaminer(), roleSimpleDTO.getRoleId())) {
|
||||
return systemRoleProperties.getExaminer();
|
||||
} else if (StringUtils.equals(systemRoleProperties.getReporter(), roleSimpleDTO.getRoleId())) {
|
||||
return systemRoleProperties.getReporter();
|
||||
}
|
||||
}
|
||||
return ISystemConstant.ADMIN;
|
||||
}
|
||||
|
||||
}
|
@ -3,9 +3,9 @@ package cn.com.tenlion.systemduty.controller.route.distribution.department;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "责任清单路由")
|
||||
@RestController
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/distribution/department")
|
||||
public class DistributionDepartmentRouteController extends DefaultBaseController {
|
||||
|
||||
|
@ -3,9 +3,9 @@ package cn.com.tenlion.systemduty.controller.route.list;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "责任清单路由")
|
||||
@RestController
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/list")
|
||||
public class ListRouteController extends DefaultBaseController {
|
||||
|
||||
|
@ -3,9 +3,9 @@ package cn.com.tenlion.systemduty.controller.route.reportcontent88;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "88项责任上报详情路由")
|
||||
@RestController
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/report-content88")
|
||||
public class ReportContent88RouteController extends DefaultBaseController {
|
||||
|
||||
@ -45,6 +45,11 @@ public class ReportContent88RouteController extends DefaultBaseController {
|
||||
return new ModelAndView("report-content88/list-self");
|
||||
}
|
||||
|
||||
@GetMapping("list-self-history")
|
||||
public ModelAndView listMineHistory() {
|
||||
return new ModelAndView("report-content88/list-self-history");
|
||||
}
|
||||
|
||||
@GetMapping("list-department")
|
||||
public ModelAndView listDepartment() {
|
||||
return new ModelAndView("report-content88/list-department");
|
||||
|
@ -3,9 +3,9 @@ package cn.com.tenlion.systemduty.controller.route.reportsummary88;
|
||||
import ink.wgink.common.base.DefaultBaseController;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import io.swagger.annotations.Api;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
/**
|
||||
@ -16,7 +16,7 @@ import org.springframework.web.servlet.ModelAndView;
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@Api(tags = ISystemConstant.ROUTE_TAGS_PREFIX + "88项考核指标上报汇总路由")
|
||||
@RestController
|
||||
@Controller
|
||||
@RequestMapping(ISystemConstant.ROUTE_PREFIX + "/report-summary88")
|
||||
public class ReportSummary88RouteController extends DefaultBaseController {
|
||||
|
||||
@ -25,9 +25,9 @@ public class ReportSummary88RouteController extends DefaultBaseController {
|
||||
return new ModelAndView("report-summary88/save");
|
||||
}
|
||||
|
||||
@GetMapping("update")
|
||||
public ModelAndView update() {
|
||||
return new ModelAndView("report-summary88/update");
|
||||
@GetMapping("update-examine")
|
||||
public ModelAndView updateExamine() {
|
||||
return new ModelAndView("report-summary88/update-examine");
|
||||
}
|
||||
|
||||
@GetMapping("list-examine")
|
||||
|
@ -2,6 +2,8 @@ package cn.com.tenlion.systemduty.dao.reportcontent88;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportcontent88.ReportContent88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportContent88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportDepartmentCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportcontent88.ReportContent88PO;
|
||||
import ink.wgink.exceptions.RemoveException;
|
||||
import ink.wgink.exceptions.SaveException;
|
||||
@ -56,6 +58,7 @@ public interface IReportContent88Dao {
|
||||
|
||||
/**
|
||||
* 修改审核状态
|
||||
*
|
||||
* @param params
|
||||
* @throws UpdateException
|
||||
*/
|
||||
@ -124,4 +127,28 @@ public interface IReportContent88Dao {
|
||||
*/
|
||||
Integer count(Map<String, Object> params) throws SearchException;
|
||||
|
||||
/**
|
||||
* 指标上报TOP10
|
||||
*
|
||||
* @return
|
||||
* @throws SearchException
|
||||
*/
|
||||
List<ReportListCountDTO> listReportListTop10() throws SearchException;
|
||||
|
||||
/**
|
||||
* 部门 上报量/通过量 排名
|
||||
*
|
||||
* @return
|
||||
* @throws SearchException
|
||||
*/
|
||||
List<ReportDepartmentCountDTO> listDepartmentReportTotal() throws SearchException;
|
||||
|
||||
/**
|
||||
* 部门 通过量 排名
|
||||
*
|
||||
* @return
|
||||
* @throws SearchException
|
||||
*/
|
||||
List<ReportDepartmentCountDTO> listDepartmentReportPassTotal() throws SearchException;
|
||||
|
||||
}
|
@ -47,12 +47,12 @@ public interface IReportSummary88Dao {
|
||||
void delete(Map<String, Object> params) throws RemoveException;
|
||||
|
||||
/**
|
||||
* 修改88项考核指标上报汇总
|
||||
* 修改88项考核指标上报审核
|
||||
*
|
||||
* @param params
|
||||
* @throws UpdateException
|
||||
*/
|
||||
void update(Map<String, Object> params) throws UpdateException;
|
||||
void updateExamine(Map<String, Object> params) throws UpdateException;
|
||||
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
|
@ -0,0 +1,46 @@
|
||||
package cn.com.tenlion.systemduty.pojo.dtos.reportcontent88;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
* @ClassName: ReportDepartmentCountDTO
|
||||
* @Description: 部门上报统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 11:52 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@ApiModel
|
||||
public class ReportDepartmentCountDTO {
|
||||
|
||||
@ApiModelProperty(name = "reportDepartmentId", value = "部门ID")
|
||||
private String reportDepartmentId;
|
||||
@ApiModelProperty(name = "reportDepartmentName", value = "部门名称")
|
||||
private String reportDepartmentName;
|
||||
@ApiModelProperty(name = "reportCount", value = "上报量")
|
||||
private Integer reportCount;
|
||||
|
||||
public String getReportDepartmentId() {
|
||||
return reportDepartmentId == null ? "" : reportDepartmentId.trim();
|
||||
}
|
||||
|
||||
public void setReportDepartmentId(String reportDepartmentId) {
|
||||
this.reportDepartmentId = reportDepartmentId;
|
||||
}
|
||||
|
||||
public String getReportDepartmentName() {
|
||||
return reportDepartmentName == null ? "" : reportDepartmentName.trim();
|
||||
}
|
||||
|
||||
public void setReportDepartmentName(String reportDepartmentName) {
|
||||
this.reportDepartmentName = reportDepartmentName;
|
||||
}
|
||||
|
||||
public Integer getReportCount() {
|
||||
return reportCount == null ? 0 : reportCount;
|
||||
}
|
||||
|
||||
public void setReportCount(Integer reportCount) {
|
||||
this.reportCount = reportCount;
|
||||
}
|
||||
}
|
@ -0,0 +1,46 @@
|
||||
package cn.com.tenlion.systemduty.pojo.dtos.reportcontent88;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
* @ClassName: ReportListCoount
|
||||
* @Description: 上报清单统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 11:26 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@ApiModel
|
||||
public class ReportListCountDTO {
|
||||
|
||||
@ApiModelProperty(name = "listId", value = "清单ID")
|
||||
private String listId;
|
||||
@ApiModelProperty(name = "listSummary", value = "清单描述")
|
||||
private String listSummary;
|
||||
@ApiModelProperty(name = "reportCount", value = "上报数量")
|
||||
private Integer reportCount;
|
||||
|
||||
public String getListId() {
|
||||
return listId == null ? "" : listId.trim();
|
||||
}
|
||||
|
||||
public void setListId(String listId) {
|
||||
this.listId = listId;
|
||||
}
|
||||
|
||||
public String getListSummary() {
|
||||
return listSummary == null ? "" : listSummary.trim();
|
||||
}
|
||||
|
||||
public void setListSummary(String listSummary) {
|
||||
this.listSummary = listSummary;
|
||||
}
|
||||
|
||||
public Integer getReportCount() {
|
||||
return reportCount == null ? 0 : reportCount;
|
||||
}
|
||||
|
||||
public void setReportCount(Integer reportCount) {
|
||||
this.reportCount = reportCount;
|
||||
}
|
||||
}
|
@ -0,0 +1,68 @@
|
||||
package cn.com.tenlion.systemduty.pojo.dtos.reportsummary88;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.list.ListDTO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
*
|
||||
* @ClassName: ListDTO
|
||||
* @Description: 责任清单
|
||||
* @Author: CodeFactory
|
||||
* @Date: 2022-01-06 14:54:06
|
||||
* @Version: 3.0
|
||||
**/
|
||||
@ApiModel
|
||||
public class ListSelfDTO extends ListDTO {
|
||||
|
||||
@ApiModelProperty(name = "reportProcess", value = "上报进度")
|
||||
private Double reportProcess;
|
||||
@ApiModelProperty(name = "isComplete", value = "是否完成")
|
||||
private Integer isComplete;
|
||||
@ApiModelProperty(name = "reportScore", value = "上报得分")
|
||||
private Double reportScore;
|
||||
@ApiModelProperty(name = "examineUserId", value = "审核人")
|
||||
private String examineUserId;
|
||||
@ApiModelProperty(name = "examineTime", value = "审核时间")
|
||||
private String examineTime;
|
||||
|
||||
public Double getReportProcess() {
|
||||
return reportProcess == null ? 0 : reportProcess;
|
||||
}
|
||||
|
||||
public void setReportProcess(Double reportProcess) {
|
||||
this.reportProcess = reportProcess;
|
||||
}
|
||||
|
||||
public Integer getIsComplete() {
|
||||
return isComplete == null ? 0 : isComplete;
|
||||
}
|
||||
|
||||
public void setIsComplete(Integer isComplete) {
|
||||
this.isComplete = isComplete;
|
||||
}
|
||||
|
||||
public Double getReportScore() {
|
||||
return reportScore == null ? 0 : reportScore;
|
||||
}
|
||||
|
||||
public void setReportScore(Double reportScore) {
|
||||
this.reportScore = reportScore;
|
||||
}
|
||||
|
||||
public String getExamineUserId() {
|
||||
return examineUserId == null ? "" : examineUserId.trim();
|
||||
}
|
||||
|
||||
public void setExamineUserId(String examineUserId) {
|
||||
this.examineUserId = examineUserId;
|
||||
}
|
||||
|
||||
public String getExamineTime() {
|
||||
return examineTime == null ? "" : examineTime.trim();
|
||||
}
|
||||
|
||||
public void setExamineTime(String examineTime) {
|
||||
this.examineTime = examineTime;
|
||||
}
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
package cn.com.tenlion.systemduty.pojo.vos.reportsummary88;
|
||||
|
||||
import ink.wgink.annotation.CheckNumberAnnotation;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
|
||||
/**
|
||||
* @ClassName: ReportSummary88UpdateExamineVO
|
||||
* @Description: 88项上报汇总审核状态
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/18 11:02 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@ApiModel
|
||||
public class ReportSummary88UpdateExamineVO {
|
||||
|
||||
@ApiModelProperty(name = "reportProcess", value = "上报进度")
|
||||
@CheckNumberAnnotation(name = "上报进度", min = 0)
|
||||
private Double reportProcess;
|
||||
@ApiModelProperty(name = "reportScore", value = "上报得分")
|
||||
@CheckNumberAnnotation(name = "上报得分", min = 0)
|
||||
private Double reportScore;
|
||||
|
||||
public Double getReportProcess() {
|
||||
return reportProcess == null ? 0 : reportProcess;
|
||||
}
|
||||
|
||||
public void setReportProcess(Double reportProcess) {
|
||||
this.reportProcess = reportProcess;
|
||||
}
|
||||
|
||||
public Double getReportScore() {
|
||||
return reportScore == null ? 0 : reportScore;
|
||||
}
|
||||
|
||||
public void setReportScore(Double reportScore) {
|
||||
this.reportScore = reportScore;
|
||||
}
|
||||
}
|
@ -0,0 +1,35 @@
|
||||
package cn.com.tenlion.systemduty.properties;
|
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
/**
|
||||
* @ClassName: SystemRoleProperties
|
||||
* @Description: 系统角色
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 5:54 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Component
|
||||
@ConfigurationProperties(prefix = "system-role")
|
||||
public class SystemRoleProperties {
|
||||
|
||||
private String examiner;
|
||||
private String reporter;
|
||||
|
||||
public String getExaminer() {
|
||||
return examiner == null ? "" : examiner.trim();
|
||||
}
|
||||
|
||||
public void setExaminer(String examiner) {
|
||||
this.examiner = examiner;
|
||||
}
|
||||
|
||||
public String getReporter() {
|
||||
return reporter == null ? "" : reporter.trim();
|
||||
}
|
||||
|
||||
public void setReporter(String reporter) {
|
||||
this.reporter = reporter;
|
||||
}
|
||||
}
|
@ -0,0 +1,66 @@
|
||||
package cn.com.tenlion.systemduty.service.count;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: IDutyCountService
|
||||
* @Description: 责任统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 10:02 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
public interface IDutyCountService {
|
||||
|
||||
/**
|
||||
* 总上报量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Integer countTotalReport();
|
||||
|
||||
/**
|
||||
* 年度上报量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Integer countYearReport();
|
||||
|
||||
/**
|
||||
* 本月上报量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Integer countMonthReport();
|
||||
|
||||
/**
|
||||
* 本周上报量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Integer countWeekReport();
|
||||
|
||||
/**
|
||||
* 指标上报TOP10
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ReportListCountDTO> listReportListTop10();
|
||||
|
||||
/**
|
||||
* 本周每日上报量
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> weekDayReport();
|
||||
|
||||
/**
|
||||
* 部门 上报量/通过量 排名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> departmentReportTotalPass();
|
||||
|
||||
}
|
@ -0,0 +1,144 @@
|
||||
package cn.com.tenlion.systemduty.service.count.impl;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportDepartmentCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
import cn.com.tenlion.systemduty.service.count.IDutyCountService;
|
||||
import cn.com.tenlion.systemduty.service.reportcontent88.IReportContent88Service;
|
||||
import ink.wgink.common.base.DefaultBaseService;
|
||||
import ink.wgink.interfaces.consts.ISystemConstant;
|
||||
import ink.wgink.interfaces.department.IDepartmentBaseService;
|
||||
import ink.wgink.pojo.pos.DepartmentPO;
|
||||
import ink.wgink.util.ArrayListUtil;
|
||||
import ink.wgink.util.date.DateUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.format.DateTimeFormat;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @ClassName: DutyCountServiceImpl
|
||||
* @Description: 责任统计
|
||||
* @Author: wanggeng
|
||||
* @Date: 2022/1/19 10:03 PM
|
||||
* @Version: 1.0
|
||||
*/
|
||||
@Service
|
||||
public class DutyCountServiceImpl extends DefaultBaseService implements IDutyCountService {
|
||||
|
||||
@Autowired
|
||||
private IReportContent88Service reportContent88Service;
|
||||
@Autowired
|
||||
private IDepartmentBaseService departmentBaseService;
|
||||
|
||||
@Override
|
||||
public Integer countTotalReport() {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
return reportContent88Service.count(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countYearReport() {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("year", DateUtil.getYear());
|
||||
return reportContent88Service.count(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countMonthReport() {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("yearMonth", DateUtil.getSdfYearMonth());
|
||||
return reportContent88Service.count(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer countWeekReport() {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
DateTime now = DateTime.now();
|
||||
DateTime startDateTime = now.dayOfWeek().withMinimumValue();
|
||||
String startDay = startDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
DateTime endDateTime = now.dayOfWeek().withMaximumValue();
|
||||
String endDay = endDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
|
||||
params.put("startDay", startDay);
|
||||
params.put("endDay", endDay);
|
||||
return reportContent88Service.count(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReportListCountDTO> listReportListTop10() {
|
||||
return reportContent88Service.listReportListTop10();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> weekDayReport() {
|
||||
DateTime now = DateTime.now();
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
List<String> xData = new ArrayList<>();
|
||||
List<Integer> yData = new ArrayList<>();
|
||||
for (int i = 1; i < 8; i++) {
|
||||
DateTime dayDateTime = now.withDayOfWeek(i);
|
||||
String day = dayDateTime.toString(DateTimeFormat.forPattern(ISystemConstant.DATE_FORMATTER_YYYY_MM_DD));
|
||||
params.put("day", day);
|
||||
Integer count = reportContent88Service.count(params);
|
||||
xData.add(day);
|
||||
yData.add(count);
|
||||
}
|
||||
Map<String, Object> result = getHashMap(4);
|
||||
result.put("xData", xData);
|
||||
result.put("yData", yData);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> departmentReportTotalPass() {
|
||||
List<ReportDepartmentCountDTO> reportDepartmentCountDTOs = reportContent88Service.listDepartmentReportTotal();
|
||||
setReportDepartments(reportDepartmentCountDTOs);
|
||||
List<ReportDepartmentCountDTO> reportDepartmentPassCountDTOs = reportContent88Service.listDepartmentReportPassTotal();
|
||||
List<String> xData = new ArrayList<>();
|
||||
List<Integer> yData1 = new ArrayList<>();
|
||||
List<Integer> yData2 = new ArrayList<>();
|
||||
reportDepartmentCountDTOs.forEach(reportDepartmentCountDTO -> {
|
||||
xData.add(reportDepartmentCountDTO.getReportDepartmentName());
|
||||
yData1.add(reportDepartmentCountDTO.getReportCount());
|
||||
for (int i = 0; i < reportDepartmentPassCountDTOs.size(); i++) {
|
||||
ReportDepartmentCountDTO reportDepartmentPassCountDTO = reportDepartmentPassCountDTOs.get(i);
|
||||
if (StringUtils.equals(reportDepartmentCountDTO.getReportDepartmentId(), reportDepartmentPassCountDTO.getReportDepartmentId())) {
|
||||
yData2.add(reportDepartmentPassCountDTO.getReportCount());
|
||||
reportDepartmentPassCountDTOs.remove(i);
|
||||
i--;
|
||||
}
|
||||
}
|
||||
});
|
||||
Map<String, Object> result = getHashMap(4);
|
||||
result.put("xData", xData);
|
||||
result.put("yData1", yData1);
|
||||
result.put("yData2", yData2);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置部门
|
||||
*
|
||||
* @param reportDepartmentCountDTOs
|
||||
*/
|
||||
private void setReportDepartments(List<ReportDepartmentCountDTO> reportDepartmentCountDTOs) {
|
||||
if (reportDepartmentCountDTOs.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
List<String> departmentIds = ArrayListUtil.listBeanStringIdValue(reportDepartmentCountDTOs, "reportDepartmentId", ReportDepartmentCountDTO.class);
|
||||
List<DepartmentPO> departmentPOs = departmentBaseService.listPO(departmentIds);
|
||||
reportDepartmentCountDTOs.forEach(reportDepartmentCountDTO -> {
|
||||
for (DepartmentPO departmentPO : departmentPOs) {
|
||||
if (StringUtils.equals(reportDepartmentCountDTO.getReportDepartmentId(), departmentPO.getDepartmentId())) {
|
||||
reportDepartmentCountDTO.setReportDepartmentName(departmentPO.getDepartmentName());
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
@ -2,6 +2,8 @@ package cn.com.tenlion.systemduty.service.reportcontent88;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportcontent88.ReportContent88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportContent88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportDepartmentCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportcontent88.ReportContent88PO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportcontent88.ReportContent88UpdateExamineVO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportcontent88.ReportContent88VO;
|
||||
@ -101,7 +103,7 @@ public interface IReportContent88Service {
|
||||
/**
|
||||
* 修改88项责任上报审核状态
|
||||
*
|
||||
* @param reportId 上报ID
|
||||
* @param reportId 上报ID
|
||||
* @param reportContent88UpdateExamineVO 审核结果
|
||||
*/
|
||||
void updateExamine(String reportId, ReportContent88UpdateExamineVO reportContent88UpdateExamineVO);
|
||||
@ -221,5 +223,25 @@ public interface IReportContent88Service {
|
||||
*/
|
||||
SuccessResultList<List<ReportContent88DTO>> listPageByListIdAndDepartmentId(String listId, String departmentId, ListPage page);
|
||||
|
||||
/**
|
||||
* 指标上报TOP10
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ReportListCountDTO> listReportListTop10();
|
||||
|
||||
/**
|
||||
* 部门 上报量 排名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ReportDepartmentCountDTO> listDepartmentReportTotal();
|
||||
|
||||
/**
|
||||
* 部门 通过量 排名
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
List<ReportDepartmentCountDTO> listDepartmentReportPassTotal();
|
||||
|
||||
}
|
@ -3,6 +3,8 @@ package cn.com.tenlion.systemduty.service.reportcontent88.impl;
|
||||
import cn.com.tenlion.systemduty.dao.reportcontent88.IReportContent88Dao;
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportcontent88.ReportContent88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportContent88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportDepartmentCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.list.ListPO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportcontent88.ReportContent88PO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportsummary88.ReportSummary88PO;
|
||||
@ -261,6 +263,21 @@ public class ReportContent88ServiceImpl extends DefaultBaseService implements IR
|
||||
return listPage(page);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReportListCountDTO> listReportListTop10() {
|
||||
return reportContent88Dao.listReportListTop10();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReportDepartmentCountDTO> listDepartmentReportTotal() {
|
||||
return reportContent88Dao.listDepartmentReportTotal();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ReportDepartmentCountDTO> listDepartmentReportPassTotal() {
|
||||
return reportContent88Dao.listDepartmentReportPassTotal();
|
||||
}
|
||||
|
||||
/**
|
||||
* 是否有审核过的上报内容
|
||||
*
|
||||
|
@ -1,13 +1,14 @@
|
||||
package cn.com.tenlion.systemduty.service.reportsummary88;
|
||||
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportsummary88.ReportSummary88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.list.ListDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportContent88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ListSelfDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ReportSummary88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportsummary88.ReportSummary88PO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88UpdateExamineVO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88VO;
|
||||
import ink.wgink.pojo.ListPage;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ReportSummary88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88VO;
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportsummary88.ReportSummary88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportsummary88.ReportSummary88PO;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -42,7 +43,7 @@ public interface IReportSummary88Service {
|
||||
* 新增88项考核指标上报汇总
|
||||
*
|
||||
* @param reportSummary88VO
|
||||
* @return reportSummary88Id
|
||||
* @return reportSummaryId
|
||||
*/
|
||||
String saveReturnId(ReportSummary88VO reportSummary88VO);
|
||||
|
||||
@ -51,7 +52,7 @@ public interface IReportSummary88Service {
|
||||
*
|
||||
* @param token
|
||||
* @param reportSummary88VO
|
||||
* @return reportSummary88Id
|
||||
* @return reportSummaryId
|
||||
*/
|
||||
String saveReturnId(String token, ReportSummary88VO reportSummary88VO);
|
||||
|
||||
@ -81,23 +82,12 @@ public interface IReportSummary88Service {
|
||||
void delete(List<String> ids);
|
||||
|
||||
/**
|
||||
* 修改88项考核指标上报汇总
|
||||
* 修改88项考核指标上报审核
|
||||
*
|
||||
* @param reportSummary88Id
|
||||
* @param reportSummary88VO
|
||||
* @return
|
||||
* @param reportSummaryId
|
||||
* @param reportSummary88UpdateExamineVO
|
||||
*/
|
||||
void update(String reportSummary88Id, ReportSummary88VO reportSummary88VO);
|
||||
|
||||
/**
|
||||
* 修改88项考核指标上报汇总
|
||||
*
|
||||
* @param token
|
||||
* @param reportSummary88Id
|
||||
* @param reportSummary88VO
|
||||
* @return
|
||||
*/
|
||||
void update(String token, String reportSummary88Id, ReportSummary88VO reportSummary88VO);
|
||||
void updateExamine(String reportSummaryId, ReportSummary88UpdateExamineVO reportSummary88UpdateExamineVO);
|
||||
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
@ -110,10 +100,10 @@ public interface IReportSummary88Service {
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
*
|
||||
* @param reportSummary88Id
|
||||
* @param reportSummaryId
|
||||
* @return
|
||||
*/
|
||||
ReportSummary88DTO get(String reportSummary88Id);
|
||||
ReportSummary88DTO get(String reportSummaryId);
|
||||
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
@ -126,10 +116,10 @@ public interface IReportSummary88Service {
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
*
|
||||
* @param reportSummary88Id
|
||||
* @param reportSummaryId
|
||||
* @return
|
||||
*/
|
||||
ReportSummary88BO getBO(String reportSummary88Id);
|
||||
ReportSummary88BO getBO(String reportSummaryId);
|
||||
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
@ -142,10 +132,10 @@ public interface IReportSummary88Service {
|
||||
/**
|
||||
* 88项考核指标上报汇总详情
|
||||
*
|
||||
* @param reportSummary88Id
|
||||
* @param reportSummaryId
|
||||
* @return
|
||||
*/
|
||||
ReportSummary88PO getPO(String reportSummary88Id);
|
||||
ReportSummary88PO getPO(String reportSummaryId);
|
||||
|
||||
/**
|
||||
* 88项考核指标上报汇总列表
|
||||
@ -193,7 +183,7 @@ public interface IReportSummary88Service {
|
||||
* @param page
|
||||
* @return
|
||||
*/
|
||||
SuccessResultList<List<ListDTO>> listPageListBySelf(ListPage page);
|
||||
SuccessResultList<List<ListSelfDTO>> listPageListBySelf(ListPage page);
|
||||
|
||||
/**
|
||||
* 上报汇总详情
|
||||
@ -211,4 +201,5 @@ public interface IReportSummary88Service {
|
||||
* @return
|
||||
*/
|
||||
SuccessResultList<List<ReportSummary88DTO>> listPageExamine(ListPage page);
|
||||
|
||||
}
|
@ -3,9 +3,11 @@ package cn.com.tenlion.systemduty.service.reportsummary88.impl;
|
||||
import cn.com.tenlion.systemduty.dao.reportsummary88.IReportSummary88Dao;
|
||||
import cn.com.tenlion.systemduty.pojo.bos.reportsummary88.ReportSummary88BO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.list.ListDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ListSelfDTO;
|
||||
import cn.com.tenlion.systemduty.pojo.dtos.reportsummary88.ReportSummary88DTO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.list.ListPO;
|
||||
import cn.com.tenlion.systemduty.pojo.pos.reportsummary88.ReportSummary88PO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88UpdateExamineVO;
|
||||
import cn.com.tenlion.systemduty.pojo.vos.reportsummary88.ReportSummary88VO;
|
||||
import cn.com.tenlion.systemduty.service.discribution.department.IDistributionDepartmentService;
|
||||
import cn.com.tenlion.systemduty.service.list.IListService;
|
||||
@ -20,8 +22,10 @@ import ink.wgink.pojo.pos.DepartmentPO;
|
||||
import ink.wgink.pojo.result.SuccessResultList;
|
||||
import ink.wgink.util.ArrayListUtil;
|
||||
import ink.wgink.util.UUIDUtil;
|
||||
import ink.wgink.util.date.DateUtil;
|
||||
import ink.wgink.util.map.HashMapUtil;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@ -88,7 +92,7 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
@Override
|
||||
public void remove(String token, List<String> ids) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("reportSummary88Ids", ids);
|
||||
params.put("reportSummaryIds", ids);
|
||||
if (StringUtils.isBlank(token)) {
|
||||
setUpdateInfo(params);
|
||||
} else {
|
||||
@ -100,25 +104,18 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
@Override
|
||||
public void delete(List<String> ids) {
|
||||
Map<String, Object> params = getHashMap(2);
|
||||
params.put("reportSummary88Ids", ids);
|
||||
params.put("reportSummaryIds", ids);
|
||||
reportSummary88Dao.delete(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String reportSummary88Id, ReportSummary88VO reportSummary88VO) {
|
||||
update(null, reportSummary88Id, reportSummary88VO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void update(String token, String reportSummary88Id, ReportSummary88VO reportSummary88VO) {
|
||||
Map<String, Object> params = HashMapUtil.beanToMap(reportSummary88VO);
|
||||
params.put("reportSummary88Id", reportSummary88Id);
|
||||
if (StringUtils.isBlank(token)) {
|
||||
setUpdateInfo(params);
|
||||
} else {
|
||||
setAppUpdateInfo(token, params);
|
||||
}
|
||||
reportSummary88Dao.update(params);
|
||||
public void updateExamine(String reportSummaryId, ReportSummary88UpdateExamineVO reportSummary88UpdateExamineVO) {
|
||||
Map<String, Object> params = HashMapUtil.beanToMap(reportSummary88UpdateExamineVO);
|
||||
params.put("examineUserId", securityComponent.getCurrentUser().getUserId());
|
||||
params.put("examineTime", DateUtil.getTime());
|
||||
params.put("isComplete", reportSummary88UpdateExamineVO.getReportProcess() == 100D ? 1 : 0);
|
||||
params.put("reportSummaryId", reportSummaryId);
|
||||
reportSummary88Dao.updateExamine(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -127,9 +124,9 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportSummary88DTO get(String reportSummary88Id) {
|
||||
public ReportSummary88DTO get(String reportSummaryId) {
|
||||
Map<String, Object> params = super.getHashMap(2);
|
||||
params.put("reportSummary88Id", reportSummary88Id);
|
||||
params.put("reportSummaryId", reportSummaryId);
|
||||
return get(params);
|
||||
}
|
||||
|
||||
@ -139,9 +136,9 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportSummary88BO getBO(String reportSummary88Id) {
|
||||
public ReportSummary88BO getBO(String reportSummaryId) {
|
||||
Map<String, Object> params = super.getHashMap(2);
|
||||
params.put("reportSummary88Id", reportSummary88Id);
|
||||
params.put("reportSummaryId", reportSummaryId);
|
||||
return getBO(params);
|
||||
}
|
||||
|
||||
@ -151,9 +148,9 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
}
|
||||
|
||||
@Override
|
||||
public ReportSummary88PO getPO(String reportSummary88Id) {
|
||||
public ReportSummary88PO getPO(String reportSummaryId) {
|
||||
Map<String, Object> params = super.getHashMap(2);
|
||||
params.put("reportSummary88Id", reportSummary88Id);
|
||||
params.put("reportSummaryId", reportSummaryId);
|
||||
return getPO(params);
|
||||
}
|
||||
|
||||
@ -187,7 +184,7 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
}
|
||||
|
||||
@Override
|
||||
public SuccessResultList<List<ListDTO>> listPageListBySelf(ListPage page) {
|
||||
public SuccessResultList<List<ListSelfDTO>> listPageListBySelf(ListPage page) {
|
||||
List<DepartmentSimpleDTO> mineDepartments = securityComponent.getCurrentUser().getDepartments();
|
||||
if (mineDepartments.isEmpty()) {
|
||||
return new SuccessResultList<>(new ArrayList<>(), 1, 0L);
|
||||
@ -197,7 +194,44 @@ public class ReportSummary88ServiceImpl extends DefaultBaseService implements IR
|
||||
if (listIds.isEmpty()) {
|
||||
return new SuccessResultList<>(new ArrayList<>(), 1, 0L);
|
||||
}
|
||||
return listService.listPageByListIds(listIds, page);
|
||||
SuccessResultList<List<ListDTO>> listDTOSuccessResultList = listService.listPageByListIds(listIds, page);
|
||||
List<ListDTO> listDTOs = listDTOSuccessResultList.getRows();
|
||||
if (listDTOs.isEmpty()) {
|
||||
return new SuccessResultList<>(new ArrayList<>(), 1, 0L);
|
||||
}
|
||||
// 查询上报汇总记录
|
||||
listIds = ArrayListUtil.listBeanStringIdValue(listDTOs, "listId", ListDTO.class);
|
||||
List<ReportSummary88PO> reportSummary88POs = listPOByListIdsAndDepartmentIds(listIds, departmentIds);
|
||||
List<ListSelfDTO> listSelfDTOs = new ArrayList<>();
|
||||
listDTOs.forEach(listDTO -> {
|
||||
ListSelfDTO listSelfDTO = new ListSelfDTO();
|
||||
BeanUtils.copyProperties(listDTO, listSelfDTO);
|
||||
boolean exist = false;
|
||||
for (ReportSummary88PO reportSummary88PO : reportSummary88POs) {
|
||||
if(StringUtils.equals(listDTO.getListId(), reportSummary88PO.getListId())) {
|
||||
exist = true;
|
||||
listSelfDTO.setReportScore(reportSummary88PO.getReportScore());
|
||||
listSelfDTO.setReportProcess(reportSummary88PO.getReportProcess());
|
||||
listSelfDTO.setIsComplete(reportSummary88PO.getIsComplete());
|
||||
listSelfDTO.setExamineTime(reportSummary88PO.getExamineTime());
|
||||
listSelfDTO.setExamineUserId(reportSummary88PO.getExamineUserId());
|
||||
}
|
||||
}
|
||||
if(!exist) {
|
||||
listSelfDTO.setReportScore(0D);
|
||||
listSelfDTO.setReportProcess(0D);
|
||||
listSelfDTO.setIsComplete(0);
|
||||
}
|
||||
listSelfDTOs.add(listSelfDTO);
|
||||
});
|
||||
return new SuccessResultList<>(listSelfDTOs, listDTOSuccessResultList.getPage(), listDTOSuccessResultList.getTotal());
|
||||
}
|
||||
|
||||
private List<ReportSummary88PO> listPOByListIdsAndDepartmentIds(List<String> listIds, List<String> departmentIds) {
|
||||
Map<String, Object> params = getHashMap(4);
|
||||
params.put("listIds", listIds);
|
||||
params.put("reportDepartmentIds", departmentIds);
|
||||
return listPO(params);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,7 +5,7 @@ server:
|
||||
system-sub-title: 责任上报考核系统
|
||||
nav-page: http://127.0.0.1:7011/usercenter
|
||||
# default-index-page: route/system/index
|
||||
# default-home-page: route/system/default
|
||||
default-home-page: route/default-page/home
|
||||
servlet:
|
||||
context-path: /duty
|
||||
|
||||
@ -157,4 +157,8 @@ logging:
|
||||
level:
|
||||
root: error
|
||||
ink.wgink: debug
|
||||
cn.com.tenlion: debug
|
||||
cn.com.tenlion: debug
|
||||
|
||||
system-role:
|
||||
examiner: 674f930d-5b40-46fe-befa-6127ca556b97
|
||||
reporter: f085a0bf-ee57-42f4-bfbb-bc06ce480ffc
|
@ -58,6 +58,17 @@
|
||||
<result column="is_delete" property="isDelete"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="reportListCountDTO" type="cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportListCountDTO">
|
||||
<result column="list_id" property="listId"/>
|
||||
<result column="list_summary" property="listSummary"/>
|
||||
<result column="report_count" property="reportCount"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="reportDepartmentCountDTO" type="cn.com.tenlion.systemduty.pojo.dtos.reportcontent88.ReportDepartmentCountDTO">
|
||||
<result column="report_department_id" property="reportDepartmentId"/>
|
||||
<result column="report_count" property="reportCount"/>
|
||||
</resultMap>
|
||||
|
||||
<!-- 新增88项责任上报详情 -->
|
||||
<insert id="save" parameterType="map">
|
||||
INSERT INTO duty_report_content88(
|
||||
@ -421,6 +432,84 @@
|
||||
#{reportIds[${index}]}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="year != null and year != ''">
|
||||
AND
|
||||
LEFT(t1.gmt_create, 4) = #{year}
|
||||
</if>
|
||||
<if test="yearMonth != null and yearMonth != ''">
|
||||
AND
|
||||
LEFT(t1.gmt_create, 7) = #{yearMonth}
|
||||
</if>
|
||||
<if test="day != null and day != ''">
|
||||
AND
|
||||
LEFT(t1.gmt_create, 10) = #{day}
|
||||
</if>
|
||||
<if test="startDay != null and startDay != '' and endDay != '' and endDay != ''">
|
||||
AND
|
||||
LEFT(t1.gmt_create, 10) BETWEEN #{startDay} AND #{endDay}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 指标上报TOP10 -->
|
||||
<select id="listReportListTop10" resultMap="reportListCountDTO">
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
t1.list_id,
|
||||
jt1.list_summary,
|
||||
count(t1.list_id) report_count
|
||||
FROM
|
||||
duty_report_content88 t1
|
||||
INNER JOIN
|
||||
duty_list jt1
|
||||
ON
|
||||
t1.list_id = jt1.list_id
|
||||
AND
|
||||
jt1.is_delete = 0
|
||||
WHERE
|
||||
t1.is_delete = 0
|
||||
GROUP BY
|
||||
t1.list_id,
|
||||
jt1.list_summary
|
||||
) tmp1
|
||||
ORDER BY
|
||||
report_count DESC
|
||||
LIMIT 0, 10
|
||||
</select>
|
||||
|
||||
<!-- 部门 通过量 排名 -->
|
||||
<select id="listDepartmentReportTotal" resultMap="reportDepartmentCountDTO">
|
||||
SELECT
|
||||
*
|
||||
FROM (
|
||||
SELECT
|
||||
report_department_id,
|
||||
count(report_department_id) report_count
|
||||
FROM
|
||||
duty_report_content88
|
||||
WHERE
|
||||
is_delete = 0
|
||||
GROUP BY
|
||||
report_department_id
|
||||
) tmp1
|
||||
ORDER BY
|
||||
report_count
|
||||
</select>
|
||||
|
||||
<!-- 部门 通过量 -->
|
||||
<select id="listDepartmentReportPassTotal" resultMap="reportDepartmentCountDTO">
|
||||
SELECT
|
||||
report_department_id,
|
||||
count(report_department_id) report_count
|
||||
FROM
|
||||
duty_report_content88
|
||||
WHERE
|
||||
is_delete = 0
|
||||
AND
|
||||
examine_status = 1
|
||||
GROUP BY
|
||||
report_department_id
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -115,28 +115,16 @@
|
||||
</if>
|
||||
</update>
|
||||
|
||||
<!-- 修改88项考核指标上报汇总 -->
|
||||
<update id="update" parameterType="map">
|
||||
<!-- 修改88项考核指标上报汇总审核 -->
|
||||
<update id="updateExamine" parameterType="map">
|
||||
UPDATE
|
||||
duty_report_summary88
|
||||
SET
|
||||
<if test="reportProcess != null">
|
||||
report_process = #{reportProcess},
|
||||
</if>
|
||||
<if test="isComplete != null">
|
||||
is_complete = #{isComplete},
|
||||
</if>
|
||||
<if test="reportScore != null">
|
||||
report_score = #{reportScore},
|
||||
</if>
|
||||
<if test="examineUserId != null and examineUserId != ''">
|
||||
examine_user_id = #{examineUserId},
|
||||
</if>
|
||||
<if test="examineTime != null and examineTime != ''">
|
||||
examine_time = #{examineTime},
|
||||
</if>
|
||||
gmt_modified = #{gmtModified},
|
||||
modifier = #{modifier}
|
||||
examine_time = #{examineTime}
|
||||
WHERE
|
||||
report_summary_id = #{reportSummaryId}
|
||||
</update>
|
||||
@ -352,6 +340,20 @@
|
||||
AND
|
||||
LEFT(t1.gmt_create, 10) <![CDATA[ <= ]]> #{endTime}
|
||||
</if>
|
||||
<if test="listIds != null and listIds.size > 0">
|
||||
AND
|
||||
t1.list_id IN
|
||||
<foreach collection="listIds" index="index" open="(" separator="," close=")">
|
||||
#{listIds[${index}]}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="reportDepartmentIds != null and reportDepartmentIds.size > 0">
|
||||
AND
|
||||
t1.report_department_id IN
|
||||
<foreach collection="reportDepartmentIds" index="index" open="(" separator="," close=")">
|
||||
#{reportDepartmentIds[${index}]}
|
||||
</foreach>
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 88项考核指标上报汇总统计 -->
|
||||
|
290
src/main/resources/templates/default-page/home-admin.html
Normal file
290
src/main/resources/templates/default-page/home-admin.html
Normal file
@ -0,0 +1,290 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div id="app" class="layui-fluid layui-anim layui-anim-fadein" v-cloak>
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-xs3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
总上报量
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="totalReportCount" class="layuiadmin-big-font">0</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
年度上报量
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="yearReportCount" class="layuiadmin-big-font">0</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
本月上报量
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="monthReportCount" class="layuiadmin-big-font">0</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs3">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
本周上报量
|
||||
</div>
|
||||
<div class="layui-card-body layuiadmin-card-list">
|
||||
<p id="weekReportCount" class="layuiadmin-big-font">0</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
本周热门指标上报TOP10
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<table lay-filter="reportListTop10Table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th lay-data="{field:'index', width: '15%', align: 'center'}">排名</th>
|
||||
<th lay-data="{field:'listSummary', width: '65%', align: 'center'}">清单详情</th>
|
||||
<th lay-data="{field:'reportCount', width: '20%', align: 'center'}">数量</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(top10,index) in listReportListTop10">
|
||||
<td>{{index + 1}}</td>
|
||||
<td>{{top10.listSummary}}</td>
|
||||
<td>{{top10.reportCount}}</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-xs6">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
本周每日上报量
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div id="weekDayReport" style="width: 100%; height: 200px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-col-xs12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
部门 上报量/通过量 排名
|
||||
</div>
|
||||
<div class="layui-card-body">
|
||||
<div id="departmentReportTotalPass" style="width: 100%; height: 300px;"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/js/vue.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'common', 'animate-numbers', 'echarts'], function() {
|
||||
var $ = layui.$;
|
||||
var table = layui.table;
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
totalReportCount: 0,
|
||||
yearReportCount: 0,
|
||||
monthReportCount: 0,
|
||||
weekReportCount: 0,
|
||||
listReportListTop10: [],
|
||||
echartsConfig: {
|
||||
grid: {
|
||||
z: 0,
|
||||
left: 40,
|
||||
top: 30,
|
||||
right: 10,
|
||||
bottom: 20,
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'cross'
|
||||
}
|
||||
},
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
countTotalReport: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/count-total-report', []), {}, null, function(code, data) {
|
||||
self.totalReportCount = data.data;
|
||||
self.$nextTick(function() {
|
||||
$('#totalReportCount').animateNumbers(self.totalReportCount);
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
countYearReport: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/count-year-report', []), {}, null, function(code, data) {
|
||||
self.yearReportCount = data.data;
|
||||
self.$nextTick(function() {
|
||||
$('#yearReportCount').animateNumbers(self.yearReportCount);
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
countMonthReport: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/count-month-report', []), {}, null, function(code, data) {
|
||||
self.monthReportCount = data.data;
|
||||
self.$nextTick(function() {
|
||||
$('#monthReportCount').animateNumbers(self.monthReportCount);
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
countWeekReport: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/count-week-report', []), {}, null, function(code, data) {
|
||||
self.weekReportCount = data.data;
|
||||
self.$nextTick(function() {
|
||||
$('#weekReportCount').animateNumbers(self.weekReportCount);
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
reportListTop10: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/list-report-list-top10', []), {}, null, function(code, data) {
|
||||
self.listReportListTop10 = data;
|
||||
self.$nextTick(function() {
|
||||
table.init('reportListTop10Table', {
|
||||
height: 200,
|
||||
limit: 10
|
||||
});
|
||||
})
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
weekDayReport: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/week-day-report', []), {}, null, function(code, data) {
|
||||
var weekDayReport = echarts.init(document.getElementById('weekDayReport'));
|
||||
weekDayReport.setOption({
|
||||
grid: [self.echartsConfig.grid],
|
||||
tooltip: self.echartsConfig.tooltip,
|
||||
legend: {
|
||||
right: 0,
|
||||
data: ['上报量']
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: data.data.xData
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: data.data.yData,
|
||||
name: '上报量',
|
||||
type: 'line',
|
||||
smooth: true
|
||||
}
|
||||
]
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
},
|
||||
departmentReportTotalPass: function() {
|
||||
var self = this;
|
||||
top.restAjax.get(top.restAjax.path('api/duty-count/department-report-total-pass', []), {}, null, function(code, data) {
|
||||
var departmentReportTotalPass = echarts.init(document.getElementById('departmentReportTotalPass'));
|
||||
departmentReportTotalPass.setOption({
|
||||
grid: [self.echartsConfig.grid],
|
||||
tooltip: self.echartsConfig.tooltip,
|
||||
legend: {
|
||||
right: 0,
|
||||
data: ['上报量', '通过量']
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: data.data.xData
|
||||
},
|
||||
yAxis: {
|
||||
type: 'value'
|
||||
},
|
||||
series: [
|
||||
{
|
||||
data: data.data.yData1,
|
||||
name: '上报量',
|
||||
type: 'bar',
|
||||
showBackground: true,
|
||||
backgroundStyle: {
|
||||
color: 'rgba(180, 180, 180, 0.2)'
|
||||
}
|
||||
},
|
||||
{
|
||||
data: data.data.yData2,
|
||||
name: '通过量',
|
||||
type: 'bar',
|
||||
showBackground: true,
|
||||
backgroundStyle: {
|
||||
color: 'rgba(180, 180, 180, 0.2)'
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
});
|
||||
}
|
||||
},
|
||||
mounted: function() {
|
||||
var self = this;
|
||||
self.countTotalReport();
|
||||
self.countYearReport();
|
||||
self.countMonthReport();
|
||||
self.countWeekReport();
|
||||
self.reportListTop10();
|
||||
self.weekDayReport();
|
||||
self.departmentReportTotalPass();
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
32
src/main/resources/templates/default-page/home-examine.html
Normal file
32
src/main/resources/templates/default-page/home-examine.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid layui-anim layui-anim-fadein" style="padding: 0;">
|
||||
<h1>examine</h1>
|
||||
</div>
|
||||
<script src="assets/js/vue.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'common'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
32
src/main/resources/templates/default-page/home-report.html
Normal file
32
src/main/resources/templates/default-page/home-report.html
Normal file
@ -0,0 +1,32 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" type="text/css" href="assets/js/vendor/viewer/viewer.min.css">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid layui-anim layui-anim-fadein" style="padding: 0;">
|
||||
<h1>report</h1>
|
||||
</div>
|
||||
<script src="assets/js/vue.min.js"></script>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'common'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -109,7 +109,7 @@
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'examineUserId', width: 100, title: '审核用户', align:'center',
|
||||
{field: 'examineUserName', width: 100, title: '审核人', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
|
@ -0,0 +1,202 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-anim layui-anim-fadein">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md12">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body">
|
||||
<div class="test-table-reload-btn" style="margin-bottom: 10px;">
|
||||
<div class="layui-inline">
|
||||
<input type="text" id="keywords" class="layui-input search-item" placeholder="输入上报标题">
|
||||
</div>
|
||||
<button type="button" id="search" class="layui-btn layui-btn-sm">
|
||||
<i class="fa fa-lg fa-search"></i> 搜索
|
||||
</button>
|
||||
</div>
|
||||
<table class="layui-hide" id="dataTable" lay-filter="dataTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script src="assets/js/vendor/viewer/viewer.min.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/'
|
||||
}).extend({
|
||||
index: 'lib/index'
|
||||
}).use(['index', 'table', 'laydate', 'common'], function() {
|
||||
var $ = layui.$;
|
||||
var $win = $(window);
|
||||
var table = layui.table;
|
||||
var admin = layui.admin;
|
||||
var laydate = layui.laydate;
|
||||
var common = layui.common;
|
||||
var resizeTimeout = null;
|
||||
var listId = top.restAjax.params(window.location.href).listId;
|
||||
var tableUrl = 'api/report-content88/listpage/self/list-id/{listId}';
|
||||
|
||||
// 初始化表格
|
||||
function initTable() {
|
||||
table.render({
|
||||
elem: '#dataTable',
|
||||
id: 'dataTable',
|
||||
url: top.restAjax.path(tableUrl, [listId]),
|
||||
width: admin.screen() > 1 ? '100%' : '',
|
||||
height: $win.height() - 60,
|
||||
limit: 20,
|
||||
limits: [20, 40, 60, 80, 100, 200],
|
||||
request: {
|
||||
pageName: 'page',
|
||||
limitName: 'rows'
|
||||
},
|
||||
cols: [
|
||||
[
|
||||
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
||||
{field: 'reportTitle', width: 200, title: '上报标题', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'examineStatus', width: 100, title: '审核状态', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(!rowData) {
|
||||
return '<span class="layui-badge layui-bg-blue">未审核</span>';
|
||||
}
|
||||
if(rowData === 1) {
|
||||
return '<span class="layui-badge layui-bg-green">已审核</span>'
|
||||
}
|
||||
if(rowData === -1) {
|
||||
return '<span class="layui-badge">审核失败</span>'
|
||||
}
|
||||
return '<span class="layui-badge layui-bg-black">错误</span>';
|
||||
}
|
||||
},
|
||||
{field: 'examineResult', width: 180, title: '审核结果', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'examineTime', width: 180, title: '审核时间', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'examineUserId', width: 100, title: '审核用户', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'gmtCreate', width: 180, title: '创建时间', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'option', width: 80, title: '操作', align:'center', fixed: 'right',
|
||||
templet: function(row) {
|
||||
return '<button type="button" class="layui-btn layui-btn-xs layui-btn-primary" lay-event="detailEvent">详情</button>';
|
||||
}
|
||||
},
|
||||
]
|
||||
],
|
||||
page: true,
|
||||
parseData: function(data) {
|
||||
return {
|
||||
'code': 0,
|
||||
'msg': '',
|
||||
'count': data.total,
|
||||
'data': data.rows
|
||||
};
|
||||
}
|
||||
});
|
||||
}
|
||||
// 重载表格
|
||||
function reloadTable(currentPage) {
|
||||
table.reload('dataTable', {
|
||||
where: {
|
||||
keywords: $('#keywords').val(),
|
||||
startTime: $('#startTime').val(),
|
||||
endTime: $('#endTime').val()
|
||||
},
|
||||
page: {
|
||||
curr: currentPage
|
||||
},
|
||||
});
|
||||
}
|
||||
// 初始化日期
|
||||
function initDate() {
|
||||
// 日期选择
|
||||
laydate.render({
|
||||
elem: '#startTime',
|
||||
format: 'yyyy-MM-dd'
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#endTime',
|
||||
format: 'yyyy-MM-dd'
|
||||
});
|
||||
}
|
||||
|
||||
initTable();
|
||||
initDate();
|
||||
// 事件 - 页面变化
|
||||
$win.on('resize', function() {
|
||||
clearTimeout(resizeTimeout);
|
||||
resizeTimeout = setTimeout(function() {
|
||||
reloadTable();
|
||||
}, 500);
|
||||
});
|
||||
// 事件 - 搜索
|
||||
$(document).on('click', '#search', function() {
|
||||
reloadTable(1);
|
||||
});
|
||||
|
||||
table.on('tool(dataTable)', function(obj) {
|
||||
var data = obj.data;
|
||||
var event = obj.event;
|
||||
if(event === 'detailEvent') {
|
||||
top.dialog.open({
|
||||
url: top.restAjax.path('route/report-content88/get-detail?reportId={reportId}', [data.reportId]),
|
||||
title: '查看详情',
|
||||
width: '600px',
|
||||
height: '80%',
|
||||
onClose: function() {}
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -72,7 +72,7 @@
|
||||
cols: [
|
||||
[
|
||||
{field:'rowNum', width:80, title: '序号', fixed: 'left', align:'center', templet: '<span>{{d.LAY_INDEX}}</span>'},
|
||||
{field: 'reportDepartmentName', width: 180, title: '上报部门名称', align:'center',
|
||||
{field: 'reportDepartmentName', width: 120, title: '上报部门', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
@ -112,25 +112,28 @@
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'isComplete', width: 180, title: '是否完成', align:'center',
|
||||
{field: 'isComplete', width: 100, title: '完成状态', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
if(rowData == '0') {
|
||||
return '<span class="layui-badge">未完成</span>';
|
||||
}
|
||||
return rowData;
|
||||
if(rowData == '1') {
|
||||
return '<span class="layui-badge layui-bg-green">已完成</span>';
|
||||
}
|
||||
return '<span class="layui-badge layui-bg-black">错误</span>';
|
||||
}
|
||||
},
|
||||
{field: 'reportScore', width: 180, title: '上报得分', align:'center',
|
||||
{field: 'reportScore', width: 100, title: '得分情况', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
if(!rowData) {
|
||||
return '0分';
|
||||
}
|
||||
return rowData;
|
||||
return rowData +'分';
|
||||
}
|
||||
},
|
||||
{field: 'examineUserId', width: 180, title: '审核人', align:'center',
|
||||
{field: 'examineUserName', width: 100, title: '审核人', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
@ -227,6 +230,16 @@
|
||||
height: '80%',
|
||||
onClose: function() {}
|
||||
});
|
||||
} else if(event === 'examineProcessEvent') {
|
||||
top.dialog.open({
|
||||
url: top.restAjax.path('route/report-summary88/update-examine?reportSummaryId={reportSummaryId}', [data.reportSummaryId]),
|
||||
title: '【'+ data.reportDepartmentName +'】'+ data.listSummary,
|
||||
width: '500px',
|
||||
height: '250px',
|
||||
onClose: function() {
|
||||
reloadTable();
|
||||
}
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
|
@ -92,7 +92,37 @@
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'listOrder', width: 100, title: '清单排序', align:'center',
|
||||
{field: 'isComplete', width: 100, title: '完成状态', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(rowData == '0') {
|
||||
return '<span class="layui-badge">未完成</span>';
|
||||
}
|
||||
if(rowData == '1') {
|
||||
return '<span class="layui-badge layui-bg-green">已完成</span>';
|
||||
}
|
||||
return '<span class="layui-badge layui-bg-black">错误</span>';
|
||||
}
|
||||
},
|
||||
{field: 'reportScore', width: 100, title: '得分情况', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(!rowData) {
|
||||
return '0分';
|
||||
}
|
||||
return rowData +'分';
|
||||
}
|
||||
},
|
||||
{field: 'examineUserName', width: 100, title: '审核人', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
{field: 'examineTime', width: 180, title: '审核时间', align:'center',
|
||||
templet: function(row) {
|
||||
var rowData = row[this.field];
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
@ -107,6 +137,9 @@
|
||||
if(typeof(rowData) === 'undefined' || rowData == null || rowData == '') {
|
||||
return '-';
|
||||
}
|
||||
if(rowData < 0) {
|
||||
return '不记录';
|
||||
}
|
||||
return rowData;
|
||||
}
|
||||
},
|
||||
@ -121,6 +154,9 @@
|
||||
},
|
||||
{field: 'option', width: 80, title: '操作', align:'center', fixed: 'right',
|
||||
templet: function(row) {
|
||||
if(row.isComplete) {
|
||||
return '<button class="layui-btn layui-btn-xs layui-btn-primary" lay-event="reportHistoryListEvent">记录</button>';
|
||||
}
|
||||
return '<button class="layui-btn layui-btn-xs" lay-event="reportEvent">上报</button>';
|
||||
}
|
||||
},
|
||||
@ -209,6 +245,14 @@
|
||||
height: '80%',
|
||||
onClose: function() {}
|
||||
});
|
||||
} else if(event === 'reportHistoryListEvent') {
|
||||
top.dialog.open({
|
||||
url: top.restAjax.path('route/report-content88/list-self-history?listId={listId}', [data.listId]),
|
||||
title: data.listSummary,
|
||||
width: '80%',
|
||||
height: '80%',
|
||||
onClose: function() {}
|
||||
});
|
||||
}
|
||||
})
|
||||
});
|
||||
|
@ -1,170 +0,0 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid layui-anim layui-anim-fadein">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
|
||||
<a class="close" href="javascript:void(0);">上级列表</a><span lay-separator="">/</span>
|
||||
<a href="javascript:void(0);"><cite>新增内容</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 15px;">
|
||||
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">主键</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="reportSummaryId" name="reportSummaryId" class="layui-input" value="" placeholder="请输入主键" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报部门ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="reportDepartmentId" name="reportDepartmentId" class="layui-input" value="" placeholder="请输入上报部门ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报进度</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" step="0.01" id="reportProcess" name="reportProcess" class="layui-input" value="" placeholder="请输入上报进度" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目录ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="catalogueId" name="catalogueId" class="layui-input" value="" placeholder="请输入目录ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目录编码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="catalogueCode" name="catalogueCode" class="layui-input" value="" placeholder="请输入目录编码" maxlength="255">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">清单ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="listId" name="listId" class="layui-input" value="" placeholder="请输入清单ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否完成</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" id="isComplete" name="isComplete" class="layui-input" value="0" placeholder="请输入是否完成" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报得分</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" step="0.01" id="reportScore" name="reportScore" class="layui-input" value="" placeholder="请输入上报得分" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="examineUserId" name="examineUserId" class="layui-input" value="" placeholder="请输入审核人" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="examineTime" name="examineTime" class="layui-input" value="" placeholder="请选择审核时间" readonly style="cursor: pointer;" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交新增</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
var laytpl = layui.laytpl;
|
||||
var laydate = layui.laydate;
|
||||
|
||||
function closeBox() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 初始化审核时间时间戳
|
||||
function initExamineTimeDateTime() {
|
||||
laydate.render({
|
||||
elem: '#examineTime',
|
||||
type: 'datetime',
|
||||
value: new Date(),
|
||||
trigger: 'click'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 初始化内容
|
||||
function initData() {
|
||||
initExamineTimeDateTime();
|
||||
}
|
||||
initData();
|
||||
|
||||
// 提交表单
|
||||
form.on('submit(submitForm)', function(formData) {
|
||||
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.post(top.restAjax.path('api/report-summary88/save', []), formData.field, null, function(code, data) {
|
||||
var layerIndex = top.dialog.msg(top.dataMessage.commitSuccess, {
|
||||
time: 0,
|
||||
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||
shade: 0.3,
|
||||
yes: function(index) {
|
||||
top.dialog.close(index);
|
||||
window.location.reload();
|
||||
},
|
||||
btn2: function() {
|
||||
closeBox();
|
||||
}
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.close').on('click', function() {
|
||||
closeBox();
|
||||
});
|
||||
|
||||
// 校验
|
||||
form.verify({
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -0,0 +1,133 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-anim layui-anim-fadein">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-body" style="padding: 15px;">
|
||||
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报得分</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" step="0.01" id="reportScore" name="reportScore" class="layui-input" value="0" placeholder="请输入上报得分" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item" pane>
|
||||
<label class="layui-form-label">完成进度</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" id="reportProcess" name="reportProcess" value="0">
|
||||
<div style="padding: 17px;">
|
||||
<div id="reportProcessBar"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'form', 'laydate', 'laytpl', 'slider'], function(){
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
var laytpl = layui.laytpl;
|
||||
var laydate = layui.laydate;
|
||||
var slider = layui.slider;
|
||||
var reportSummaryId = top.restAjax.params(window.location.href).reportSummaryId;
|
||||
var sliderObj;
|
||||
|
||||
function closeBox() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
}
|
||||
|
||||
function initSlider() {
|
||||
sliderObj = slider.render({
|
||||
elem: '#reportProcessBar',
|
||||
change: function(value) {
|
||||
$('#reportProcess').val(value);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// 初始化内容
|
||||
function initData() {
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(top.restAjax.path('api/report-summary88/get/{reportSummaryId}', [reportSummaryId]), {}, null, function(code, data) {
|
||||
form.val('dataForm', {
|
||||
reportScore: data.reportScore,
|
||||
reportProcess: data.reportProcess
|
||||
});
|
||||
form.render(null, 'dataForm');
|
||||
sliderObj.setValue(data.reportProcess)
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initSlider();
|
||||
initData();
|
||||
|
||||
// 提交表单
|
||||
form.on('submit(submitForm)', function(formData) {
|
||||
top.dialog.confirm('当进度为100时,表示该指标该部门已经上报完成,无需再继续上报。确定提交吗?', function(index) {
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/report-summary88/update-examine/{reportSummaryId}', [reportSummaryId]), formData.field, null, function(code, data) {
|
||||
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
|
||||
time: 0,
|
||||
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||
shade: 0.3,
|
||||
yes: function(index) {
|
||||
top.dialog.close(index);
|
||||
window.location.reload();
|
||||
},
|
||||
btn2: function() {
|
||||
closeBox();
|
||||
}
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.close').on('click', function() {
|
||||
closeBox();
|
||||
});
|
||||
|
||||
// 校验
|
||||
form.verify({
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -1,187 +0,0 @@
|
||||
<!doctype html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head>
|
||||
<base th:href="${#request.getContextPath() + '/'}">
|
||||
<meta charset="utf-8">
|
||||
<meta name="renderer" content="webkit">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0">
|
||||
<link rel="stylesheet" href="assets/fonts/font-awesome/css/font-awesome.css"/>
|
||||
<link rel="stylesheet" href="assets/layuiadmin/layui/css/layui.css" media="all">
|
||||
<link rel="stylesheet" href="assets/layuiadmin/style/admin.css" media="all">
|
||||
</head>
|
||||
<body>
|
||||
<div class="layui-fluid layui-anim layui-anim-fadein">
|
||||
<div class="layui-card">
|
||||
<div class="layui-card-header">
|
||||
<span class="layui-breadcrumb" lay-filter="breadcrumb" style="visibility: visible;">
|
||||
<a class="close" href="javascript:void(0);">上级列表</a><span lay-separator="">/</span>
|
||||
<a href="javascript:void(0);"><cite>编辑内容</cite></a>
|
||||
</span>
|
||||
</div>
|
||||
<div class="layui-card-body" style="padding: 15px;">
|
||||
<form class="layui-form layui-form-pane" lay-filter="dataForm">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">主键</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="reportSummaryId" name="reportSummaryId" class="layui-input" value="" placeholder="请输入主键" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报部门ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="reportDepartmentId" name="reportDepartmentId" class="layui-input" value="" placeholder="请输入上报部门ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报进度</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" step="0.01" id="reportProcess" name="reportProcess" class="layui-input" value="" placeholder="请输入上报进度" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目录ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="catalogueId" name="catalogueId" class="layui-input" value="" placeholder="请输入目录ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">目录编码</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="catalogueCode" name="catalogueCode" class="layui-input" value="" placeholder="请输入目录编码" maxlength="255">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">清单ID</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="listId" name="listId" class="layui-input" value="" placeholder="请输入清单ID" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否完成</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" id="isComplete" name="isComplete" class="layui-input" value="0" placeholder="请输入是否完成" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">上报得分</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="number" step="0.01" id="reportScore" name="reportScore" class="layui-input" value="" placeholder="请输入上报得分" lay-verify="required">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核人</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="examineUserId" name="examineUserId" class="layui-input" value="" placeholder="请输入审核人" maxlength="36">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">审核时间</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" id="examineTime" name="examineTime" class="layui-input" value="" placeholder="请选择审核时间" lay-verify="required" readonly style="cursor: pointer;">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item layui-layout-admin">
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-footer" style="left: 0;">
|
||||
<button type="button" class="layui-btn" lay-submit lay-filter="submitForm">提交编辑</button>
|
||||
<button type="button" class="layui-btn layui-btn-primary close">返回上级</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script src="assets/layuiadmin/layui/layui.js"></script>
|
||||
<script>
|
||||
layui.config({
|
||||
base: 'assets/layuiadmin/' //静态资源所在路径
|
||||
}).extend({
|
||||
index: 'lib/index' //主入口模块
|
||||
}).use(['index', 'form', 'laydate', 'laytpl'], function(){
|
||||
var $ = layui.$;
|
||||
var form = layui.form;
|
||||
var laytpl = layui.laytpl;
|
||||
var laydate = layui.laydate;
|
||||
var reportSummary88Id = top.restAjax.params(window.location.href).reportSummary88Id;
|
||||
|
||||
|
||||
function closeBox() {
|
||||
parent.layer.close(parent.layer.getFrameIndex(window.name));
|
||||
}
|
||||
|
||||
|
||||
|
||||
// 初始化审核时间时间戳
|
||||
function initExamineTimeDateTime() {
|
||||
laydate.render({
|
||||
elem: '#examineTime',
|
||||
type: 'datetime',
|
||||
value: new Date(),
|
||||
trigger: 'click'
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 初始化内容
|
||||
function initData() {
|
||||
var loadLayerIndex;
|
||||
top.restAjax.get(top.restAjax.path('api/report-summary88/get/{reportSummary88Id}', [reportSummary88Id]), {}, null, function(code, data) {
|
||||
var dataFormData = {};
|
||||
for(var i in data) {
|
||||
dataFormData[i] = data[i] +'';
|
||||
}
|
||||
form.val('dataForm', dataFormData);
|
||||
form.render(null, 'dataForm');
|
||||
initExamineTimeDateTime();
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.loading, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
}
|
||||
initData();
|
||||
|
||||
// 提交表单
|
||||
form.on('submit(submitForm)', function(formData) {
|
||||
top.dialog.confirm(top.dataMessage.commit, function(index) {
|
||||
top.dialog.close(index);
|
||||
var loadLayerIndex;
|
||||
top.restAjax.put(top.restAjax.path('api/report-summary88/update/{reportSummary88Id}', [reportSummary88Id]), formData.field, null, function(code, data) {
|
||||
var layerIndex = top.dialog.msg(top.dataMessage.updateSuccess, {
|
||||
time: 0,
|
||||
btn: [top.dataMessage.button.yes, top.dataMessage.button.no],
|
||||
shade: 0.3,
|
||||
yes: function(index) {
|
||||
top.dialog.close(index);
|
||||
window.location.reload();
|
||||
},
|
||||
btn2: function() {
|
||||
closeBox();
|
||||
}
|
||||
});
|
||||
}, function(code, data) {
|
||||
top.dialog.msg(data.msg);
|
||||
}, function() {
|
||||
loadLayerIndex = top.dialog.msg(top.dataMessage.committing, {icon: 16, time: 0, shade: 0.3});
|
||||
}, function() {
|
||||
top.dialog.close(loadLayerIndex);
|
||||
});
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
$('.close').on('click', function() {
|
||||
closeBox();
|
||||
});
|
||||
|
||||
// 校验
|
||||
form.verify({
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue
Block a user