自有人员后台
This commit is contained in:
parent
77c688fd5f
commit
9fd33300bf
|
|
@ -0,0 +1,106 @@
|
||||||
|
package com.bonus.material.owner.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import com.bonus.common.core.utils.poi.ExcelUtil;
|
||||||
|
import com.bonus.common.core.web.controller.BaseController;
|
||||||
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.contract.domain.BmContract;
|
||||||
|
import com.bonus.material.device.domain.dto.DevInfoImpDto;
|
||||||
|
import com.bonus.material.owner.domain.Ownerdomin;
|
||||||
|
import com.bonus.material.owner.service.OwnerService;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.io.UnsupportedEncodingException;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:lizhenhua
|
||||||
|
* @Date:2025/6/26- 9:14
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/owner")
|
||||||
|
@Api(value = "自有装备管理", tags = "自有装备管理")
|
||||||
|
public class OwnerController extends BaseController {
|
||||||
|
@Resource
|
||||||
|
private OwnerService ownerService;
|
||||||
|
|
||||||
|
@ApiOperation(value = "自有装备管理列表")
|
||||||
|
@GetMapping("/list")
|
||||||
|
public AjaxResult list(Ownerdomin ownerdomin) {
|
||||||
|
startPage();
|
||||||
|
List<Ownerdomin> list = ownerService.list(ownerdomin);
|
||||||
|
return AjaxResult.success(getDataTable(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "自有装备管理新增")
|
||||||
|
@PostMapping("/add")
|
||||||
|
public AjaxResult add(@RequestBody Ownerdomin ownerdomin) throws UnsupportedEncodingException {
|
||||||
|
Integer i = ownerService.add(ownerdomin);
|
||||||
|
if (i > 0){
|
||||||
|
return AjaxResult.success("新增成功");
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("新增失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@ApiOperation(value = "自有装备管理修改")
|
||||||
|
@PostMapping("/edit")
|
||||||
|
public AjaxResult edit(@RequestBody Ownerdomin ownerdomin) throws UnsupportedEncodingException {
|
||||||
|
Integer i = ownerService.edit(ownerdomin);
|
||||||
|
if (i > 0){
|
||||||
|
return AjaxResult.success("修改成功");
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("修改失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ApiOperation(value = "自有装备管理删除")
|
||||||
|
@PostMapping("/del")
|
||||||
|
public AjaxResult del(@RequestBody Ownerdomin ownerdomin) {
|
||||||
|
Integer i = ownerService.del(ownerdomin);
|
||||||
|
if (i > 0){
|
||||||
|
return AjaxResult.success("删除成功");
|
||||||
|
}else {
|
||||||
|
return AjaxResult.error("删除失败");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ApiOperation(value = "装备批量录入")
|
||||||
|
@PostMapping("/importData")
|
||||||
|
public AjaxResult importData(@RequestParam("file") MultipartFile file,
|
||||||
|
String type) throws Exception {
|
||||||
|
// 1. 空文件判断
|
||||||
|
if (file == null || file.isEmpty()) {
|
||||||
|
return AjaxResult.error("上传的文件不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. 文件名及格式校验
|
||||||
|
String fileName = file.getOriginalFilename();
|
||||||
|
if (fileName != null) {
|
||||||
|
String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1);
|
||||||
|
long fileSize = file.getSize();
|
||||||
|
if (!fileExtension.equalsIgnoreCase("xls") && !fileExtension.equalsIgnoreCase("xlsx")) {
|
||||||
|
return AjaxResult.error("文件后缀名必须为 xls 或 xlsx");
|
||||||
|
} else if (fileSize > 10 * 1024 * 1024) {
|
||||||
|
return AjaxResult.error("文件大小不能超过 10MB");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. 读取文件内容并处理
|
||||||
|
ExcelUtil<Ownerdomin> util = new ExcelUtil<>(Ownerdomin.class);
|
||||||
|
List<Ownerdomin> maPropInfoList = util.importExcel(file.getInputStream());
|
||||||
|
|
||||||
|
if (maPropInfoList == null || maPropInfoList.isEmpty()) {
|
||||||
|
return AjaxResult.error("导入的数据不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
Long userId = SecurityUtils.getLoginUser().getUserid();
|
||||||
|
String message = ownerService.importMaProp(maPropInfoList, type, userId);
|
||||||
|
|
||||||
|
return AjaxResult.success(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,56 @@
|
||||||
|
package com.bonus.material.owner.domain;
|
||||||
|
|
||||||
|
import com.bonus.common.biz.domain.BmFileInfo;
|
||||||
|
import com.bonus.common.core.annotation.Excel;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:liang.chao
|
||||||
|
* @Date:2024/12/13 - 9:17
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Ownerdomin {
|
||||||
|
@ApiModelProperty(value = "主键ID")
|
||||||
|
private Integer id;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "装备分类")
|
||||||
|
private String maType;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "装备名称")
|
||||||
|
@Excel(name = "装备名称")
|
||||||
|
private String maName;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "装备规格")
|
||||||
|
@Excel(name = "装备规格")
|
||||||
|
private String maModel;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "规格id")
|
||||||
|
private Integer modelId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "类型(1租赁 2自有)")
|
||||||
|
private String type;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "所属公司")
|
||||||
|
private Long companyId;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建时间")
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||||
|
private Date createTime;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "装备数量")
|
||||||
|
@Excel(name = "装备数量")
|
||||||
|
private Integer maNum;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "创建人")
|
||||||
|
private String creator;
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "备注")
|
||||||
|
@Excel(name = "备注")
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.bonus.material.owner.mapper;
|
||||||
|
|
||||||
|
|
||||||
|
import com.bonus.material.owner.domain.Ownerdomin;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface OwnerMapper {
|
||||||
|
|
||||||
|
|
||||||
|
List<Ownerdomin> list(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer add(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer edit(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer del(Ownerdomin ownerdomin);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.bonus.material.owner.service;
|
||||||
|
|
||||||
|
import com.bonus.material.owner.domain.Ownerdomin;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public interface OwnerService {
|
||||||
|
|
||||||
|
List<Ownerdomin> list(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer add(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer edit(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
Integer del(Ownerdomin ownerdomin);
|
||||||
|
|
||||||
|
String importMaProp(List<Ownerdomin> maPropInfoList, String type, Long userId);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
package com.bonus.material.owner.service.impl;
|
||||||
|
|
||||||
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
|
import com.bonus.common.core.utils.StringUtils;
|
||||||
|
import com.bonus.common.core.utils.bean.BeanUtils;
|
||||||
|
import com.bonus.common.core.utils.bean.BeanValidators;
|
||||||
|
import com.bonus.common.security.utils.SecurityUtils;
|
||||||
|
import com.bonus.material.device.domain.DevInfo;
|
||||||
|
import com.bonus.material.device.domain.dto.DevInfoImpDto;
|
||||||
|
import com.bonus.material.owner.domain.Ownerdomin;
|
||||||
|
import com.bonus.material.owner.mapper.OwnerMapper;
|
||||||
|
import com.bonus.material.owner.service.OwnerService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Validator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Objects;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@Slf4j
|
||||||
|
public class OwnerServiceImpl implements OwnerService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private OwnerMapper ownerMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
protected Validator validator;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Ownerdomin> list(Ownerdomin ownerdomin) {
|
||||||
|
ownerdomin.setCreator(SecurityUtils.getLoginUser().getSysUser().getUserId()+"");
|
||||||
|
ownerdomin.setCompanyId(SecurityUtils.getLoginUser().getSysUser().getCompanyId());
|
||||||
|
List<Ownerdomin> list = ownerMapper.list(ownerdomin);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer add(Ownerdomin ownerdomin) {
|
||||||
|
ownerdomin.setCreator(SecurityUtils.getLoginUser().getSysUser().getUserId()+"");
|
||||||
|
ownerdomin.setCompanyId(SecurityUtils.getLoginUser().getSysUser().getCompanyId());
|
||||||
|
return ownerMapper.add(ownerdomin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer edit(Ownerdomin ownerdomin) {
|
||||||
|
return ownerMapper.edit(ownerdomin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer del(Ownerdomin ownerdomin) {
|
||||||
|
return ownerMapper.del(ownerdomin);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String importMaProp(List<Ownerdomin> maPropInfoList, String type, Long userId) {
|
||||||
|
if (StringUtils.isNull(maPropInfoList) || maPropInfoList.isEmpty()) {
|
||||||
|
throw new ServiceException("导入的数据不能为空!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 过滤掉空对象或空行
|
||||||
|
maPropInfoList = maPropInfoList.stream()
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
.filter(item -> StringUtils.isNotEmpty(item.getMaName())) // 替换为你必须字段
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
int failureNum = 0;
|
||||||
|
StringBuilder failureMsg = new StringBuilder();
|
||||||
|
StringBuilder successMsg = new StringBuilder();
|
||||||
|
|
||||||
|
for (Ownerdomin devInfo : maPropInfoList) {
|
||||||
|
try {
|
||||||
|
BeanValidators.validateWithException(validator, devInfo);
|
||||||
|
devInfo.setCreator(userId + "");
|
||||||
|
Ownerdomin ownerdomin = new Ownerdomin();
|
||||||
|
BeanUtils.copyProperties(devInfo, ownerdomin);
|
||||||
|
ownerdomin.setType(type);
|
||||||
|
ownerdomin.setCompanyId(SecurityUtils.getLoginUser().getSysUser().getCompanyId());
|
||||||
|
ownerMapper.add(ownerdomin);
|
||||||
|
successMsg.append(" 导入成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
failureNum++;
|
||||||
|
String msg = " 导入失败:";
|
||||||
|
failureMsg.append(msg).append(e.getMessage());
|
||||||
|
log.error(msg, e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return successMsg.toString();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,46 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" ?>
|
||||||
|
<!DOCTYPE mapper
|
||||||
|
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="com.bonus.material.owner.mapper.OwnerMapper">
|
||||||
|
<insert id="add">
|
||||||
|
insert into ma_own_manage(
|
||||||
|
ma_type, ma_name, model_id, ma_model, ma_num,
|
||||||
|
creator, remark,company_id,type)
|
||||||
|
values(#{maType}, #{maName}, #{modelId}, #{maModel}, #{maNum}, #{creator}, #{remark}, #{companyId},#{type})
|
||||||
|
</insert>
|
||||||
|
<update id="edit">
|
||||||
|
update ma_own_manage set
|
||||||
|
ma_type = #{maType},
|
||||||
|
ma_name = #{maName},
|
||||||
|
model_id = #{modelId},
|
||||||
|
ma_model = #{maModel},
|
||||||
|
ma_num = #{maNum},
|
||||||
|
creator = #{creator},
|
||||||
|
remark = #{remark}
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
<update id="del">
|
||||||
|
update ma_own_manage set
|
||||||
|
is_active =1
|
||||||
|
where id = #{id}
|
||||||
|
</update>
|
||||||
|
|
||||||
|
<select id="list" resultType="com.bonus.material.owner.domain.Ownerdomin">
|
||||||
|
select id, ma_type as maType, ma_name as maName, model_id as modelId,ma_model as maModel,
|
||||||
|
ma_num as maNum, create_time as createTime, creator, remark
|
||||||
|
from ma_own_manage
|
||||||
|
<where>
|
||||||
|
is_active = 0
|
||||||
|
<if test="type!= null and type != ''">
|
||||||
|
and type like concat('%', #{type}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="maModel!= null and maModel != ''">
|
||||||
|
and ma_model like concat('%', #{maModel}, '%')
|
||||||
|
</if>
|
||||||
|
<if test="maName != null and maName != ''">
|
||||||
|
and ma_name like concat('%', #{maName}, '%')
|
||||||
|
</if>
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
|
</mapper>
|
||||||
Loading…
Reference in New Issue