diff --git a/admin/src/main/java/com/hcy/admin/controller/sparePart/SparePartController.java b/admin/src/main/java/com/hcy/admin/controller/sparePart/SparePartController.java index 4e904a0..e887c67 100644 --- a/admin/src/main/java/com/hcy/admin/controller/sparePart/SparePartController.java +++ b/admin/src/main/java/com/hcy/admin/controller/sparePart/SparePartController.java @@ -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(); } diff --git a/admin/src/main/java/com/hcy/admin/controller/warehouse/WarehouseController.java b/admin/src/main/java/com/hcy/admin/controller/warehouse/WarehouseController.java new file mode 100644 index 0000000..1059039 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/controller/warehouse/WarehouseController.java @@ -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 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(); + } + +} diff --git a/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java index 5c75484..498935e 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePart/impl/SparePartServiceImpl.java @@ -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); } diff --git a/admin/src/main/java/com/hcy/admin/service/warehouse/IWarehouseService.java b/admin/src/main/java/com/hcy/admin/service/warehouse/IWarehouseService.java new file mode 100644 index 0000000..9666de1 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/service/warehouse/IWarehouseService.java @@ -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 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); + +} diff --git a/admin/src/main/java/com/hcy/admin/service/warehouse/impl/WarehouseServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/warehouse/impl/WarehouseServiceImpl.java new file mode 100644 index 0000000..4c68aa2 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/service/warehouse/impl/WarehouseServiceImpl.java @@ -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 params) { + + QueryWrapper 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 array = warehouseMapper.selectList(queryWrapper); + + List 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() + .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() + .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 modelList = warehouseMapper.selectList( + new QueryWrapper() + .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 + } + } + +} diff --git a/admin/src/main/java/com/hcy/admin/validate/sparePart/SparePartParam.java b/admin/src/main/java/com/hcy/admin/validate/sparePart/SparePartParam.java index 2b97680..a565707 100644 --- a/admin/src/main/java/com/hcy/admin/validate/sparePart/SparePartParam.java +++ b/admin/src/main/java/com/hcy/admin/validate/sparePart/SparePartParam.java @@ -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 ids; //备件id集合 } diff --git a/admin/src/main/java/com/hcy/admin/validate/warehouse/WarehouseParam.java b/admin/src/main/java/com/hcy/admin/validate/warehouse/WarehouseParam.java new file mode 100644 index 0000000..56ad147 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/validate/warehouse/WarehouseParam.java @@ -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; +} diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartDetailVo.java index e3a60d6..5a16aa9 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartDetailVo.java @@ -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; // 单价 } diff --git a/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartListVo.java b/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartListVo.java index 4c02ce3..8036554 100644 --- a/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/sparePart/SparePartListVo.java @@ -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; // 单价 } diff --git a/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseDetailVo.java new file mode 100644 index 0000000..fee5528 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseDetailVo.java @@ -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; // 更新时间 + +} diff --git a/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseListVo.java b/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseListVo.java new file mode 100644 index 0000000..08ca399 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/vo/warehouse/WarehouseListVo.java @@ -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; // 仓库地址 + +} diff --git a/common/src/main/java/com/hcy/common/entity/sparePart/SparePart.java b/common/src/main/java/com/hcy/common/entity/sparePart/SparePart.java index 8d4e021..1736217 100644 --- a/common/src/main/java/com/hcy/common/entity/sparePart/SparePart.java +++ b/common/src/main/java/com/hcy/common/entity/sparePart/SparePart.java @@ -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; // 更新时间 diff --git a/common/src/main/java/com/hcy/common/entity/warehouse/Warehouse.java b/common/src/main/java/com/hcy/common/entity/warehouse/Warehouse.java new file mode 100644 index 0000000..5ec706c --- /dev/null +++ b/common/src/main/java/com/hcy/common/entity/warehouse/Warehouse.java @@ -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; // 删除时间 + +} \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java new file mode 100644 index 0000000..2f88797 --- /dev/null +++ b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java @@ -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 { +} diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-07-26_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-07-26_1.log.gz new file mode 100644 index 0000000..9c1cd44 Binary files /dev/null and b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-ERROR-2024-07-26_1.log.gz differ diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-26_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-26_1.log.gz new file mode 100644 index 0000000..4ed5101 Binary files /dev/null and b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-26_1.log.gz differ diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-29_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-29_1.log.gz new file mode 100644 index 0000000..fce06b3 Binary files /dev/null and b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-INFO-2024-07-29_1.log.gz differ diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-26_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-26_1.log.gz new file mode 100644 index 0000000..6bd24da Binary files /dev/null and b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-26_1.log.gz differ diff --git a/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-29_1.log.gz b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-29_1.log.gz new file mode 100644 index 0000000..efd591d Binary files /dev/null and b/www/wwwroot/java-smyy/server/like-admin/admin-log4j2-WARN-2024-07-29_1.log.gz differ