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.PageWrap;
|
import doumeemes.core.model.PageData;
|
import doumeemes.core.utils.Constants;
|
import doumeemes.dao.business.model.Device;
|
import doumeemes.dao.business.model.UserDevice;
|
import doumeemes.dao.ext.dto.QueryDeviceExtDTO;
|
import doumeemes.dao.ext.vo.DeviceExtListVO;
|
import doumeemes.service.business.DeviceService;
|
import doumeemes.service.business.UserDeviceService;
|
import doumeemes.service.ext.DeviceExtService;
|
import doumeemes.service.system.SystemDataPermissionService;
|
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 org.springframework.web.multipart.MultipartFile;
|
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
|
|
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletResponse;
|
|
import java.util.*;
|
|
/**
|
* 生产设备信息接口
|
* @author 江蹄蹄
|
* @date 2022/04/20 10:59
|
*/
|
@RestController
|
@RequestMapping("/ext/deviceExt")
|
@Api(tags = "生产设备信息接口")
|
public class DeviceExtController extends BaseController {
|
|
@Autowired
|
private DeviceExtService deviceExtService;
|
|
@Autowired
|
private DeviceService deviceService;
|
|
|
@Autowired
|
private UserDeviceService userDeviceService;
|
@Autowired
|
private SystemDataPermissionService systemDataPermissionService;
|
|
@PreventRepeat
|
@ApiOperation("新建")
|
@PostMapping("/create")
|
@RequiresPermissions("ext:deviceext:create")
|
public ApiResponse create(@RequestBody Device device) {
|
return deviceService.insert(device);
|
}
|
|
@ApiOperation("根据ID删除")
|
@ApiImplicitParam(value = "主键id", name = "id", paramType = "query", dataType = "String")
|
@GetMapping("/delete/{id}")
|
@RequiresPermissions("ext:deviceext:delete")
|
public ApiResponse deleteById(@PathVariable Integer id) {
|
Device device= deviceService.findById(id);
|
device.setDeleted(Constants.ONE);
|
|
|
UserDevice userDevice=new UserDevice();
|
userDevice.setDeleted(Constants.ZERO);
|
userDevice.setDeviceId(id);
|
List<UserDevice> userlist= userDeviceService.findList(userDevice);
|
if(userlist.size()>0){
|
return ApiResponse.failed("已有人员关联该设备,不允许删除");
|
}
|
deviceService.updateById(device);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("批量删除")
|
@ApiImplicitParam(value = "主键ids", name = "ids", paramType = "query", dataType = "String")
|
@GetMapping("/delete/batch")
|
@RequiresPermissions("ext:deviceext:delete")
|
public ApiResponse deleteByIds(@RequestParam String ids) {
|
String [] idArray = ids.split(",");
|
List<Device> idList = new ArrayList<>();
|
for (String id : idArray) {
|
Device device= deviceService.findById(Integer.valueOf(id));
|
|
UserDevice userDevice=new UserDevice();
|
userDevice.setDeleted(Constants.ZERO);
|
userDevice.setDeviceId(Integer.valueOf(id));
|
List<UserDevice> userlist= userDeviceService.findList(userDevice);
|
if(userlist.size()>0){
|
return ApiResponse.failed(device.getName()+":已有人员关联该设备,不允许删除");
|
}
|
|
|
device.setDeleted(Constants.ZERO);
|
device.setUpdateUser(getLoginUser().getId());
|
device.setUpdateTime(new Date());
|
idList.add(device);
|
}
|
deviceService.updateByIdInBatch(idList);
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("根据ID修改")
|
@PostMapping("/updateById")
|
@RequiresPermissions("ext:deviceext:update")
|
public ApiResponse updateById(@RequestBody Device device) {
|
|
if(device.getType()==Constants.ONE){
|
//设备组
|
Device groupdata= deviceService.findById(device.getGroupId());
|
if(groupdata!=null&&groupdata.getFinishWarehouseLocationId()!=null&&!Constants.equalsInteger(groupdata.getFinishWarehouseLocationId(),device.getFinishWarehouseLocationId())){
|
return ApiResponse.failed("所属设备组的生产货位关联错误!");
|
}
|
|
if(groupdata!=null&&groupdata.getProduceWarehouseLocationId()!=null&&!Constants.equalsInteger(groupdata.getProduceWarehouseLocationId(),device.getProduceWarehouseLocationId())){
|
return ApiResponse.failed("所属设备组的已完工货位关联错误!");
|
}
|
|
}
|
|
QueryDeviceExtDTO queryDeviceExtDTO=new QueryDeviceExtDTO();
|
queryDeviceExtDTO.setDeleted(Constants.ZERO);
|
queryDeviceExtDTO.setCode(device.getCode());
|
queryDeviceExtDTO.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
List<DeviceExtListVO> list= deviceExtService.getListByCondition(queryDeviceExtDTO);
|
if(list.size()>0){
|
if(!Constants.equalsInteger(list.get(0).getId(),device.getId())){
|
return ApiResponse.failed("设备编码,不允许添加");
|
}
|
}
|
/* QueryDeviceExtDTO queryDeviceExtDTO1=new QueryDeviceExtDTO();
|
queryDeviceExtDTO1.setDeleted(Constants.ZERO);
|
queryDeviceExtDTO1.setName(device.getName());
|
queryDeviceExtDTO1.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
List<DeviceExtListVO> list1= deviceExtService.getListByCondition(queryDeviceExtDTO1);
|
if(list1.size()>0){
|
if(list1.get(0).getId()!=device.getId()){
|
return ApiResponse.failed("设备编码/设备名称已存在,不允许添加");
|
}
|
}*/
|
|
device.setUpdateTime(new Date());
|
device.setUpdateUser(getLoginUser().getId());
|
Device find=deviceService.findById(device.getId());
|
find.setUpdateTime(new Date());
|
find.setUpdateUser(getLoginUser().getId());
|
find.setCode(device.getCode());
|
find.setName(device.getName());
|
find.setModel(device.getModel());
|
find.setProcedureId(device.getProcedureId());
|
find.setStationCode(device.getStationCode());
|
find.setType(Objects.nonNull(device.getType()) ? device.getType() : Constants.ONE);
|
find.setGroupId(device.getGroupId());
|
find.setProduceWarehouseLocationId(device.getProduceWarehouseLocationId());
|
find.setFinishWarehouseLocationId(device.getFinishWarehouseLocationId());
|
deviceService.updateById(find);
|
if(StringUtils.isNotBlank(device.getUserIds())){
|
deviceService.dealDeviceUserId(Constants.ONE,device.getUserIds(),device.getId(),getLoginUser());
|
}
|
|
return ApiResponse.success(null);
|
}
|
|
@ApiOperation("分页查询")
|
@PostMapping("/page")
|
@RequiresPermissions("ext:deviceext:query")
|
public ApiResponse<PageData<DeviceExtListVO>> findPage (@RequestBody PageWrap<QueryDeviceExtDTO> pageWrap) {
|
pageWrap.getModel().setDeleted(Constants.ZERO);
|
List<Integer> list= getLoginUser().getDepartPermissionList();
|
/* if(list==null){
|
//查看全部的数据
|
}else if(list.size()==0){
|
//查看自己的
|
pageWrap.getModel().setCreateUser(getLoginUser().getId());
|
}else if(list.size()>0){
|
//查看指定部门的信息
|
pageWrap.getModel().setDepartPermissionList(list);
|
}*/
|
pageWrap.getModel().setRootDepartId(getLoginUser().getRootDepartment().getId());
|
pageWrap.getModel().setDepartId(getLoginUser().getCurComDepartment().getId());
|
return ApiResponse.success(deviceExtService.getListByCondition(pageWrap));
|
}
|
|
@ApiOperation("导出Excel")
|
@PostMapping("/exportExcel")
|
@RequiresPermissions("ext:deviceext:exportExcel")
|
public void exportExcel (@RequestBody PageWrap<QueryDeviceExtDTO> pageWrap, HttpServletResponse response) {
|
ExcelExporter.build(DeviceExtListVO.class).export(deviceExtService.findPage(pageWrap).getRecords(), "生产设备信息", response);
|
}
|
|
@ApiOperation("根据ID查询")
|
@ApiImplicitParam(value = "主键id", name = "id", paramType = "query", dataType = "String")
|
@GetMapping("/{id}")
|
@RequiresPermissions("ext:deviceext:query")
|
public ApiResponse <Device> findById(@PathVariable String id) {
|
return ApiResponse.success(deviceService.findById(Integer.valueOf(id)));
|
}
|
|
|
@ApiOperation("查询所有当前用户主组织设备组")
|
@PostMapping("/deviceGroup")
|
public ApiResponse<List<DeviceExtListVO>> deviceGroup (@RequestBody QueryDeviceExtDTO queryDeviceExtDTO) {
|
queryDeviceExtDTO.setDeleted(Constants.ZERO);
|
queryDeviceExtDTO.setType(Constants.ZERO);
|
queryDeviceExtDTO.setRootDepartId(getLoginUser().getRootDepartment().getId());
|
queryDeviceExtDTO.setDepartId(getLoginUser().getCurComDepartment().getId());
|
List<DeviceExtListVO> list= deviceExtService.getListByCondition(queryDeviceExtDTO);
|
return ApiResponse.success(list);
|
}
|
|
|
@ApiOperation("获取权限范围内的设备数据")
|
@PostMapping("/getDeviceByCondition")
|
public ApiResponse<List<DeviceExtListVO>> getDeviceByCondition (@RequestBody QueryDeviceExtDTO queryDeviceExtDTO) {
|
queryDeviceExtDTO.setDeleted(Constants.ZERO);
|
List<DeviceExtListVO> list= deviceExtService.getDeviceByCondition(queryDeviceExtDTO);
|
return ApiResponse.success(list);
|
}
|
|
|
@ApiOperation(value = "批量导入计划", notes = "批量导入计划", httpMethod = "POST", position = 6)
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "folder", value = "文件夹", required = true, paramType = "query", dataType = "String", dataTypeClass = String.class),
|
})
|
@PostMapping(value = "/importBatch", headers = "content-type=multipart/form-data")
|
// @RequiresPermissions("business:salaryparam:create")
|
public ApiResponse importBatch(String folder, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
CommonsMultipartResolver multipartResovler = new CommonsMultipartResolver();
|
if (multipartResovler.isMultipart(request)) {
|
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
Iterator<String> it = multipartRequest.getFileNames();
|
while (it.hasNext()) {
|
MultipartFile file = multipartRequest.getFile((String) it.next());
|
deviceService.importPlans(file);
|
break;
|
}
|
}
|
return ApiResponse.success( null);
|
}
|
|
}
|