【admin】新增#仓库管理
parent
7abdb0d1b3
commit
69c0760bf9
|
@ -76,7 +76,7 @@ public class SparePartController {
|
|||
*/
|
||||
@Log(title = "备件信息编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@Validated(value = SparePartParam.update.class) @RequestBody SparePartParam sparePartParam) {
|
||||
public Object edit(@RequestBody SparePartParam sparePartParam) {
|
||||
iSparePartService.edit(sparePartParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
@ -90,7 +90,7 @@ public class SparePartController {
|
|||
*/
|
||||
@Log(title = "备件信息删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@Validated(value = SparePartParam.delete.class) @RequestBody SparePartParam sparePartParam) {
|
||||
public Object del(@RequestBody SparePartParam sparePartParam) {
|
||||
iSparePartService.del(sparePartParam.getIds());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
package com.hcy.admin.controller.warehouse;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.config.aop.Log;
|
||||
import com.hcy.admin.service.warehouse.IWarehouseService;
|
||||
import com.hcy.admin.validate.warehouse.WarehouseParam;
|
||||
import com.hcy.admin.vo.warehouse.WarehouseDetailVo;
|
||||
import com.hcy.common.core.AjaxResult;
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 仓库管理
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("api/warehouse")
|
||||
public class WarehouseController {
|
||||
|
||||
@Resource
|
||||
IWarehouseService iWarehouseService;
|
||||
|
||||
/**
|
||||
* 仓库管理列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param params 搜索参数
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public Object list(@RequestParam Map<String, String> params) {
|
||||
JSONArray list = iWarehouseService.list(params);
|
||||
return AjaxResult.success(list);
|
||||
}
|
||||
/**
|
||||
* 仓库管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return Object
|
||||
*/
|
||||
@GetMapping("/detail")
|
||||
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||
WarehouseDetailVo detail = iWarehouseService.detail(id);
|
||||
return AjaxResult.success(detail);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "仓库管理新增")
|
||||
@PostMapping("/add")
|
||||
public Object add(@Validated(value = WarehouseParam.create.class) @RequestBody WarehouseParam warehouseParam) {
|
||||
iWarehouseService.add(warehouseParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "仓库管理编辑")
|
||||
@PostMapping("/edit")
|
||||
public Object edit(@RequestBody WarehouseParam warehouseParam) {
|
||||
iWarehouseService.edit(warehouseParam);
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
* @return Object
|
||||
*/
|
||||
@Log(title = "仓库管理删除")
|
||||
@PostMapping("/del")
|
||||
public Object del(@RequestBody WarehouseParam warehouseParam) {
|
||||
iWarehouseService.del(warehouseParam.getIds());
|
||||
return AjaxResult.success();
|
||||
}
|
||||
|
||||
}
|
|
@ -108,6 +108,7 @@ public class SparePartServiceImpl implements ISparePartService {
|
|||
model.setSpecificationsModel(sparePartParam.getSpecificationsModel());
|
||||
model.setUnit(sparePartParam.getUnit());
|
||||
model.setQuantity(sparePartParam.getQuantity());
|
||||
model.setUnitPrice(sparePartParam.getUnitPrice());
|
||||
model.setCreateTime(System.currentTimeMillis() / 1000);
|
||||
sparePartMapper.insert(model);
|
||||
}
|
||||
|
@ -135,6 +136,8 @@ public class SparePartServiceImpl implements ISparePartService {
|
|||
model.setSpecificationsModel(sparePartParam.getSpecificationsModel());
|
||||
model.setUnit(sparePartParam.getUnit());
|
||||
model.setQuantity(sparePartParam.getQuantity());
|
||||
model.setUnitPrice(sparePartParam.getUnitPrice());
|
||||
model.setUpdateTime(System.currentTimeMillis() / 1000);//更新时间
|
||||
sparePartMapper.updateById(model);
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
package com.hcy.admin.service.warehouse;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.warehouse.WarehouseParam;
|
||||
import com.hcy.admin.vo.warehouse.WarehouseListVo;
|
||||
import com.hcy.admin.vo.warehouse.WarehouseDetailVo;
|
||||
import com.hcy.common.core.PageResult;
|
||||
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 仓库管理服务接口类
|
||||
*/
|
||||
public interface IWarehouseService {
|
||||
|
||||
/**
|
||||
* 仓库管理列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param params 搜索参数
|
||||
* @return JSONArray
|
||||
*/
|
||||
JSONArray list(Map<String, String> params);
|
||||
|
||||
/**
|
||||
* 仓库管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键ID
|
||||
* @return Warehouse
|
||||
*/
|
||||
WarehouseDetailVo detail(Integer id);
|
||||
|
||||
/**
|
||||
* 仓库管理新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
*/
|
||||
void add(WarehouseParam warehouseParam);
|
||||
|
||||
/**
|
||||
* 仓库管理编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
*/
|
||||
void edit(WarehouseParam warehouseParam);
|
||||
|
||||
/**
|
||||
* 仓库管理删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param ids
|
||||
*/
|
||||
void del(Long[] ids);
|
||||
|
||||
}
|
|
@ -0,0 +1,162 @@
|
|||
package com.hcy.admin.service.warehouse.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.github.yulichang.query.MPJQueryWrapper;
|
||||
import com.hcy.admin.service.warehouse.IWarehouseService;
|
||||
import com.hcy.admin.validate.common.PageParam;
|
||||
import com.hcy.admin.validate.warehouse.WarehouseParam;
|
||||
import com.hcy.admin.vo.system.SystemAuthDeptVo;
|
||||
import com.hcy.admin.vo.warehouse.WarehouseListVo;
|
||||
import com.hcy.admin.vo.warehouse.WarehouseDetailVo;
|
||||
import com.hcy.common.constant.GlobalConstant;
|
||||
import com.hcy.common.core.PageResult;
|
||||
import com.hcy.common.entity.sparePart.SparePart;
|
||||
import com.hcy.common.entity.system.SystemAuthDept;
|
||||
import com.hcy.common.entity.warehouse.Warehouse;
|
||||
import com.hcy.common.mapper.warehouse.WarehouseMapper;
|
||||
import com.hcy.common.utils.ArrayUtil;
|
||||
import com.hcy.common.utils.TimeUtil;
|
||||
import com.hcy.common.utils.UrlUtil;
|
||||
import com.hcy.common.config.GlobalConfig;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* 仓库管理实现类
|
||||
*/
|
||||
@Service
|
||||
public class WarehouseServiceImpl implements IWarehouseService {
|
||||
|
||||
@Resource
|
||||
WarehouseMapper warehouseMapper;
|
||||
|
||||
/**
|
||||
* 仓库管理列表
|
||||
*
|
||||
* @author hcy
|
||||
* @param params 搜索参数
|
||||
* @return JSONArray
|
||||
*/
|
||||
@Override
|
||||
public JSONArray list(Map<String, String> params) {
|
||||
|
||||
QueryWrapper<Warehouse> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.eq("is_delete", 0);
|
||||
queryWrapper.orderByDesc("id");
|
||||
|
||||
warehouseMapper.setSearch(queryWrapper, params, new String[]{
|
||||
"=:parentId@parent_id:long",
|
||||
"like:warehouseName@warehouse_name:str",
|
||||
"=:warehouseCoding@warehouse_coding:str",
|
||||
"=:warehouseAddress@warehouse_address:str",
|
||||
});
|
||||
|
||||
List<Warehouse> array = warehouseMapper.selectList(queryWrapper);
|
||||
|
||||
List<WarehouseDetailVo> lists = new LinkedList<>();
|
||||
for (Warehouse warehouse : array) {
|
||||
WarehouseDetailVo vo = new WarehouseDetailVo();
|
||||
BeanUtils.copyProperties(warehouse, vo);
|
||||
|
||||
vo.setCreateTime(TimeUtil.timestampToDate(warehouse.getCreateTime()));
|
||||
vo.setUpdateTime(TimeUtil.timestampToDate(warehouse.getUpdateTime()));
|
||||
lists.add(vo);
|
||||
}
|
||||
|
||||
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
|
||||
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理详情
|
||||
*
|
||||
* @author hcy
|
||||
* @param id 主键参数
|
||||
* @return Warehouse
|
||||
*/
|
||||
@Override
|
||||
public WarehouseDetailVo detail(Integer id) {
|
||||
Warehouse model = warehouseMapper.selectOne(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.eq("id", id)
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在");
|
||||
|
||||
WarehouseDetailVo vo = new WarehouseDetailVo();
|
||||
BeanUtils.copyProperties(model, vo);
|
||||
return vo;
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理新增
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void add(WarehouseParam warehouseParam) {
|
||||
Warehouse model = new Warehouse();
|
||||
model.setPid(warehouseParam.getPid());
|
||||
model.setWarehouseName(warehouseParam.getWarehouseName());
|
||||
model.setWarehouseCoding(warehouseParam.getWarehouseCoding());
|
||||
model.setWarehouseAddress(warehouseParam.getWarehouseAddress());
|
||||
model.setCreateTime(System.currentTimeMillis() / 1000);
|
||||
warehouseMapper.insert(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理编辑
|
||||
*
|
||||
* @author hcy
|
||||
* @param warehouseParam 参数
|
||||
*/
|
||||
@Override
|
||||
public void edit(WarehouseParam warehouseParam) {
|
||||
Warehouse model = warehouseMapper.selectOne(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.eq("id", warehouseParam.getId())
|
||||
.eq("is_delete", 0)
|
||||
.last("limit 1"));
|
||||
|
||||
Assert.notNull(model, "数据不存在!");
|
||||
|
||||
model.setId(warehouseParam.getId());
|
||||
model.setPid(warehouseParam.getPid());
|
||||
model.setWarehouseName(warehouseParam.getWarehouseName());
|
||||
model.setWarehouseCoding(warehouseParam.getWarehouseCoding());
|
||||
model.setWarehouseAddress(warehouseParam.getWarehouseAddress());
|
||||
model.setUpdateTime(System.currentTimeMillis() / 1000);
|
||||
warehouseMapper.updateById(model);
|
||||
}
|
||||
|
||||
/**
|
||||
* 仓库管理删除
|
||||
*
|
||||
* @author hcy
|
||||
* @param ids 主键ID
|
||||
*/
|
||||
@Override
|
||||
public void del(Long[] ids) {
|
||||
List<Warehouse> modelList = warehouseMapper.selectList(
|
||||
new QueryWrapper<Warehouse>()
|
||||
.in("id", ids));
|
||||
// GlobalConstant.NOT_DELETE 调用未删除常量
|
||||
// GlobalConstant.DELETE 删除标识
|
||||
|
||||
for (Warehouse warehouse : modelList) {
|
||||
warehouse.setIsDelete(GlobalConstant.DELETE);
|
||||
warehouse.setDeleteTime(System.currentTimeMillis() / 1000);
|
||||
warehouseMapper.updateById(warehouse);// 进行伪删除 根据id把is_delete修改成1
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -9,6 +9,7 @@ import org.hibernate.validator.constraints.Length;
|
|||
import lombok.Data;
|
||||
import javax.validation.constraints.*;
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
|
@ -52,5 +53,9 @@ public class SparePartParam implements Serializable {
|
|||
@DecimalMin(value = "0", message = "quantity参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long quantity;
|
||||
|
||||
@NotNull(message = "unitPrice参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "unitPrice参数值不能少于0", groups = {create.class, update.class})
|
||||
private BigDecimal unitPrice;
|
||||
|
||||
private List<Integer> ids; //备件id集合
|
||||
}
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
package com.hcy.admin.validate.warehouse;
|
||||
|
||||
import com.hcy.common.validator.annotation.IDMust;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.hibernate.validator.constraints.Length;
|
||||
|
||||
import lombok.Data;
|
||||
import javax.validation.constraints.*;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 仓库管理参数
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
public class WarehouseParam implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
public interface create{}
|
||||
public interface update{}
|
||||
public interface delete{}
|
||||
|
||||
@NotNull(message = "id参数缺失", groups = {update.class, delete.class})
|
||||
private Long id;
|
||||
|
||||
@NotNull(message = "pid参数缺失", groups = {create.class, update.class})
|
||||
@DecimalMin(value = "0", message = "pid参数值不能少于0", groups = {create.class, update.class})
|
||||
private Long pid;
|
||||
|
||||
@NotNull(message = "warehouseName参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 255, message = "warehouseName参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String warehouseName;
|
||||
|
||||
@NotNull(message = "warehouseCoding参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 255, message = "warehouseCoding参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String warehouseCoding;
|
||||
|
||||
@NotNull(message = "warehouseAddress参数缺失", groups = {create.class, update.class})
|
||||
@Length(max = 255, message = "warehouseAddress参数不能超出255个字符", groups = {create.class, update.class})
|
||||
private String warehouseAddress;
|
||||
|
||||
private Long[] ids;
|
||||
}
|
|
@ -3,6 +3,7 @@ package com.hcy.admin.vo.sparePart;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* SparePartVo
|
||||
|
@ -19,5 +20,6 @@ public class SparePartDetailVo implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private BigDecimal unitPrice; // 单价
|
||||
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package com.hcy.admin.vo.sparePart;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* SparePartVo
|
||||
|
@ -21,5 +22,5 @@ public class SparePartListVo implements Serializable {
|
|||
private Long quantity; // 库存数量
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
|
||||
private BigDecimal unitPrice; // 单价
|
||||
}
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
package com.hcy.admin.vo.warehouse;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* WarehouseVo
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseDetailVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private Long pid; // 上级仓库
|
||||
private String warehouseName; // 仓库名称(唯一)
|
||||
private String warehouseCoding; // 仓库编码
|
||||
private String warehouseAddress; // 仓库地址
|
||||
private String createTime; // 创建时间
|
||||
private String updateTime; // 更新时间
|
||||
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
package com.hcy.admin.vo.warehouse;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* WarehouseVo
|
||||
*/
|
||||
@Data
|
||||
public class WarehouseListVo implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id; // 主键id
|
||||
private Long pid; // 上级仓库
|
||||
private String warehouseName; // 仓库名称(唯一)
|
||||
private String warehouseCoding; // 仓库编码
|
||||
private String warehouseAddress; // 仓库地址
|
||||
|
||||
}
|
|
@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
|
|||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.sql.Date;
|
||||
|
||||
/**
|
||||
|
@ -23,6 +24,7 @@ public class SparePart implements Serializable {
|
|||
private String specificationsModel; // 规格型号
|
||||
private String unit; // 单位
|
||||
private Long quantity; // 库存数量
|
||||
private BigDecimal unitPrice; // 单价
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Long createTime; // 创建时间
|
||||
private Long updateTime; // 更新时间
|
||||
|
|
|
@ -0,0 +1,28 @@
|
|||
package com.hcy.common.entity.warehouse;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 仓库管理实体
|
||||
*/
|
||||
@Data
|
||||
public class Warehouse implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@TableId(value="id", type= IdType.AUTO)
|
||||
private Long id; // 主键id
|
||||
private Long pid; // 上级仓库
|
||||
private String warehouseName; // 仓库名称(唯一)
|
||||
private String warehouseCoding; // 仓库编码
|
||||
private String warehouseAddress; // 仓库地址
|
||||
private Integer isDelete; // 是否删除: [0=否, 1=是]
|
||||
private Long createTime; // 创建时间
|
||||
private Long updateTime; // 更新时间
|
||||
private Long deleteTime; // 删除时间
|
||||
|
||||
}
|
|
@ -0,0 +1,13 @@
|
|||
package com.hcy.common.mapper.warehouse;
|
||||
|
||||
|
||||
import com.hcy.common.core.basics.IBaseMapper;
|
||||
import com.hcy.common.entity.warehouse.Warehouse;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
/**
|
||||
* 仓库管理Mapper
|
||||
*/
|
||||
@Mapper
|
||||
public interface WarehouseMapper extends IBaseMapper<Warehouse> {
|
||||
}
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue