diff --git a/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentDetailRest.java b/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentDetailRest.java new file mode 100644 index 0000000..34ab328 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentDetailRest.java @@ -0,0 +1,46 @@ +package com.yxt.warehouse.apiadmin; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; + +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailDto; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailQuery; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailService; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailVo; +import com.yxt.warehouse.utils.OrgPathQuery; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author wangpengfei + * @date 2024/2/28 8:53 + */ +@Api(tags = "库存调整明细") +@RestController +@RequestMapping("/apiadmin/inventoryadjustmentdetail") +public class InventoryAdjustmentDetailRest { + + @Autowired + InventoryAdjustmentDetailService inventoryAdjustmentDetailService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return inventoryAdjustmentDetailService.listPage(pq); + } + + +// @ApiOperation("保存修改") +// @PostMapping("/saveOrUpdate") +// public ResultBean saveOrUpdate(@RequestBody InventoryAdjustmentDetailDto dto) { +// return inventoryAdjustmentDetailService.saveOrUpdate(dto); +// } + + + + + +} diff --git a/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentRest.java b/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentRest.java new file mode 100644 index 0000000..0544d90 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/InventoryAdjustmentRest.java @@ -0,0 +1,58 @@ +package com.yxt.warehouse.apiadmin; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.inventoryadjustment.*; +import com.yxt.warehouse.utils.OrgPathQuery; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/28 8:53 + */ +@Api(tags = "库存调整") +@RestController +@RequestMapping("/apiadmin/inventoryadjustment") +public class InventoryAdjustmentRest { + + @Autowired + InventoryAdjustmentService inventoryAdjustmentService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + return inventoryAdjustmentService.listPage(pq); + } + @ApiOperation("查询所有的库区") + @PostMapping("/listAll") + public ResultBean listAll(@RequestBody OrgPathQuery query) { + return inventoryAdjustmentService.getAllType( query); + } + + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdate") + public ResultBean saveOrUpdate(@RequestBody InventoryAdjustmentDto dto) { + return inventoryAdjustmentService.saveOrUpdate(dto); + } + + @ApiOperation("初始化") + @GetMapping("/initialization/{sid}") + public ResultBean initialization(@PathVariable("sid") String sid) { + return inventoryAdjustmentService.initialization(sid); + } + + + @ApiOperation("根据sid批量删除") + @DeleteMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids){ + ResultBean rb = ResultBean.fireFail(); + inventoryAdjustmentService.delAll(sids); + return rb.success(); + } +} diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index b00495a..84222b6 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -49,13 +49,18 @@ public class WarehouseInventoryRest { public ResultBean> locationListPage(@RequestBody PagerQuery pq) { return WarehouseInventoryService.locationListPage(pq); } + @ApiOperation("库位预警分页列表") @PostMapping("/areaWarningListPage") public ResultBean> areaWarningListPage(@RequestBody PagerQuery pq) { return WarehouseInventoryService.areaWarningListPage(pq); } - + @ApiOperation("根据仓库查询库存详情") + @PostMapping("/selInventoryByWareSid") + public ResultBean> selInventoryByWareSid(@RequestBody PagerQuery pq) { + return WarehouseInventoryService.selInventoryByWareSid(pq); + } @ApiOperation("查询库位商品数量") @PostMapping("/getRackCountBySid") ResultBean getRackCountBySid(@RequestBody WarehouseInventoryRackCountQuery query) { diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java index 4818996..ac27d00 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseRackRest.java @@ -49,6 +49,11 @@ public class WarehouseRackRest { public ResultBean initialization(@PathVariable("sid") String sid) { return wmsWarehouseRackService.initialization(sid); } + @ApiOperation("根据code查询库位") + @GetMapping("/selRackByCode/{code}") + public ResultBean selRackByCode(@PathVariable("code") String code) { + return wmsWarehouseRackService.selRackByCode(code); + } @ApiOperation("删除") @DeleteMapping("/delete/{sid}") diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustment.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustment.java new file mode 100644 index 0000000..f94b4cb --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustment.java @@ -0,0 +1,22 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import com.yxt.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/28 8:38 + */ +@Data +public class InventoryAdjustment extends BaseEntity { + + private String type;//库位名称 + private String billNo;//库位编码 + private String warehouseSid;//仓库sid + private String warehouseName;//库位容量 + private String count;//计量单位 + private String operator;//货区类型 + private String operatorSid; + private String useOrgSid; + private String createOrgSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentAllVo.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentAllVo.java new file mode 100644 index 0000000..c9931d9 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentAllVo.java @@ -0,0 +1,57 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.warehouse.biz.inventoryadjustment; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: yxt-wms(仓库)
+ * File: WmsWarehouseAreaVo.java
+ * Class: com.yxt.wms.api.wmswarehousearea.WmsWarehouseAreaVo
+ * Description: 库区 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-04-09 14:35:56
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "库区 视图数据详情", description = "库区 视图数据详情") +public class InventoryAdjustmentAllVo implements Vo { + + private String sid; + @ApiModelProperty("库位名称") + private String areaName; + @ApiModelProperty("库位编码") + private String areaCode; + +} \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentDto.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentDto.java new file mode 100644 index 0000000..97828ac --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentDto.java @@ -0,0 +1,34 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.dto.Dto; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailDto; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:38 + */ +@Data +public class InventoryAdjustmentDto implements Dto { + private String id; + private String sid; + private String createTime; + private String remarks; + private String isEnable; + private String type;//库位名称 + private String billNo;//库位编码 + private String warehouseSid;//仓库sid + private String warehouseName;//库位容量 + private String operator;//货区类型 + private String operatorSid; + private String useOrgSid; + private String createOrgSid;//创建组织sid + private String userSid; + private String orgPath; + private List list=new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.java new file mode 100644 index 0000000..fd1686c --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.java @@ -0,0 +1,28 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Mapper +public interface InventoryAdjustmentMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + InventoryAdjustmentVo initialization (@Param("sid") String sid); + + int deleteByBillSid(List list); + + List listAll(@Param("orgPath")String orgPath); + + String selectNum(String billNo); +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.xml b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.xml new file mode 100644 index 0000000..dd988ef --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + + delete inventory_adjustment + where sid in + + #{item} + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentQuery.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentQuery.java new file mode 100644 index 0000000..35ca519 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentQuery.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class InventoryAdjustmentQuery implements Query { + private String endTime;//结束 + private String startTime;//开始 + private String billNo;//单据 + private String goodsSkuSid;//商品 + private String type;//类型 + private String operator;//操作员 + + + private String orgLevelKey;// + private int index;//下标 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentService.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentService.java new file mode 100644 index 0000000..7cf6b8c --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentService.java @@ -0,0 +1,149 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import cn.hutool.core.date.DateUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetail; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailDto; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailService; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailVo; +import com.yxt.warehouse.biz.warehouseinfo.WarehouseInfoVo; +import com.yxt.warehouse.utils.ExcelUtil; +import com.yxt.warehouse.utils.OrgPathQuery; +import com.yxt.warehouse.utils.Rule; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import java.io.IOException; +import java.util.*; +import java.util.stream.Collectors; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Service +public class InventoryAdjustmentService extends MybatisBaseService { + + @Autowired + InventoryAdjustmentDetailService inventoryAdjustmentDetailService; + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + InventoryAdjustmentQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + +// if (StringUtils.isNotBlank(query.getOrgLevelKey())) { +// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) +// String orgLevelKey=query.getOrgLevelKey(); +// String orgSidPath=query.getOrgPath(); +// int index=query.getIndex(); +// if ("1".equals(orgLevelKey)) { +// orgSidPath = orgSidPath.substring(0, index); +// qw.like("s.orgSidPath", orgSidPath); +// } else if ("2".equals(orgLevelKey)) { +// orgSidPath = orgSidPath.substring(0, index); +// qw.like("s.orgSidPath", orgSidPath); +// } else if ("3".equals(orgLevelKey)) { +// orgSidPath = orgSidPath.substring(0, index); +// qw.apply("s.orgSidPath like('"+orgSidPath+"')"); +// } else if ("4".equals(orgLevelKey)) { +// qw.eq("a.createBySid", query.getUserSid()); +// } else { +// PagerVo p = new PagerVo<>(); +// return rb.success().setData(p); +// } +// } else { +// PagerVo p = new PagerVo<>(); +// return rb.success().setData(p); +// } + qw.apply(StringUtils.isNotBlank(query.getStartTime()), "date_format (a.createTime,'%Y-%m-%d') >= date_format('" + query.getStartTime() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getEndTime()), "date_format (a.createTime,'%Y-%m-%d') <= date_format('" + query.getEndTime() + "','%Y-%m-%d')" + ); + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("a.areaName", query.getBillNo()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuSid())) { + qw.like("a.areaCode", query.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(query.getType())) { + qw.eq("b.sid", query.getType()); + } + if (StringUtils.isNotBlank(query.getOperator())) { + qw.eq("c.sid", query.getOperator()); + } + qw.ne("a.isDelete", "1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + public ResultBean getAllType(OrgPathQuery query) { + ResultBean rb = ResultBean.fireFail(); + List pagging = baseMapper.listAll(query.getOrgPath()); + return rb.success().setData(pagging); + } + + public ResultBean saveOrUpdate(InventoryAdjustmentDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; + if (StringUtils.isNotBlank(dto.getSid())) { + sid = dto.getSid(); + InventoryAdjustment inventoryAdjustment = fetchBySid(dto.getSid()); + BeanUtil.copyProperties(dto, inventoryAdjustment, "id", "sid"); + inventoryAdjustment.setModifyTime(new Date()); + baseMapper.updateById(inventoryAdjustment); +// dto.getList().stream().forEach(a->{ +// a.setBillNo(inventoryAdjustment.getBillNo()); +// a.setBillSid(inventoryAdjustment.getSid()); +// a.setUserSid(dto.getUserSid()); +// }); + inventoryAdjustmentDetailService.saveOrUpdate(dto.getList()); + } else { + InventoryAdjustment inventoryAdjustment = new InventoryAdjustment(); + sid = inventoryAdjustment.getSid(); + BeanUtil.copyProperties(dto, inventoryAdjustment, "id", "sid"); + inventoryAdjustment.setCreateTime(new DateTime()); + inventoryAdjustment.setCreateBySid(dto.getUserSid()); + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); + billNo = "TK" + date; + String i = baseMapper.selectNum(billNo); + if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + inventoryAdjustment.setBillNo(billNo); + dto.getList().stream().forEach(a->{ + a.setBillNo(inventoryAdjustment.getBillNo()); + a.setBillSid(inventoryAdjustment.getSid()); + a.setUserSid(dto.getUserSid()); + }); + inventoryAdjustmentDetailService.saveOrUpdate(dto.getList()); + baseMapper.insert(inventoryAdjustment); + } + return rb.success().setMsg("成功"); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + InventoryAdjustmentVo vo = baseMapper.initialization(sid); + vo.setList(inventoryAdjustmentDetailService.selectDetailByBillSid(sid)); + return rb.success().setData(vo); + } + + public void delAll(String[] sids) { + int count = baseMapper.deleteByBillSid(Arrays.stream(sids).collect(Collectors.toList())); + inventoryAdjustmentDetailService.delAll(sids); + } + +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentVo.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentVo.java new file mode 100644 index 0000000..048f58a --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustment/InventoryAdjustmentVo.java @@ -0,0 +1,40 @@ +package com.yxt.warehouse.biz.inventoryadjustment; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.vo.Vo; +import com.yxt.warehouse.biz.inventoryadjustmentdetail.InventoryAdjustmentDetailVo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class InventoryAdjustmentVo implements Vo { + private String id; + private String sid; + private String lockVersion; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + private String remarks; + private String isEnable; + private String state; + private String isDelete; + private String type;//库位名称 + private String billNo;//库位编码 + private String warehouseSid;//仓库sid + private String warehouseName;//库位容量 + private String count;//计量单位 + private String operator;//货区类型 + private String operatorSid; + private String useOrgSid; + private String createOrgSid; + private List list=new ArrayList<>(); + +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetail.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetail.java new file mode 100644 index 0000000..4a7a02a --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetail.java @@ -0,0 +1,25 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import com.yxt.common.core.domain.BaseEntity; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/28 8:38 + */ +@Data +public class InventoryAdjustmentDetail extends BaseEntity { + + private String billNo;//库位名称 + private String billSid;//库位编码 + private String warehouseAreaSid; + private String warehouseAreaName; + private String rackSid; + private String rackName; + private String rackCode; + private String goodsSpuSid;//仓库sid + private String goodsSpuName;//库位容量 + private String goodsSkuSid;//计量单位 + private String goodsSkuTitle;//货区类型 + private String count; +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailDto.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailDto.java new file mode 100644 index 0000000..91389ed --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailDto.java @@ -0,0 +1,34 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/2/26 13:38 + */ +@Data +public class InventoryAdjustmentDetailDto implements Dto { + private String id; + private String sid; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + private String remarks; + private String isEnable; + private String billNo;//库位名称 + private String billSid;//库位编码 + private String warehouseAreaSid; + private String warehouseAreaName; + private String rackSid; + private String rackName; + private String rackCode; + private String goodsSpuSid;//仓库sid + private String goodsSpuName;//库位容量 + private String goodsSkuSid;//计量单位 + private String goodsSkuTitle;//货区类型 + private String count; + private String userSid; +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.java new file mode 100644 index 0000000..3bc0ec1 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.java @@ -0,0 +1,29 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.warehouse.biz.inventoryadjustment.InventoryAdjustmentAllVo; +import com.yxt.warehouse.biz.inventoryadjustment.InventoryAdjustmentVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Mapper +public interface InventoryAdjustmentDetailMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + InventoryAdjustmentDetailVo initialization (@Param("sid") String sid); + + int deleteByBillSid(List list); + + @Select("select * from inventory_adjustment_detail where billSid = #{billSid}") + List selectDetailByBillSid(String qySid); +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.xml b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.xml new file mode 100644 index 0000000..9be7c23 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailMapper.xml @@ -0,0 +1,43 @@ + + + + + + + + + + + delete inventory_adjustment_detail + where billSid in + + #{item} + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailQuery.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailQuery.java new file mode 100644 index 0000000..9bbeb0d --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailQuery.java @@ -0,0 +1,30 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class InventoryAdjustmentDetailQuery implements Query { + private String end;//结束 + private String start;//开始 + private String warehouseSid;//单据 + private String goodsSkuSid;//商品 + private String typeSid;//类型 + private String brandSid;//操作员 + + + private String orgLevelKey;// + private int index;//下标 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailService.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailService.java new file mode 100644 index 0000000..9854e25 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailService.java @@ -0,0 +1,125 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.inventoryadjustment.InventoryAdjustmentAllVo; +import com.yxt.warehouse.biz.warehouseinfo.WarehouseInfoVo; +import com.yxt.warehouse.utils.OrgPathQuery; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Service +public class InventoryAdjustmentDetailService extends MybatisBaseService { + + + public ResultBean> listPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + InventoryAdjustmentDetailQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) + String orgLevelKey=query.getOrgLevelKey(); + String orgSidPath=query.getOrgPath(); + int index=query.getIndex(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.apply("s.orgSidPath like('"+orgSidPath+"')"); + } else if ("4".equals(orgLevelKey)) { + qw.eq("a.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + qw.apply(StringUtils.isNotBlank(query.getStart()), "count >= " + query.getStart() ) . + apply(StringUtils.isNotBlank(query.getEnd()), "count<= " + query.getEnd() + ); + if (StringUtils.isNotBlank(query.getBrandSid())) { + qw.like("a.areaName", query.getBrandSid()); + } + if (StringUtils.isNotBlank(query.getWarehouseSid())) { + qw.like("a.areaCode", query.getWarehouseSid()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuSid())) { + qw.eq("b.sid", query.getGoodsSkuSid()); + } + if (StringUtils.isNotBlank(query.getTypeSid())) { + qw.eq("c.sid", query.getTypeSid()); + } + qw.ne("a.isDelete", "1"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + + + public ResultBean saveOrUpdate(List dtos) { + ResultBean rb = ResultBean.fireFail(); + String sid = ""; + baseMapper.delete(new QueryWrapper().eq("billSid",dtos.get(0).getBillSid())); + for (InventoryAdjustmentDetailDto dto : dtos) { + InventoryAdjustmentDetail wmsWarehouseArea = new InventoryAdjustmentDetail(); + sid = wmsWarehouseArea.getSid(); + BeanUtil.copyProperties(dto, wmsWarehouseArea, "id", "sid"); + wmsWarehouseArea.setCreateTime(new DateTime()); + wmsWarehouseArea.setCreateBySid(dto.getUserSid()); + baseMapper.insert(wmsWarehouseArea); + } + return rb.success().setMsg("成功"); + } + + public ResultBean initialization(String sid) { + ResultBean rb = ResultBean.fireFail(); + InventoryAdjustmentDetailVo vo = baseMapper.initialization(sid); + return rb.success().setData(vo); + } + + + public void delAll(String[] sids) { + int count = baseMapper.deleteByBillSid(Arrays.stream(sids).collect(Collectors.toList())); + } + + public ResultBean updateIsEnable(String sid,String isEnable) { + ResultBean rb = ResultBean.fireFail(); + InventoryAdjustmentDetail wmsWarehouseArea = fetchBySid(sid); + if (null != wmsWarehouseArea) { + wmsWarehouseArea.setIsEnable(Integer.parseInt(isEnable)); + baseMapper.updateById(wmsWarehouseArea); + } + return rb.success().setMsg("成功"); + } + + + public List selectDetailByBillSid(String billSid) { + return baseMapper.selectDetailByBillSid(billSid); + } + +} diff --git a/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailVo.java b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailVo.java new file mode 100644 index 0000000..2c241f2 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/inventoryadjustmentdetail/InventoryAdjustmentDetailVo.java @@ -0,0 +1,42 @@ +package com.yxt.warehouse.biz.inventoryadjustmentdetail; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class InventoryAdjustmentDetailVo implements Vo { + private String id; + private String sid; + private String lockVersion; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date modifyTime; + private String remarks; + private String isEnable; + private String state; + private String isDelete; + private String billNo;//库位名称 + private String billSid;//库位编码 + private String warehouseAreaSid; + private String warehouseAreaName; + private String rackSid; + private String rackName; + private String rackCode; + private String goodsSpuSid;//商品 + private String goodsSpuName;// + private String goodsSkuSid;// + private String goodsSkuTitle;//商品名 + private String barCode;//条码 + private String goodsSkuCode;//商品编码 + private String goodsSkuOwnSpec;//商品规格 + private String count; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java index 1cebfab..d504417 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.java @@ -20,6 +20,7 @@ public interface WarehouseInventoryMapper extends BaseMapper IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); IPage listPage1(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); IPage listPage2(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + IPage listPage3(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); List getListBySpuSid(@Param(Constants.WRAPPER) QueryWrapper qw,@Param("countStart") String countStart,@Param("countEnd") String countEnd); List getListBySpuSid1(@Param(Constants.WRAPPER) QueryWrapper qw,@Param("countStart") String countStart,@Param("countEnd") String countEnd); List getRackCountBySid(@Param("sid")String sid,@Param("orgSid") String orgSid); diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml index 9552576..98ed709 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryMapper.xml @@ -58,6 +58,29 @@ group by a.goodsSpuSid + + UPDATE warehouse_rack SET isDelete=1 diff --git a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java index 7842c87..5e0e03f 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouserack/WarehouseRackService.java @@ -114,7 +114,11 @@ public class WarehouseRackService extends MybatisBaseService selRackByCode(String code) { + ResultBean rb = ResultBean.fireFail(); + WarehouseRackVo vo=baseMapper.selRackByCode(code); + return rb.success().setData(vo); + } public ResultBean delete(String sid) { ResultBean rb = ResultBean.fireFail(); WarehouseRack wmsWarehouseRack = fetchBySid(sid); diff --git a/src/main/java/com/yxt/warehouse/utils/ExcelUtil.java b/src/main/java/com/yxt/warehouse/utils/ExcelUtil.java new file mode 100644 index 0000000..fc73900 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/utils/ExcelUtil.java @@ -0,0 +1,170 @@ +package com.yxt.warehouse.utils; + + +//import org.apache.log4j.Logger; +import com.yxt.common.core.result.ResultBean; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.multipart.MultipartFile; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; + +import static org.apache.poi.ss.usermodel.CellType.NUMERIC; +import static org.apache.poi.ss.usermodel.CellType.STRING; + + +/** + * @author wangpengfei + * @date 2024/4/23 13:53 + */ +public class ExcelUtil { +// private static Logger logger = Logger.getLogger(ExcelUtil.class); + private final static String xls = "xls"; + private final static String xlsx = "xlsx"; + + /** + * 读入excel文件,解析后返回 + * + * @param file + * @throws IOException + */ + public static List readExcel(MultipartFile file) throws IOException { + //检查文件 + checkFile(file); + //获得Workbook工作薄对象 + Workbook workbook = getWorkBook(file); + //创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回 + List list = new ArrayList(); + if (workbook != null) { + for (int sheetNum = 0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) { + //获得当前sheet工作表 + Sheet sheet = workbook.getSheetAt(sheetNum); + if (sheet == null) { + continue; + } + //获得当前sheet的开始行 + int firstRowNum = sheet.getFirstRowNum(); + //获得当前sheet的结束行 + int lastRowNum = sheet.getLastRowNum(); + int arrLength = sheet.getRow(firstRowNum).getPhysicalNumberOfCells(); + //循环除了第一行的所有行 + for (int rowNum = firstRowNum + 1; rowNum <= lastRowNum; rowNum++) { + //获得当前行 + Row row = sheet.getRow(rowNum); + if (row == null) { + continue; + } + //获得当前行的开始列 + int firstCellNum = row.getFirstCellNum(); + //获得当前行的列数 + int lastCellNum = row.getPhysicalNumberOfCells(); + String[] cells = new String[arrLength]; + //循环当前行 + for(int i =0 ;i