package com.moral.api.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.apache.commons.collections4.CollectionUtils; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.moral.api.entity.AllocationLog; import com.moral.api.pojo.enums.SysDictTypeEnum; import com.moral.api.pojo.ext.allocation.AllocationExt; import com.moral.api.pojo.ext.allocation.AllocationPageExt; import com.moral.api.pojo.query.allocation.*; import com.moral.api.pojo.query.allocationextension.AllocationExtensionAddCond; import com.moral.api.pojo.vo.allocation.AllocationPageVo; import com.moral.api.pojo.vo.allocation.AllocationVo; import com.moral.constant.PageResult; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.ObjectUtils; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.moral.api.entity.ResponsibilityUnit; import com.moral.api.service.AllocationService; import com.moral.api.utils.EasyExcelUtils; import com.moral.api.utils.NoModelWriteData; import com.moral.constant.Constants; import com.moral.constant.ResultMessage; import com.moral.util.DateUtils; import com.moral.util.WebUtils; import javax.validation.Valid; @Api(tags = {"立行立改"}) @RestController @RequestMapping("allocation") public class AllocationController { @Autowired private AllocationService allocationService; @ApiOperation(value = "污染类型", notes = "污染类型") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "contaminate", method = RequestMethod.GET) public ResultMessage contaminate() { List> professions = allocationService.sysDictData(Constants.WU_RAN_LEI_XING); return ResultMessage.ok(professions); } @ApiOperation(value = "责任单位", notes = "责任单位") @ApiImplicitParams({ @ApiImplicitParam(name = "token", value = "token", required = true, paramType = "header", dataType = "String") }) @RequestMapping(value = "unit", method = RequestMethod.GET) public ResultMessage unit() { List responsibilityUnits = allocationService.seleteUnit(); return ResultMessage.ok(responsibilityUnits); } /** * 添加交办单 * @return */ @PostMapping("insert") @ApiOperation("新增") public ResultMessage insert(@Valid @RequestBody AllocationAddCond allocation){ allocationService.insertAllocation(allocation); return ResultMessage.ok(); } /** * 修改表单 * @param allocationUpdateCond * @return * * */ @PostMapping("update") @ApiOperation("修改") public ResultMessage update(@Valid @RequestBody AllocationUpdateCond allocationUpdateCond){ allocationService.updateAll(allocationUpdateCond); return ResultMessage.ok(); } @PostMapping("change") @ApiOperation("整改") public ResultMessage changeAllocation(@Valid @RequestBody AllocationChangeCond changeCond){ allocationService.changeAllocation(changeCond); return ResultMessage.ok(); } @PostMapping("check") @ApiOperation("审批") public ResultMessage checkAllocation(@Valid @RequestBody AllocationCheckCond checkCond){ allocationService.checkAllocation(checkCond); return ResultMessage.ok(); } @PostMapping("/page") @ApiOperation("分页") public ResultMessage> page(@Valid @RequestBody AllocationPageCond allocationPageCond) { Page page = allocationService.extPage(allocationPageCond); PageResult result = new PageResult<>(page); result.setList(AllocationPageVo.convert(page.getRecords())); return ResultMessage.ok(result); } @GetMapping("/detail") @ApiOperation("详情") public ResultMessage get(Integer id) { AllocationExt allocationext = allocationService.extOne(id); AllocationVo allocationVo = AllocationVo.convert(allocationext); allocationVo.setFileBaseList(allocationext.getFileBaseList()); allocationVo.setFileChangeList(allocationext.getFileChangeList()); allocationVo.setFileApproveList(allocationext.getFileApproveList()); allocationVo.setApproveList(allocationext.getApproveList()); allocationVo.setTime(DateUtils.dateToDateString(allocationVo.getEscalationTime(), DateUtils.yyyy_MM_dd_CN)); return ResultMessage.ok(allocationVo); } @GetMapping("remove") @ApiOperation("删除") public ResultMessage removeById(Integer id){ allocationService.removeById(id); return ResultMessage.ok(); } @GetMapping("invalid") @ApiOperation("作废") public ResultMessage invalidResult(@RequestParam @ApiParam(value = "id",name = "主键id") Integer id, @RequestParam @ApiParam(value = "invalidReason",name = "作废理由") String invalidReason){ allocationService.invalidResult(id,invalidReason); return ResultMessage.ok(); } @PostMapping("/applyfor") @ApiOperation("申请延期") public ResultMessage applyFor(@Valid @RequestBody AllocationExtensionAddCond allocationExtensionAddCond) { return allocationService.applyFor(allocationExtensionAddCond) ? ResultMessage.ok() : ResultMessage.fail(); } /** * 查询表单总览 * @return */ @GetMapping("selectUnitView") @ApiOperation("表单总览") public ResultMessage selectUnitView(HttpServletRequest request){ Map params = WebUtils.getParametersStartingWith(request, null); Map map1 = allocationService.selectUnitView(params); return ResultMessage.ok(ObjectUtils.isEmpty(map1)? "0":map1); } @GetMapping("unitExel") public void unitExel(HttpServletResponse response,HttpServletRequest request){ Map params = WebUtils.getParametersStartingWith(request, null); //数据集合 List> mapArrayList = allocationService.unitExel(params); if (CollectionUtils.isEmpty(mapArrayList)) { return; } Map map = mapArrayList.get(0); List list = new ArrayList<>(); for (String key : map.keySet()) { list.add(key); } String[] s2 = new String[list.size()]; list.toArray(s2); NoModelWriteData d = new NoModelWriteData(); d.setFileName("数据导出"); d.setHeadMap(s2); d.setDataStrMap(s2); d.setDataList(mapArrayList); try { EasyExcelUtils easyExcelUtils = new EasyExcelUtils(); easyExcelUtils.noModleWrite(d, response); } catch (Exception e) { int i = 0; } } @GetMapping("updataUnit") @ApiOperation("修改责任单位") public ResultMessage updataUnit(@RequestParam @ApiParam(value = "id",name = "主键id") Integer id, @RequestParam @ApiParam(value = "unitId",name = "责任主题Id") Integer unitId, @RequestParam @ApiParam(value = "polluteType",name = "污染分类Id") Integer polluteType){ allocationService.updataUnit(id,unitId,polluteType); return ResultMessage.ok(); } @GetMapping("getLog") @ApiOperation("修改记录") public ResultMessage getLog(@RequestParam @ApiParam(value = "allocationNum",name = "责任单号") String allocationNum){ List log = allocationService.getLog(allocationNum); return ResultMessage.ok(log); } }