package doumeemes.api.ext; 
 | 
  
 | 
import doumeemes.api.BaseController; 
 | 
import doumeemes.core.annotation.excel.ExcelExporter; 
 | 
import doumeemes.core.annotation.pr.PreventRepeat; 
 | 
import doumeemes.core.model.ApiResponse; 
 | 
import doumeemes.core.model.LoginUserInfo; 
 | 
import doumeemes.core.model.PageData; 
 | 
import doumeemes.core.model.PageWrap; 
 | 
import doumeemes.core.utils.Constants; 
 | 
import doumeemes.dao.business.model.Procedures; 
 | 
import doumeemes.dao.ext.dto.QueryProceduresExtDTO; 
 | 
import doumeemes.dao.ext.vo.ProceduresExtListVO; 
 | 
import doumeemes.service.business.ProceduresService; 
 | 
import doumeemes.service.ext.ProceduresExtService; 
 | 
import io.swagger.annotations.Api; 
 | 
import io.swagger.annotations.ApiImplicitParam; 
 | 
import io.swagger.annotations.ApiImplicitParams; 
 | 
import io.swagger.annotations.ApiOperation; 
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
import org.apache.shiro.authz.annotation.RequiresPermissions; 
 | 
import org.springframework.beans.factory.annotation.Autowired; 
 | 
import org.springframework.web.bind.annotation.*; 
 | 
  
 | 
import javax.servlet.http.HttpServletResponse; 
 | 
import java.util.ArrayList; 
 | 
import java.util.Date; 
 | 
import java.util.List; 
 | 
  
 | 
/** 
 | 
 * 工序信息接口 
 | 
 * @author 江蹄蹄 
 | 
 * @date 2022/04/20 10:57 
 | 
 */ 
 | 
@RestController 
 | 
@RequestMapping("/ext/proceduresExt") 
 | 
@Api(tags = "工序信息接口") 
 | 
public class ProceduresExtController extends BaseController { 
 | 
  
 | 
    @Autowired 
 | 
    private ProceduresExtService proceduresExtService; 
 | 
     
 | 
    @Autowired 
 | 
    private ProceduresService proceduresService; 
 | 
  
