package com.huaheng.pc.config.statusFlow.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.huaheng.common.support.Convert; import com.huaheng.common.utils.StringUtils; import com.huaheng.common.utils.security.ShiroUtils; import com.huaheng.framework.aspectj.lang.annotation.Log; import com.huaheng.framework.aspectj.lang.constant.BusinessType; import com.huaheng.framework.web.controller.BaseController; import com.huaheng.framework.web.domain.AjaxResult; import com.huaheng.framework.web.page.PageDomain; import com.huaheng.framework.web.page.TableDataInfo; import com.huaheng.framework.web.page.TableSupport; import com.huaheng.pc.config.statusFlow.domain.StatusFlowDetail; import com.huaheng.pc.config.statusFlow.domain.StatusFlowHeader; import com.huaheng.pc.config.statusFlow.service.StatusFlowDetailService; import com.huaheng.pc.config.statusFlow.service.StatusFlowHeaderService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Api(tags = "流程明细") @Controller @RequestMapping("/config/statusFlowDetail") public class StatusFlowDetailController extends BaseController { @Resource private StatusFlowDetailService statusFlowDetailService; @Resource private StatusFlowHeaderService statusFlowHeaderService; private String prefix = "config/statusFlowDetail"; @RequiresPermissions("config:statusFlowDetail:view") @GetMapping("/list/{id}") public String bomHeader(@PathVariable("id")Integer id, ModelMap mmap) { mmap.put("headerId",id); return prefix + "/statusFlowDetail"; } @ApiOperation(value="查看流程明细", notes="根据状态流、模块、类型、是否必须、创建时间查询流程明细", httpMethod = "POST") @RequiresPermissions("config:statusFlowDetail:list") @Log(title = "配置-流程明细", operating = "查看流程明细列表", action = BusinessType.GRANT) @PostMapping("/list") @ResponseBody public TableDataInfo list( @ApiParam(name="carrier",value="状态流、模块、类型、是否必须") StatusFlowDetail statusFlowDetail, @ApiParam(name = "createdBegin", value = "起止时间") String createdBegin, @ApiParam(name = "createdEnd", value = "结束时间") String createdEnd) { LambdaQueryWrapper<StatusFlowDetail> lambdaQueryWrapper = Wrappers.lambdaQuery(); PageDomain pageDomain = TableSupport.buildPageRequest(); Integer pageNum = pageDomain.getPageNum(); Integer pageSize = pageDomain.getPageSize(); lambdaQueryWrapper.gt(StringUtils.isNotEmpty(createdBegin), StatusFlowDetail::getCreated, createdBegin) .lt(StringUtils.isNotEmpty(createdEnd), StatusFlowDetail::getCreated, createdEnd) .eq(StatusFlowDetail::getWarehouseCode, ShiroUtils.getWarehouseCode()) .eq(StringUtils.isNotNull(statusFlowDetail.getHeaderId()), StatusFlowDetail::getHeaderId, statusFlowDetail.getHeaderId()) .eq(StringUtils.isNotEmpty(statusFlowDetail.getFlowCode()), StatusFlowDetail::getFlowCode, statusFlowDetail.getFlowCode()) .eq(StringUtils.isNotEmpty(statusFlowDetail.getModuleType()), StatusFlowDetail::getModuleType, statusFlowDetail.getModuleType()) .eq(StringUtils.isNotEmpty(statusFlowDetail.getRecordType()), StatusFlowDetail::getRecordType, statusFlowDetail.getRecordType()) .eq(StringUtils.isNotNull(statusFlowDetail.getNessary()), StatusFlowDetail::getNessary, statusFlowDetail.getNessary()) .orderByAsc(StatusFlowDetail::getSequence); if (StringUtils.isNotNull(pageNum) && StringUtils.isNotNull(pageSize)){ /*使用分页查询*/ Page<StatusFlowDetail> page = new Page<>(pageNum, pageSize); IPage<StatusFlowDetail> iPage = statusFlowDetailService.page(page, lambdaQueryWrapper); return getMpDataTable(iPage.getRecords(), iPage.getTotal()); } else { List<StatusFlowDetail> list = statusFlowDetailService.list(lambdaQueryWrapper); return getDataTable(list); } } /** * 新增流程明细 */ @GetMapping("/add/{headerId}") public String add(@PathVariable("headerId")Integer headerId, ModelMap mmap) { StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(headerId); mmap.put("headerId",headerId); mmap.put("headerCode", statusFlowHeader.getCode()); mmap.put("moduleType", statusFlowHeader.getModuleType()); return prefix + "/add"; } /** * 新增保存流程明细 */ @ApiOperation(value="新增流程明细", notes="新增流程明细", httpMethod = "POST") @RequiresPermissions("config:statusFlowDetail:add") @Log(title = "配置-流程明细", operating = "新增流程明细", action = BusinessType.INSERT) @PostMapping("/add") @ResponseBody public AjaxResult addSave(@ApiParam(name = "containerType", value = "流程明细", required = true) StatusFlowDetail statusFlowDetail) { StatusFlowHeader statusFlowHeader = statusFlowHeaderService.getById(statusFlowDetail.getHeaderId()); statusFlowDetail.setModuleType(statusFlowHeader.getModuleType()); statusFlowDetail.setWarehouseCode(ShiroUtils.getWarehouseCode()); statusFlowDetail.setCreatedBy(ShiroUtils.getLoginName()); statusFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(statusFlowDetailService.save(statusFlowDetail)); } /** * 修改流程明细 */ @GetMapping("/edit/{id}") public String edit(@PathVariable("id") Integer id, ModelMap mmap) { mmap.put("statusFlowDetail", statusFlowDetailService.getById(id)); return prefix + "/edit"; } /** * 修改保存流程明细 */ @ApiOperation(value="修改流程明细", notes="修改流程明细", httpMethod = "POST") @RequiresPermissions("config:carrier:edit") @Log(title = "通用-流程明细", operating = "修改流程明细", action = BusinessType.UPDATE) @PostMapping("/edit") @ResponseBody public AjaxResult editSave( @ApiParam(name = "statusFlowDetail", value = "流程明细", required = true) StatusFlowDetail statusFlowDetail) { statusFlowDetail.setLastUpdatedBy(ShiroUtils.getLoginName()); return toAjax(statusFlowDetailService.updateById(statusFlowDetail)); } /** * 删除流程明细 */ @ApiOperation(value="删除流程明细", notes="根据id批量删除流程明细,参数示例1,2,3", httpMethod = "POST") @RequiresPermissions("config:carrier:remove") @Log(title = "通用-流程明细", operating = "删除流程明细", action = BusinessType.DELETE) @PostMapping( "/remove") @ResponseBody public AjaxResult remove(String ids) { if (StringUtils.isEmpty(ids)){ return AjaxResult.error("id不能为空"); } List<Integer> list = new ArrayList<>(); for (Integer id : Convert.toIntArray(ids)) { list.add(id); } return toAjax(statusFlowDetailService.removeByIds(list)); } }