 | 
    @PreventRepeat 
 | 
    @ApiOperation("新建") 
 | 
    @PostMapping("/create") 
 | 
    @RequiresPermissions("ext:proceduresext:create") 
 | 
    public ApiResponse create(@RequestBody Procedures procedures) { 
 | 
        if(StringUtils.isBlank(procedures.getCode())){ 
 | 
            procedures.setCode(proceduresService.getNextCode(getLoginUser().getCompany().getId())); 
 | 
        } 
 | 
  
 | 
        Procedures find1=new Procedures(); 
 | 
        find1.setDeleted(Constants.ZERO); 
 | 
        find1.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        find1.setOrgId(procedures.getOrgId()); 
 | 
        find1.setName(procedures.getName().trim()); 
 | 
        List<Procedures> list1=proceduresService.findList(find1); 
 | 
        if(list1.size()>0){ 
 | 
            return ApiResponse.failed("所属工厂部门内名称已存在,不允许添加"); 
 | 
        } 
 | 
        Procedures find2=new Procedures(); 
 | 
        find2.setDeleted(Constants.ZERO); 
 | 
        find2.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        find2.setCode(procedures.getCode().trim()); 
 | 
        List<Procedures> list2=proceduresService.findList(find2); 
 | 
        if(list2.size()>0){ 
 | 
            return ApiResponse.failed("主组织下工序编码已存在,不允许添加"); 
 | 
        } 
 | 
  
 | 
        procedures.setDeleted(Constants.ZERO); 
 | 
        procedures.setCreateTime(new Date()); 
 | 
        procedures.setCreateUser(getLoginUser().getId()); 
 | 
        procedures.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        procedures.setDepartId(getLoginUser().getCurComDepartment().getId()); 
 | 
        return ApiResponse.success(proceduresService.create(procedures)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据ID删除") 
 | 
    @GetMapping("/delete/{id}") 
 | 
    @RequiresPermissions("ext:proceduresext:delete") 
 | 
    public ApiResponse deleteById(@PathVariable Integer id) { 
 | 
        Procedures procedures=new Procedures(); 
 | 
        procedures.setDeleted(Constants.ONE); 
 | 
        procedures.setId(id); 
 | 
        return  proceduresService.delete(procedures); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("批量删除") 
 | 
    @GetMapping("/delete/batch") 
 | 
    @RequiresPermissions("ext:proceduresext:delete") 
 | 
    public ApiResponse deleteByIds(@RequestParam String ids) { 
 | 
        String [] idArray = ids.split(","); 
 | 
        List<Procedures> idList = new ArrayList<>(); 
 | 
        for (String id : idArray) { 
 | 
            Procedures procedures=new Procedures(); 
 | 
            procedures.setDeleted(Constants.ONE); 
 | 
            procedures.setId(Integer.valueOf(id)); 
 | 
            idList.add(procedures); 
 | 
        } 
 | 
        return proceduresService.updateByIdInBatch(idList); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据ID修改") 
 | 
    @PostMapping("/updateById") 
 | 
    @RequiresPermissions("ext:proceduresext:update") 
 | 
    public ApiResponse updateById(@RequestBody Procedures procedures) { 
 | 
  
 | 
        Procedures find1=new Procedures(); 
 | 
        find1.setDeleted(Constants.ZERO); 
 | 
        find1.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        find1.setName(procedures.getName().trim()); 
 | 
        find1.setOrgId(procedures.getOrgId()); 
 | 
        List<Procedures> list1=proceduresService.findList(find1); 
 | 
        if(list1.size()>0){ 
 | 
            if(!Constants.equalsInteger(list1.get(0).getId(),procedures.getId())){ 
 | 
                return ApiResponse.failed("所属工厂部门内名称已存在,不允许添加"); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        Procedures find2=new Procedures(); 
 | 
        find2.setDeleted(Constants.ZERO); 
 | 
        find2.setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        find2.setCode(procedures.getCode().trim()); 
 | 
        List<Procedures> list2=proceduresService.findList(find2); 
 | 
        if(list2.size()>0){ 
 | 
            if(!Constants.equalsInteger(list2.get(0).getId(),procedures.getId())){ 
 | 
                return ApiResponse.failed("主组织下工序编码已存在,不允许添加"); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        Procedures find= proceduresService.findById(procedures.getId()); 
 | 
        find.setUpdateTime(new Date()); 
 | 
        find.setUpdateUser(getLoginUser().getId()); 
 | 
        find.setCode(procedures.getCode()); 
 | 
        find.setName(procedures.getName()); 
 | 
        find.setType(procedures.getType()); 
 | 
        find.setOrgId(procedures.getOrgId()); 
 | 
        find.setUserId(procedures.getUserId()); 
 | 
        find.setPickingWarehouseId(procedures.getPickingWarehouseId()); 
 | 
        find.setProduceWarehouseId(procedures.getProduceWarehouseId()); 
 | 
        find.setLevel(procedures.getLevel()); 
 | 
        find.setSortnum(procedures.getSortnum()); 
 | 
        find.setTobescrappedWarehouseId(procedures.getTobescrappedWarehouseId()); 
 | 
        find.setBadWarehouseId(procedures.getBadWarehouseId()); 
 | 
        find.setIscalculate(procedures.getIscalculate()); 
 | 
        find.setIscalculate(procedures.getIscalculate()); 
 | 
        find.setNeedcheck(procedures.getNeedcheck()); 
 | 
        proceduresService.updateById(find); 
 | 
        return ApiResponse.success(null); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("分页查询") 
 | 
    @PostMapping("/page") 
 | 
    @RequiresPermissions("ext:proceduresext:query") 
 | 
    public ApiResponse<PageData<ProceduresExtListVO>> findPage (@RequestBody PageWrap<QueryProceduresExtDTO> pageWrap) { 
 | 
        pageWrap.getModel().setDeleted(Constants.ZERO); 
 | 
        pageWrap.getModel().setRootDepartId(getLoginUser().getRootDepartment().getId()); 
 | 
        pageWrap.getModel().setDepartId(getLoginUser().getCurComDepartment().getId()); 
 | 
        return ApiResponse.success(proceduresExtService.findPage(pageWrap)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("导出Excel") 
 | 
    @PostMapping("/exportExcel") 
 | 
    @RequiresPermissions("ext:proceduresext:exportExcel") 
 | 
    public void exportExcel (@RequestBody PageWrap<QueryProceduresExtDTO> pageWrap, HttpServletResponse response) { 
 | 
        ExcelExporter.build(ProceduresExtListVO.class).export(proceduresExtService.findPage(pageWrap).getRecords(), "工序信息", response); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据ID查询") 
 | 
    @GetMapping("/{id}") 
 | 
    @RequiresPermissions("ext:proceduresext:query") 
 | 
    public ApiResponse findById(@PathVariable Integer id) { 
 | 
        return ApiResponse.success(proceduresService.findById(id)); 
 | 
    } 
 | 
  
 | 
  
 | 
    @ApiOperation("查询当前用户所有主组织下的工序") 
 | 
    @PostMapping("/productesGroup") 
 | 
    public ApiResponse<List<ProceduresExtListVO>> productesGroup (@RequestBody QueryProceduresExtDTO queryProceduresExtDTO) { 
 | 
        LoginUserInfo user = getLoginUser(); 
 | 
        queryProceduresExtDTO.setDeleted(Constants.ZERO); 
 | 
        queryProceduresExtDTO.setRootDepartId(user.getRootDepartment().getId()); 
 | 
        queryProceduresExtDTO.setDepartId(user.getCurComDepartment().getId()); 
 | 
        return ApiResponse.success(proceduresExtService.getListByCondition(queryProceduresExtDTO)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("查询当前用户全部范围内的全部工序") 
 | 
    @PostMapping("/getSelfList") 
 | 
    public ApiResponse<List<ProceduresExtListVO>> getSelfList (@RequestBody QueryProceduresExtDTO queryProceduresExtDTO) { 
 | 
        return ApiResponse.success(proceduresExtService.getSelfList(queryProceduresExtDTO)); 
 | 
    } 
 | 
  
 | 
    @ApiOperation("根据物料分配主键查询") 
 | 
    @GetMapping("/getListByMaterialId") 
 | 
    @ApiImplicitParams({ 
 | 
            @ApiImplicitParam(value = "物料主键", name = "materialId", paramType = "query", required = true, dataType = "Integer") 
 | 
    }) 
 | 
    public ApiResponse<List<Procedures>> getListByMaterialId(@RequestParam Integer materialId) { 
 | 
        return ApiResponse.success(proceduresExtService.getListByMaterialId(materialId)); 
 | 
    } 
 | 
  
 | 
} 
 |