diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsAnsBillRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsAnsBillRest.java new file mode 100644 index 0000000..af8e918 --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsAnsBillRest.java @@ -0,0 +1,47 @@ +package com.yxt.storage.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.storage.biz.wmsansbill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Api(tags = "预期到货通知单") +@RestController +@RequestMapping("/apiadmin/WmsAnsBill") +public class WmsAnsBillRest { + + @Autowired + private WmsAnsBillService wmsAnsBillService; + + + @PostMapping("saveOrUpdate") + @ApiOperation("新增修改保存") + ResultBean saveOrUpdate(@RequestBody WmsAnsBillDto dto) { + return wmsAnsBillService.saveOrUpdateBill(dto); + } + + @PostMapping("listPage") + @ApiOperation("分页列表") + ResultBean> listPage(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsAnsBillService.listPages(pagerQuery); + return rb.success().setData(pv); + } + + @GetMapping("details") + @ApiOperation("详情") + ResultBean details(@RequestParam("sid") String sid) { + return wmsAnsBillService.details(sid); + } + + +} diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsDistributeBillRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsDistributeBillRest.java new file mode 100644 index 0000000..9f17470 --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsDistributeBillRest.java @@ -0,0 +1,56 @@ +package com.yxt.storage.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.storage.biz.wmsdistributebill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Api(tags = "配货单据") +@RestController +@RequestMapping("/apiadmin/WmsDistributeBill") +public class WmsDistributeBillRest { + + @Autowired + private WmsDistributeBillService wmsDistributeBillService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> listPage(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsDistributeBillService.listPage(pagerQuery); + return rb.success().setData(pv); + } + + @ApiOperation("从出库新增配货单") + @GetMapping("/getInit") + ResultBean getInit(@RequestParam("sid") String sid) { + return wmsDistributeBillService.getInit(sid); + } + + @ApiOperation("详情/编辑初始化") + @GetMapping("/details") + ResultBean details(@RequestParam("sid") String sid) { + return wmsDistributeBillService.details(sid); + } + + @ApiOperation("新增修改保存") + @PostMapping("/saveOrUpdateBill") + ResultBean saveOrUpdateBill(@RequestBody WmsDistributeBillDto dto) { + return wmsDistributeBillService.saveOrUpdateBill(dto); + } + + @ApiOperation("确认") + @PostMapping("/confirm") + ResultBean confirm(@RequestBody WmsDistributeBillDto dto) { + return wmsDistributeBillService.confirm(dto); + } +} diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java index a00484b..989c2ad 100644 --- a/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java +++ b/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java @@ -1,28 +1,61 @@ package com.yxt.storage.apiadmin; +import com.yxt.common.base.utils.ExportExcelUtils; +import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; -import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordListVo; -import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordService; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.storage.biz.wmsinventoryrecord.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; import java.util.List; @Api(tags = "库存出入库记录") @RestController -@RequestMapping("/apiadmin/wmsinventoryrecord") +@RequestMapping("/apiadmin/inventory/wmsinventoryrecord") public class WmsInventoryRecordRest { @Autowired private WmsInventoryRecordService wmsInventoryRecordService; + @Autowired + HttpServletResponse response; + @ApiOperation("根据库存sid获取出入库记录") @GetMapping("/getWmsInventoryRecordList") ResultBean> getWmsInventoryRecordList(@RequestParam("sid") String sid) { return wmsInventoryRecordService.getWmsInventoryRecordList(sid); } + + @ApiOperation("出入库查询") + @PostMapping("/pageList") + ResultBean> pageList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsInventoryRecordService.listPage(pagerQuery); + return rb.success().setData(pv); + } + + @PostMapping("/exportExcel") + @ApiOperation(value = "导出") + public void exportExcel(@RequestBody WmsInventoryRecordsQuery query) { + //得到所有要导出的数据 + List exportVoList = wmsInventoryRecordService.listExcel(query); + //定义导出的excel名字 + String excelName = "出入库查询"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, WmsInventoryRecordsExcelVo.class, response); + + } } diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRest.java new file mode 100644 index 0000000..2577d02 --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsInventoryRest.java @@ -0,0 +1,51 @@ +package com.yxt.storage.apiadmin; + +import com.yxt.common.base.utils.ExportExcelUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.storage.biz.wmsinventory.WmsInventory; +import com.yxt.storage.biz.wmsinventory.WmsInventoryQuery; +import com.yxt.storage.biz.wmsinventory.WmsInventoryService; +import com.yxt.storage.biz.wmsinventory.WmsInventoryVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/28 10:51 + */ +@Api(tags = "库存信息") +@RestController +@RequestMapping("/apiadmin/inventory/wmsinventory") +public class WmsInventoryRest { + + @Autowired + WmsInventoryService wmsInventoryService; + @Autowired + HttpServletResponse response; + + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsInventoryService.listPage(pq); + return rb.success().setData(pv); + } + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids) { + return wmsInventoryService.delAllBySids(sids); + } + + +} diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsOutBillRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsOutBillRest.java new file mode 100644 index 0000000..e64178a --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsOutBillRest.java @@ -0,0 +1,44 @@ +package com.yxt.storage.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.storage.biz.wmsoutbill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Api(tags = "出库单据") +@RestController +@RequestMapping("/apiadmin/WmsOutBill") +public class WmsOutBillRest { + + @Autowired + private WmsOutBillService wmsOutBillService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + ResultBean> pageList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsOutBillService.listPage(pagerQuery); + return rb.success().setData(pv); + } + + @ApiOperation("出库保存修改") + @PostMapping("/saveOrUpdateOutBill") + ResultBean saveOrUpdateOutBill(@RequestBody WmsOutBillDto dto) { + return wmsOutBillService.saveOrUpdateOutBill(dto); + } + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean details(@RequestParam("sid") String sid) { + return wmsOutBillService.details(sid); + } +} diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsReceiptBillRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsReceiptBillRest.java new file mode 100644 index 0000000..ea416f1 --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsReceiptBillRest.java @@ -0,0 +1,64 @@ +package com.yxt.storage.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.storage.biz.wmsreceiptbill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Api(tags = "收货单据") +@RestController +@RequestMapping("/apiadmin/inventory/WmsReceiptBill") +public class WmsReceiptBillRest { + + @Autowired + private WmsReceiptBillService wmsReceiptBillService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsReceiptBillService.listPage(pq); + return rb.success().setData(pv); + } + + @ApiOperation("新增修改保存") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody WmsReceiptBillDto2 dto) { + return wmsReceiptBillService.saveOrUpdateBill2(dto); + } + + @ApiOperation("通知单收货单初始化") + @GetMapping("/getInitDetails") + ResultBean getInitDetails(@RequestParam("sourceSid") String sourceSid) { + return wmsReceiptBillService.getInitDetails(sourceSid); + } + + @ApiOperation("收货单据编辑初始化/详情") + @GetMapping("/getDetailsInit") + ResultBean getDetailsInit(@RequestParam("sid") String sid) { + return wmsReceiptBillService.getDetailsInit(sid); + } + + @ApiOperation("确认") + @PostMapping("/confirm") + ResultBean confirm(@RequestBody WmsReceiptBillDto2 dto) { + return wmsReceiptBillService.confirm(dto); + } + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids) { + return wmsReceiptBillService.delAllBySids(sids); + } + + +} diff --git a/src/main/java/com/yxt/storage/apiadmin/WmsShelfBillRest.java b/src/main/java/com/yxt/storage/apiadmin/WmsShelfBillRest.java new file mode 100644 index 0000000..bdd2930 --- /dev/null +++ b/src/main/java/com/yxt/storage/apiadmin/WmsShelfBillRest.java @@ -0,0 +1,69 @@ +package com.yxt.storage.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.storage.biz.wmsshelfbill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Api(tags = "上货架") +@RestController +@RequestMapping("/apiadmin/WmsShelfBill") +public class WmsShelfBillRest { + + @Autowired + private WmsShelfBillService wmsShelfBillService; + + @ApiOperation("分页列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsShelfBillService.listPage(pq); + return rb.success().setData(pv); + } + + @ApiOperation("新增修改保存") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody WmsShelfBillDto dto) { + return wmsShelfBillService.saveOrUpdateShelf(dto); + } + + @ApiOperation("删除/批量删除") + @DeleteMapping("/delBySids") + ResultBean delBySids(@RequestBody String[] sids) { + return wmsShelfBillService.delAllBySids(sids); + } + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean details(@RequestParam("sid") String sid) { + return wmsShelfBillService.details(sid); + } + + /** + * 新增初始化 + * + * @param sid 收货单据sid + * @return + */ + @ApiOperation("新增初始化") + @GetMapping("/getInit") + ResultBean getInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid) { + return wmsShelfBillService.getInit(sid, orgPath, userSid); + } + + @ApiOperation("确认") + @PostMapping("/confirm") + ResultBean confirm(@RequestBody WmsShelfBillDto dto) { + return wmsShelfBillService.confirm(dto); + } + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBill.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBill.java new file mode 100644 index 0000000..0d7b693 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBill.java @@ -0,0 +1,51 @@ +package com.yxt.storage.biz.wmsansbill; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: 预期到货通知单 + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Data +public class WmsAnsBill extends BaseEntity { + + @ApiModelProperty("外部单号(业务单据编号)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)") + private String busTypeValue; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("货物状态(在途、部分收货、已收货、已取消)") + private Integer billState; + @ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)") + private String reviewStatus; + @ApiModelProperty("拒绝原因") + private String refuseReason; + @ApiModelProperty("联系人") + private String contact; + @ApiModelProperty("联系人手机") + private String mobile; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("货主sid") + private String goodsOwnerSid; + @ApiModelProperty("货主") + private String goodsOwner; + @ApiModelProperty("预计到货日期") + private Date deliveryDate; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillDto.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillDto.java new file mode 100644 index 0000000..9f0156a --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillDto.java @@ -0,0 +1,55 @@ +package com.yxt.storage.biz.wmsansbill; + +import com.yxt.storage.biz.wmsansbilldetail.WmsAnsBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Data +public class WmsAnsBillDto { + + private String sid; + + @ApiModelProperty("外部单号(业务单据编号)") + private String sourceBillNo; + @ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)") + private String busTypeValue; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("货物状态(在途、部分收货、已收货、已取消)") + private Integer billState; + @ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)") + private String reviewStatus; + @ApiModelProperty("拒绝原因") + private String refuseReason; + @ApiModelProperty("联系人") + private String contact; + @ApiModelProperty("联系人手机") + private String mobile; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("货主sid") + private String goodsOwnerSid; + @ApiModelProperty("货主") + private String goodsOwner; + @ApiModelProperty("预计到货日期") + private Date deliveryDate; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + + private List wmsAnsBillDetailList = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.java new file mode 100644 index 0000000..7b9faa8 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.java @@ -0,0 +1,24 @@ +package com.yxt.storage.biz.wmsansbill; + +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.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail; +import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Mapper +public interface WmsAnsBillMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage listPages(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + WmsAnsDetailsVo details(String sid); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.xml b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.xml new file mode 100644 index 0000000..851085a --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillQuery.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillQuery.java new file mode 100644 index 0000000..cb80ae6 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillQuery.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsansbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Data +public class WmsAnsBillQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("开始时间") + private String createTimeStart; + @ApiModelProperty("结束时间") + private String createTimeEnd; + @ApiModelProperty("业务类型") + private String busTypeKey; + @ApiModelProperty("供应商") + private String supplierName; + @ApiModelProperty("预期到货日期开始时间") + private String deliveryDateStart; + @ApiModelProperty("预期到货日期结束时间") + private String deliveryDateEnd; + //单据状态 + private String billState; + + @ApiModelProperty("审核状态") + private String reviewStatus; + + @ApiModelProperty("外部单号(业务单据编号)") + private String sourceBillNo; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillService.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillService.java new file mode 100644 index 0000000..a902943 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillService.java @@ -0,0 +1,125 @@ +package com.yxt.storage.biz.wmsansbill; + +import cn.hutool.core.bean.BeanUtil; +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.storage.biz.wmsansbilldetail.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Service +public class WmsAnsBillService extends MybatisBaseService { + + @Autowired + private WmsAnsBillDetailService wmsAnsBillDetailService; + + public ResultBean saveOrUpdateBill(WmsAnsBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + WmsAnsBill wmsAnsBill = new WmsAnsBill(); + BeanUtil.copyProperties(dto, wmsAnsBill, "sid"); + sid = wmsAnsBill.getSid(); + List wmsAnsBillDetailList = dto.getWmsAnsBillDetailList(); + wmsAnsBillDetailList.removeAll(Collections.singleton(null)); + if (!wmsAnsBillDetailList.isEmpty()) { + wmsAnsBillDetailService.saveOrUpdateDetailsList(sid, wmsAnsBillDetailList); + } else { + return rb.setMsg("单据明细不能为空"); + } + baseMapper.insert(wmsAnsBill); + + } else { + WmsAnsBill wmsAnsBill = fetchBySid(sid); + if (wmsAnsBill == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(dto, wmsAnsBill, "sid"); + List wmsAnsBillDetailList = dto.getWmsAnsBillDetailList(); + wmsAnsBillDetailList.removeAll(Collections.singleton(null)); + if (!wmsAnsBillDetailList.isEmpty()) { + wmsAnsBillDetailService.saveOrUpdateDetailsList(sid, wmsAnsBillDetailList); + } else { + return rb.setMsg("单据明细不能为空"); + } + baseMapper.updateById(wmsAnsBill); + + } + return rb.success().setData(sid); + } + + public PagerVo listPages(PagerQuery pagerQuery) { + WmsAnsBillQuery query = pagerQuery.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + if (query != null) { + //单据编号 + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("wab.billNo", query.getBillNo()); + } + //单据日期开始时间-单据日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wab.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wab.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //业务类型 + if (StringUtils.isNotBlank(query.getBusTypeKey())) { + qw.eq("wab.busTypeKey", query.getBusTypeKey()); + } + //供应商 + if (StringUtils.isNotBlank(query.getSupplierName())) { + qw.like("wab.supplierName", query.getSupplierName()); + } + //预期到货日期开始时间-预期到货日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getDeliveryDateStart()), "date_format (wab.deliveryDate,'%Y-%m-%d') >= date_format('" + query.getDeliveryDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getDeliveryDateEnd()), "date_format (wab.deliveryDate,'%Y-%m-%d') <= date_format('" + query.getDeliveryDateEnd() + "','%Y-%m-%d')" + ); + //单据状态 + if (StringUtils.isNotBlank(query.getBillState())) { + qw.like("wab.billState", query.getBillState()); + } + + //审核状态 + if (StringUtils.isNotBlank(query.getReviewStatus())) { + qw.like("wab.reviewStatus", query.getReviewStatus()); + } + //外部编号 + if (StringUtils.isNotBlank(query.getSourceBillNo())) { + qw.like("wab.sourceBillNo", query.getSourceBillNo()); + } + } + + IPage page = PagerUtil.queryToPage(pagerQuery); + IPage pagging = baseMapper.listPages(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + WmsAnsDetailsVo wmsAnsDetailsVo = baseMapper.details(sid); + if (wmsAnsDetailsVo != null) { + List list = wmsAnsBillDetailService.selectByBillSid(sid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + wmsAnsDetailsVo.setList(list); + } + } else { + return rb.setMsg("该单据不存在"); + } + return rb.success().setData(wmsAnsDetailsVo); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillVo.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillVo.java new file mode 100644 index 0000000..01de9e7 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillVo.java @@ -0,0 +1,44 @@ +package com.yxt.storage.biz.wmsansbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Data +public class WmsAnsBillVo { + + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("外部单号(业务单据编号)") + private String sourceBillNo; + @ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)") + private String busTypeValue; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("联系人") + private String contact; + @ApiModelProperty("联系人手机") + private String mobile; + @ApiModelProperty("预计到货日期") + private String deliveryDate; + + //单据状态 + private String billState; + + @ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)") + private String reviewStatus; + @ApiModelProperty("拒绝原因") + private String refuseReason; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsDetailsVo.java b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsDetailsVo.java new file mode 100644 index 0000000..1127b94 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsDetailsVo.java @@ -0,0 +1,44 @@ +package com.yxt.storage.biz.wmsansbill; + +import com.yxt.storage.biz.wmsansbilldetail.WmsAnsListDetailsVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/12 + **/ +@Data +public class WmsAnsDetailsVo { + private String billNo; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("外部单号(业务单据编号)") + private String sourceBillNo; + @ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)") + private String busTypeValue; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("预计到货日期") + private String deliveryDate; + + //单据状态 + private String billState; + + @ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)") + private String reviewStatus; + @ApiModelProperty("拒绝原因") + private String refuseReason; + + private List list = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetail.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetail.java new file mode 100644 index 0000000..e0c76dc --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetail.java @@ -0,0 +1,47 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Data +public class WmsAnsBillDetail extends BaseEntity { + + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("单位成本(采购价)") + private String cost; + @ApiModelProperty("预约数量(采购订单数量)") + private String orderCount; + @ApiModelProperty("待入库数量-根据收货单计算") + private Integer waitInCount; + @ApiModelProperty("实际入库数量-根据收货单计算") + private Integer actualInCount; + @ApiModelProperty("税额") + private BigDecimal taxAmount; + @ApiModelProperty("含税价") + private BigDecimal taxPrice; + @ApiModelProperty("金额") + private BigDecimal amount; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailDto.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailDto.java new file mode 100644 index 0000000..5e6117a --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailDto.java @@ -0,0 +1,38 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Data +public class WmsAnsBillDetailDto { + + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("单位成本(采购价)") + private String cost; + @ApiModelProperty("预约数量(采购订单数量)") + private String orderCount; + @ApiModelProperty("税额") + private String taxAmount; + @ApiModelProperty("含税价") + private String taxPrice; + @ApiModelProperty("金额") + private String amount; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.java new file mode 100644 index 0000000..ef77939 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.java @@ -0,0 +1,18 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Mapper +public interface WmsAnsBillDetailMapper extends BaseMapper { + int deleteDetails(String sid); + + List selectByBillSid(String sid); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.xml b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.xml new file mode 100644 index 0000000..b968cd9 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.xml @@ -0,0 +1,25 @@ + + + + + delete + from wms_ans_bill_detail + where billSid = #{sid} + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailService.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailService.java new file mode 100644 index 0000000..c5f2f60 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailService.java @@ -0,0 +1,29 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/9 + **/ +@Service +public class WmsAnsBillDetailService extends MybatisBaseService { + public void saveOrUpdateDetailsList(String sid, List wmsAnsBillDetailList) { + baseMapper.deleteDetails(sid); + wmsAnsBillDetailList.forEach(v->{ + WmsAnsBillDetail wmsAnsBillDetail = new WmsAnsBillDetail(); + BeanUtil.copyProperties(v,wmsAnsBillDetail,"sid"); + wmsAnsBillDetail.setBillSid(sid); + baseMapper.insert(wmsAnsBillDetail); + }); + } + + public List selectByBillSid(String sid) { + return baseMapper.selectByBillSid(sid); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailVo.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailVo.java new file mode 100644 index 0000000..dd6b6c3 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailVo.java @@ -0,0 +1,30 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/10 + **/ +@Data +public class WmsAnsBillDetailVo { + + @ApiModelProperty("来源单sid") + private String sourceBillSid; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsListDetailsVo.java b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsListDetailsVo.java new file mode 100644 index 0000000..3629fd3 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsListDetailsVo.java @@ -0,0 +1,56 @@ +package com.yxt.storage.biz.wmsansbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Data +public class WmsAnsListDetailsVo { + @ApiModelProperty("商品名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + + //仓库 + private String warehouseName; + //库位 + private String warehouseRack; + + //预约数量 + @ApiModelProperty("预约数量(采购订单数量)") + private String orderCount; + //待收货数量 + @ApiModelProperty("待入库数量-根据收货单计算") + private Integer waitInCount; + //已收货数量 + @ApiModelProperty("实际入库数量-根据收货单计算") + private Integer actualInCount; + //入库价 + @ApiModelProperty("单位成本(采购价)") + private String cost; + @ApiModelProperty("税额") + private String taxAmount; + @ApiModelProperty("含税价") + private String taxPrice; + //采购金额 + @ApiModelProperty("金额") + private String amount; + + + /* @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid;*/ + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBill.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBill.java new file mode 100644 index 0000000..e2e3184 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBill.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBill extends BaseEntity { + + @ApiModelProperty("出库单sid") + private String sourceBillSid; + @ApiModelProperty("来源单号(出库单)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据状态") + private Integer billState; + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private Integer isHandUp; + @ApiModelProperty("优先级") + private Integer priority; + @ApiModelProperty("实际发货时间") + private Date actualDeliveTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillDto.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillDto.java new file mode 100644 index 0000000..64dd3d8 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillDto.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.yxt.wms.biz.inventory.wmsdistributebilldetail.WmsDistributeBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillDto { + + @ApiModelProperty("出库单sid") + private String sourceBillSid; + @ApiModelProperty("来源单号(出库单)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("制单人sid") + private String createBySid; + private String createTime; + @ApiModelProperty("单据状态") + private String billState; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + + private List detailList = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillInitVo.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillInitVo.java new file mode 100644 index 0000000..0018655 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillInitVo.java @@ -0,0 +1,42 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.yxt.storage.biz.wmsdistributebilldetail.WmsDistributeBillDetailVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillInitVo { + + //单据编号 + private String billNo; + + //制单人 + @ApiModelProperty("制单人姓名") + private String createByName; + + //单据日期 + @ApiModelProperty("单据日期") + private String createTime; + + //来源单号 + @ApiModelProperty("来源单号(出库单)") + private String sourceBillNo; + + //单据状态 + @ApiModelProperty("单据状态") + private String billState; + + //备注 + private String remarks; + + private List detailsList = new ArrayList<>(); + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.java new file mode 100644 index 0000000..5f3c79b --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.java @@ -0,0 +1,13 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Mapper +public interface WmsDistributeBillMapper extends BaseMapper { +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.xml b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.xml new file mode 100644 index 0000000..a58327a --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillQuery.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillQuery.java new file mode 100644 index 0000000..a4bf23c --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillQuery.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillQuery implements Query { + + //单据编号 + @ApiModelProperty("单据编号") + private String billNo; + + //单据日期开始时间 + private String createTimeStart; + + //单据日期结束时间 + private String createTimeEnd; + + //业务类型 + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + + //单据状态 + @ApiModelProperty("单据状态") + private String billState; + + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private String isHandUp; + @ApiModelProperty("优先级") + private String priority; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillService.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillService.java new file mode 100644 index 0000000..0c5e32f --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillService.java @@ -0,0 +1,35 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Service +public class WmsDistributeBillService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pagerQuery) { + return null; + } + + public ResultBean getInit(String sid) { + return null; + } + + public ResultBean details(String sid) { + return null; + } + + public ResultBean saveOrUpdateBill(WmsDistributeBillDto dto) { + return null; + } + + public ResultBean confirm(WmsDistributeBillDto dto) { + return null; + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillVo.java b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillVo.java new file mode 100644 index 0000000..e77579c --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillVo.java @@ -0,0 +1,33 @@ +package com.yxt.storage.biz.wmsdistributebill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillVo { + + private String sid; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("来源单号(出库单)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + + @ApiModelProperty("单据状态") + private String billState; + @ApiModelProperty("优先级") + private String priority; + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private String isHandUp; + + @ApiModelProperty("实际发货时间") + private String actualDeliveTime; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetail.java b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetail.java new file mode 100644 index 0000000..b7ab290 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetail.java @@ -0,0 +1,50 @@ +package com.yxt.storage.biz.wmsdistributebilldetail; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillDetail extends BaseEntity { + @ApiModelProperty("出库单明细sid") + private String outBillDetailSid; + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("配货数量") + private BigDecimal distributeCount; + @ApiModelProperty("发货数量") + private BigDecimal deliveryCount; + @ApiModelProperty("状态(配货中/已完成)") + private Integer billState; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailDto.java b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailDto.java new file mode 100644 index 0000000..226ecb1 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailDto.java @@ -0,0 +1,42 @@ +package com.yxt.storage.biz.wmsdistributebilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillDetailDto { + + @ApiModelProperty("出库单明细sid") + private String outBillDetailSid; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("配货数量") + private String distributeCount; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailVo.java b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailVo.java new file mode 100644 index 0000000..dbf6bf9 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailVo.java @@ -0,0 +1,42 @@ +package com.yxt.storage.biz.wmsdistributebilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsDistributeBillDetailVo { + + @ApiModelProperty("出库单明细sid") + private String outBillDetailSid; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("配货数量") + private String distributeCount; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventory.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventory.java new file mode 100644 index 0000000..f5b9657 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventory.java @@ -0,0 +1,58 @@ +package com.yxt.storage.biz.wmsinventory; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author wangpengfei + * @date 2024/2/28 8:38 + */ +@Data +public class WmsInventory extends BaseEntity { + + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)") + private String goodsID; + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("现有量") + private BigDecimal count; + @ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)") + private BigDecimal allocateCount; + @ApiModelProperty("拣货量") + private BigDecimal pickCount; + @ApiModelProperty("冻结量") + private BigDecimal freezeCount; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编码") + private String warehouseRackCode; + @ApiModelProperty("首次入库日期-计算库龄的依据") + private Date firstInDate; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.java new file mode 100644 index 0000000..9916caa --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.java @@ -0,0 +1,21 @@ +package com.yxt.storage.biz.wmsinventory; + +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 java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Mapper +public interface WmsInventoryMapper extends BaseMapper { + + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.xml b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.xml new file mode 100644 index 0000000..885ceae --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.xml @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryQuery.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryQuery.java new file mode 100644 index 0000000..bd9b45b --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryQuery.java @@ -0,0 +1,32 @@ +package com.yxt.storage.biz.wmsinventory; + +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 WmsInventoryQuery implements Query { + @ApiModelProperty("goodsID") + private String goodsID; + + @ApiModelProperty("商品名称") + private String goodsSpuName; + + @ApiModelProperty("商品编码") + private String goodsSkuCode; + + @ApiModelProperty("仓库") + private String warehouseName; + + @ApiModelProperty("库位编码") + private String warehouseRackCode; + + @ApiModelProperty("批次号") + private String batchNumber; + + //供应商 +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventorySaveDto.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventorySaveDto.java new file mode 100644 index 0000000..911de89 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventorySaveDto.java @@ -0,0 +1,57 @@ +package com.yxt.storage.biz.wmsinventory; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/19 + **/ +@Data +public class WmsInventorySaveDto { + + private String sid; + @ApiModelProperty("创建者sid") + private String createBySid; + @ApiModelProperty("批次号(入库日期+生产日期,如240320-240109)") + private String batchNumber; + @ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)") + private String goodsID; + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("现有量") + private String count; + @ApiModelProperty("分配量") + private String allocateCount; + @ApiModelProperty("拣货量") + private String pickCount; + @ApiModelProperty("冻结量") + private String freezeCount; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编码") + private String warehouseRackCode; + @ApiModelProperty("首次入库日期") + private String firstInDate; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryService.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryService.java new file mode 100644 index 0000000..a8c401f --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryService.java @@ -0,0 +1,73 @@ +package com.yxt.storage.biz.wmsinventory; + +import cn.hutool.core.bean.BeanUtil; +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 org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/2/26 13:40 + */ +@Service +public class WmsInventoryService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pq) { + WmsInventoryQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getGoodsID())) { + qw.like("a.goodsID", query.getGoodsID()); + } + if (StringUtils.isNotBlank(query.getWarehouseName())) { + qw.like("a.warehouseName", query.getWarehouseName()); + } + if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { + qw.like("a.goodsSkuCode", query.getGoodsSkuCode()); + } + if (StringUtils.isNotBlank(query.getGoodsSpuName())) { + qw.like("a.goodsSpuName", query.getGoodsSpuName()); + } + if (StringUtils.isNotBlank(query.getBatchNumber())) { + qw.like("a.batchNumber", query.getBatchNumber()); + } + + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveWmsInventory(WmsInventorySaveDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + WmsInventory wmsInventory = new WmsInventory(); + BeanUtil.copyProperties(dto, wmsInventory, "sid"); + sid = wmsInventory.getSid(); + baseMapper.insert(wmsInventory); + } else { + WmsInventory wmsInventory = fetchBySid(sid); + if (wmsInventory == null) { + return rb.setMsg("该商品库存不存在"); + } + BeanUtil.copyProperties(dto, wmsInventory, "sid"); + baseMapper.updateById(wmsInventory); + } + return rb.success().setData(sid); + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + List sidss = Arrays.asList(sids); + delBySids(sids); + return rb.success().setMsg("删除成功"); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryVo.java b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryVo.java new file mode 100644 index 0000000..1946089 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryVo.java @@ -0,0 +1,42 @@ +package com.yxt.storage.biz.wmsinventory; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class WmsInventoryVo implements Vo { + + private String sid; + @ApiModelProperty("商品ID") + private String goodsID; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位名称") + private String warehouseRackCode; + @ApiModelProperty("现有库存") + private String count; + @ApiModelProperty("分配库存") + private String allocateCount; + @ApiModelProperty("可用库存") + private String useCount; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("首次入库日期") + private String firstInDate; + @ApiModelProperty("库龄") + private String dateAge; + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordDto.java b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordDto.java new file mode 100644 index 0000000..d874207 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordDto.java @@ -0,0 +1,63 @@ +package com.yxt.storage.biz.wmsinventoryrecord; + + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +@ApiModel(value = "库存出入库记录 数据传输对象", description = "库存出入库记录 数据传输对象") +public class WmsInventoryRecordDto implements Dto { + + private String sid; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("商品ID") + private String goodsID; + @ApiModelProperty("来源单sid(业务单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单据编号") + private String billNo; + @ApiModelProperty("单据类型(1入库、0出库)") + private String billType; + @ApiModelProperty("业务类型key(采购入库、维修出入库、销售出入库等)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)") + private String busTypeValue; + @ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商") + private String billObjSid; + @ApiModelProperty("客户/供应商名称") + private String billObjName; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("出入库后的库存量") + private BigDecimal currentCount; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("数量") + private BigDecimal count; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + +} \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java index f18a1ec..015f8d8 100644 --- a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java +++ b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java @@ -1,7 +1,11 @@ package com.yxt.storage.biz.wmsinventoryrecord; +import cn.hutool.core.bean.BeanUtil; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import java.util.Collections; @@ -20,4 +24,37 @@ public class WmsInventoryRecordService extends MybatisBaseService listPage(PagerQuery pagerQuery) { + return null; + } + + public List listExcel(WmsInventoryRecordsQuery query) { + return null; + } } diff --git a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsExcelVo.java b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsExcelVo.java new file mode 100644 index 0000000..db8623d --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsExcelVo.java @@ -0,0 +1,66 @@ +package com.yxt.storage.biz.wmsinventoryrecord; + +import com.yxt.common.core.utils.ExportEntityMap; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsInventoryRecordsExcelVo { + + + @ExportEntityMap(CnName = "序号", EnName = "rankNo") + private Integer rankNo; + @ApiModelProperty("商品ID") + @ExportEntityMap(CnName = "商品ID", EnName = "goodsID") + private String goodsID; + @ApiModelProperty("商品名称") + @ExportEntityMap(CnName = "商品名称", EnName = "goodsSpuName") + private String goodsSpuName; + @ApiModelProperty("商品编码") + @ExportEntityMap(CnName = "商品编码", EnName = "goodsSkuCode") + private String goodsSkuCode; + @ApiModelProperty("规格") + @ExportEntityMap(CnName = "规格", EnName = "goodsSkuOwnSpec") + private String goodsSkuOwnSpec; + @ApiModelProperty("单位") + @ExportEntityMap(CnName = "单位", EnName = "unit") + private String unit; + @ApiModelProperty("仓库") + @ExportEntityMap(CnName = "仓库", EnName = "warehouseName") + private String warehouseName; + @ApiModelProperty("库位") + @ExportEntityMap(CnName = "库位", EnName = "warehouseRackCode") + private String warehouseRackCode; + @ApiModelProperty("来源单号") + @ExportEntityMap(CnName = "来源单号", EnName = "billNo") + private String billNo; + + + @ApiModelProperty("单据类型(1入库、0出库)") + @ExportEntityMap(CnName = "单据类型", EnName = "billType") + private String billType; + @ExportEntityMap(CnName = "发生时间", EnName = "createTime") + private String createTime; + @ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)") + @ExportEntityMap(CnName = "业务类型", EnName = "busTypeValue") + private String busTypeValue; + @ApiModelProperty("客户/供应商名称") + @ExportEntityMap(CnName = "客户/供应商名称", EnName = "billObjName") + private String billObjName; + @ApiModelProperty("批次号") + @ExportEntityMap(CnName = "批次号", EnName = "batchNumber") + private String batchNumber; + @ApiModelProperty("数量") + @ExportEntityMap(CnName = "数量", EnName = "count") + private String count; + @ApiModelProperty("出入库后的库存量") + @ExportEntityMap(CnName = "出入库后的库存量", EnName = "currentCount") + private String currentCount; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsQuery.java b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsQuery.java new file mode 100644 index 0000000..03a6e3e --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsQuery.java @@ -0,0 +1,39 @@ +package com.yxt.storage.biz.wmsinventoryrecord; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsInventoryRecordsQuery implements Query { + + @ApiModelProperty("商品ID") + private String goodsID; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("客户/供应商名称") + private String billObjName; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("来源单据编号") + private String billNo; + @ApiModelProperty("单据类型(1入库、0出库)") + private String billType; + @ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)") + private String busTypeValue; + @ApiModelProperty("发生开始时间") + private String createTimeStart; + @ApiModelProperty("发生结束时间") + private String createTimeEnd; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsVo.java b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsVo.java new file mode 100644 index 0000000..f4526cc --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsVo.java @@ -0,0 +1,44 @@ +package com.yxt.storage.biz.wmsinventoryrecord; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsInventoryRecordsVo { + + @ApiModelProperty("商品ID") + private String goodsID; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品编码(图号)") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("来源单据编号") + private String billNo; + @ApiModelProperty("单据类型(1入库、0出库)") + private String billType; + private String createTime; + @ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)") + private String busTypeValue; + @ApiModelProperty("客户/供应商名称") + private String billObjName; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("出入库后的库存量") + private String currentCount; + @ApiModelProperty("数量") + private String count; + @ApiModelProperty("计量单位") + private String unit; + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBill.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBill.java new file mode 100644 index 0000000..7ca008e --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBill.java @@ -0,0 +1,45 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBill extends BaseEntity { + + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("制单人") + private String createByName; + @ApiModelProperty("业务类型key") + private String busTypeKey; + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + @ApiModelProperty("货主sid") + private String goodsOwnerSid; + @ApiModelProperty("货主") + private String goodsOwner; + @ApiModelProperty("已完成/已发货") + private Integer billState; + @ApiModelProperty("是否一起发货(否0,是1)") + private Integer isTogether; + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private Integer isHandUp; + @ApiModelProperty("优先级") + private Integer priority; + @ApiModelProperty("实际发货时间") + private Date actualDeliveTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDetailsVo.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDetailsVo.java new file mode 100644 index 0000000..fefb4a2 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDetailsVo.java @@ -0,0 +1,39 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.yxt.wms.biz.inventory.wmsoutbilldetail.WmsOutBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillDetailsVo { + + private String sid; + @ApiModelProperty("创建人sid") + private String createBySid; + @ApiModelProperty("制单人") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("外部单号") + private String sourceBillNo; + + @ApiModelProperty("业务类型key") + private String busTypeKey; + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + + @ApiModelProperty("单据状态") + private String billState; + @ApiModelProperty("备注") + private String remarks; + + private List detailsList = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDto.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDto.java new file mode 100644 index 0000000..5589e19 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDto.java @@ -0,0 +1,41 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.yxt.wms.biz.inventory.wmsoutbilldetail.WmsOutBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillDto { + + private String sid; + @ApiModelProperty("创建人sid") + private String createBySid; + @ApiModelProperty("制单人") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("外部单号") + private String sourceBillNo; + + @ApiModelProperty("业务类型key") + private String busTypeKey; + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + + @ApiModelProperty("单据状态") + private String billState; + @ApiModelProperty("备注") + private String remarks; + + private List detailsList = new ArrayList<>(); + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.java new file mode 100644 index 0000000..62015bd --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.java @@ -0,0 +1,13 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Mapper +public interface WmsOutBillMapper extends BaseMapper { +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.xml b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.xml new file mode 100644 index 0000000..e14a6cf --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillQuery.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillQuery.java new file mode 100644 index 0000000..0223ca1 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillQuery.java @@ -0,0 +1,44 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillQuery implements Query { + + //单据编号 + @ApiModelProperty("单据编号") + private String billNo; + + //单据日期开始时间 + private String createTimeStart; + + //单据日期结束时间 + private String createTimeEnd; + + //外部单号 + @ApiModelProperty("来源单号") + private String sourceBillNo; + + //业务类型 + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + + //单据状态 + @ApiModelProperty("已完成/已发货") + private String billState; + + //挂起状态 + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private String isHandUp; + + //优先级 + @ApiModelProperty("优先级") + private String priority; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillService.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillService.java new file mode 100644 index 0000000..c972e4a --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillService.java @@ -0,0 +1,27 @@ +package com.yxt.storage.biz.wmsoutbill; + +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import org.springframework.stereotype.Service; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Service +public class WmsOutBillService extends MybatisBaseService { + public PagerVo listPage(PagerQuery pagerQuery) { + return null; + } + + public ResultBean saveOrUpdateOutBill(WmsOutBillDto dto) { + return null; + } + + public ResultBean details(String sid) { + return null; + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillVo.java b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillVo.java new file mode 100644 index 0000000..244f2fc --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillVo.java @@ -0,0 +1,48 @@ +package com.yxt.storage.biz.wmsoutbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillVo { + + private String sid; + + //单据编号 + @ApiModelProperty("单据编号") + private String billNo; + + //单据日期 + private String createTime; + + //制单人 + @ApiModelProperty("制单人") + private String createByName; + + //外部单号 + @ApiModelProperty("来源单号") + private String sourceBillNo; + + //业务类型 + @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") + private String busTypeValue; + + //单据状态 + @ApiModelProperty("已完成/已发货") + private String billState; + + //优先级 + @ApiModelProperty("优先级") + private String priority; + + //挂起状态 + @ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)") + private String isHandUp; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetail.java b/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetail.java new file mode 100644 index 0000000..0d7c062 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetail.java @@ -0,0 +1,49 @@ +package com.yxt.storage.biz.wmsoutbilldetail; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillDetail extends BaseEntity { + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("订单数量") + private BigDecimal orderCount; + @ApiModelProperty("未结数量") + private BigDecimal remainingCount; + @ApiModelProperty("调整数量") + private BigDecimal adjustCount; + @ApiModelProperty("分配数量") + private BigDecimal distributeCount; + @ApiModelProperty("发货数量") + private BigDecimal deliveryCount; + @ApiModelProperty("状态(新建/已发货完成、部分分配、全部分配等)") + private Integer billState; + @ApiModelProperty("发货时间") + private Date deliveTime; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetailDto.java b/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetailDto.java new file mode 100644 index 0000000..1a3a91c --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetailDto.java @@ -0,0 +1,32 @@ +package com.yxt.storage.biz.wmsoutbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WmsOutBillDetailDto { + + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("出库数量") + private String outCount; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBill.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBill.java new file mode 100644 index 0000000..d29f1a6 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBill.java @@ -0,0 +1,45 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Data +public class WmsReceiptBill extends BaseEntity { + + @ApiModelProperty("来源单sid(asn单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单号(asn单号)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("业务类型key(采购入库、销售退库等)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购入库、销售退库等)") + private String busTypeValue; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("货主sid") + private String goodsOwnerSid; + @ApiModelProperty("货主") + private String goodsOwner; + @ApiModelProperty("到货日期") + private Date deliveryDate; + @ApiModelProperty("待收货/部分收货/已收货(默认)") + private String billState; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillDto2.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillDto2.java new file mode 100644 index 0000000..b0b748f --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillDto2.java @@ -0,0 +1,53 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsReceiptBillDto2 { + + private String sid; + @ApiModelProperty("来源单sid(asn单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单号(asn单号)") + private String sourceBillNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("业务类型key(采购入库、销售退库等)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购入库、销售退库等)") + private String busTypeValue; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("到货日期") + private String deliveryDate; + //单据状态:新建/已完成 + @ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)") + private String billState; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("商品列表") + private List list = new ArrayList<>(); + @ApiModelProperty("批次列表") + private List pcList = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillInitVo.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillInitVo.java new file mode 100644 index 0000000..df11e16 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillInitVo.java @@ -0,0 +1,55 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsReceiptBillInitVo { + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单sid(asn单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单号(asn单号)") + private String sourceBillNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("业务类型key(采购入库、销售退库等)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购入库、销售退库等)") + private String busTypeValue; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("到货日期") + private String deliveryDate; + //单据状态:新建/已完成 + @ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)") + private String billState; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("商品列表") + private List list = new ArrayList<>(); + @ApiModelProperty("批次列表") + private List pcList = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.java new file mode 100644 index 0000000..0ec561e --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.java @@ -0,0 +1,20 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +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; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Mapper +public interface WmsReceiptBillMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + WmsReceiptBillInitVo getDetailsInit(String sid); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.xml b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.xml new file mode 100644 index 0000000..f4f6cba --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.xml @@ -0,0 +1,42 @@ + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillPageVo.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillPageVo.java new file mode 100644 index 0000000..1ee10ad --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillPageVo.java @@ -0,0 +1,38 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/12 + **/ +@Data +public class WmsReceiptBillPageVo { + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + + @ApiModelProperty("来源单号(asn单号)") + private String sourceBillNo; + + @ApiModelProperty("业务类型value(采购入库、销售退库等)") + private String busTypeValue; + + @ApiModelProperty("供应商名称") + private String supplierName; + + @ApiModelProperty("到货日期") + private String deliveryDate; + + //单据状态:新建/已完成 + @ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)") + private String billState; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillQuery.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillQuery.java new file mode 100644 index 0000000..db81612 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillQuery.java @@ -0,0 +1,33 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Data +public class WmsReceiptBillQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("单据日期开始时间") + private String createTimeStart; + @ApiModelProperty("单据日期结束时间") + private String createTimeEnd; + @ApiModelProperty("来源编号") + private String sourceBillNo; + @ApiModelProperty("业务类型Key") + private String busTypeKey; + @ApiModelProperty("到货日期开始时间") + private String deliveryDateStart; + @ApiModelProperty("到货日期结束时间") + private String deliveryDateEnd; + @ApiModelProperty("单据状态") + private String billState; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillService.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillService.java new file mode 100644 index 0000000..19a8081 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillService.java @@ -0,0 +1,192 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import com.alibaba.fastjson.JSON; +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.storage.biz.wmsansbill.WmsAnsBill; +import com.yxt.storage.biz.wmsansbill.WmsAnsBillService; +import com.yxt.storage.biz.wmsansbilldetail.WmsAnsBillDetailService; +import com.yxt.storage.biz.wmsansbilldetail.WmsAnsListDetailsVo; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailMapper; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailService; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailVo; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Service +public class WmsReceiptBillService extends MybatisBaseService { + + @Autowired + private WmsReceiptBillDetailService wmsReceiptBillDetailService; + @Autowired + private WmsAnsBillService wmsAnsBillService; + @Autowired + private WmsAnsBillDetailService wmsAnsBillDetailService; + @Autowired + private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService; + @Autowired + private WmsReceiptBillDetailMapper wmsReceiptBillDetailMapper; + @Autowired + private WmsReceiptBillDetailBatchMapper wmsReceiptBillDetailBatchMapper; + + public PagerVo listPage(PagerQuery pq) { + WmsReceiptBillQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("wrb.billNo", query.getBillNo()); + } + //单据日期开始时间-单据日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wrb.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wrb.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //预期到货日期开始时间-预期到货日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getDeliveryDateStart()), "date_format (wrb.deliveryDate,'%Y-%m-%d') >= date_format('" + query.getDeliveryDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getDeliveryDateEnd()), "date_format (wrb.deliveryDate,'%Y-%m-%d') <= date_format('" + query.getDeliveryDateEnd() + "','%Y-%m-%d')" + ); + //单据状态 + if (StringUtils.isNotBlank(query.getBillState())) { + qw.like("wrb.billState", query.getBillState()); + } + //外部编号 + if (StringUtils.isNotBlank(query.getSourceBillNo())) { + qw.like("wrb.sourceBillNo", query.getSourceBillNo()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateBill2(WmsReceiptBillDto2 dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + WmsReceiptBill wmsReceiptBill = new WmsReceiptBill(); + sid = wmsReceiptBill.getSid(); + BeanUtil.copyProperties(dto, wmsReceiptBill, "sid"); + List list = dto.getList(); + list.removeAll(Collections.singleton(null)); + List pcList = dto.getPcList(); + pcList.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList); + } + baseMapper.insert(wmsReceiptBill); + + } else { + WmsReceiptBill wmsReceiptBill = fetchBySid(sid); + if (wmsReceiptBill == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(dto, wmsReceiptBill, "sid"); + List list = dto.getList(); + list.removeAll(Collections.singleton(null)); + List pcList = dto.getPcList(); + pcList.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList); + } + baseMapper.updateById(wmsReceiptBill); + } + return rb.success().setData(sid); + } + + public ResultBean getInitDetails(String sourceSid) { + ResultBean rb = ResultBean.fireFail(); + WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo(); + WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(sourceSid); + BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid"); + wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getBillNo()); + wmsReceiptBillVo.setSourceBillSid(wmsAnsBill.getSid()); + wmsReceiptBillVo.setCreateTime(DateUtil.today()); + List list = wmsAnsBillDetailService.selectByBillSid(sourceSid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + List lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList()); + wmsReceiptBillVo.setList(lists); + } + + return rb.success().setData(wmsReceiptBillVo); + } + + public ResultBean getDetailsInit(String sid) { + ResultBean rb = ResultBean.fireFail(); + WmsReceiptBillInitVo wmsReceiptBillInitVo = baseMapper.getDetailsInit(sid); + List pcList = new ArrayList<>(); + if (wmsReceiptBillInitVo != null) { + List list = wmsReceiptBillDetailService.getDetailsInit(sid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i); + int a = i + 1; + wmsReceiptBillDetailDto2.setXh(String.valueOf(a)); + List pcList2 = wmsReceiptBillDetailBatchService.getDetailsInit(sid, wmsReceiptBillDetailDto2.getDetailsSid()); + pcList2.removeAll(Collections.singleton(null)); + if (!pcList2.isEmpty()) { + for (int j = 0; j < pcList2.size(); j++) { + WmsReceiptBillDetailBatchDto2 wmsReceiptBillDetailBatchDto2 = pcList2.get(j); + wmsReceiptBillDetailBatchDto2.setXh(String.valueOf(a)); + } + pcList.addAll(pcList2); + } + } + } + wmsReceiptBillInitVo.setList(list); + wmsReceiptBillInitVo.setPcList(pcList); + } else { + return rb.setMsg("该单据不存在"); + } + return rb.success().setData(wmsReceiptBillInitVo); + } + + public ResultBean confirm(WmsReceiptBillDto2 dto) { + ResultBean rb = ResultBean.fireFail(); + dto.setBillState("1"); + List list = dto.getList(); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i); + wmsReceiptBillDetailDto2.setState(1); + } + } + dto.setList(list); + ResultBean resultBean = saveOrUpdateBill2(dto); + String sid = resultBean.getData(); + return rb.success().setData(sid); + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + List sidss = Arrays.asList(sids); + for (int i = 0; i < sidss.size(); i++) { + String s = sidss.get(i); + wmsReceiptBillDetailMapper.deleteByBillSid(s); + wmsReceiptBillDetailBatchMapper.deleteByDetails(s); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillVo.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillVo.java new file mode 100644 index 0000000..04be3f2 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillVo.java @@ -0,0 +1,51 @@ +package com.yxt.storage.biz.wmsreceiptbill; + +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Data +public class WmsReceiptBillVo { + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单sid(asn单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单号(asn单号)") + private String sourceBillNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("业务类型key(采购入库、销售退库等)") + private String busTypeKey; + @ApiModelProperty("业务类型value(采购入库、销售退库等)") + private String busTypeValue; + @ApiModelProperty("供应商sid") + private String supplierSid; + @ApiModelProperty("供应商名称") + private String supplierName; + @ApiModelProperty("到货日期") + private Date deliveryDate; + //单据状态:新建/已完成 + @ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)") + private String billState; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + + private List list = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetail.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetail.java new file mode 100644 index 0000000..f94e7d8 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetail.java @@ -0,0 +1,56 @@ +package com.yxt.storage.biz.wmsreceiptbilldetail; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Data +public class WmsReceiptBillDetail extends BaseEntity { + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("商品基础信息Sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("实收数量") + private BigDecimal actualInCount; + @ApiModelProperty("拒收数量") + private BigDecimal rejectCount; + @ApiModelProperty("拒收原因") + private String rejectReason; + @ApiModelProperty("收货时间") + private Date receivingGoodsTime; + @ApiModelProperty("是否需要质检(不需要0,需要1)") + private Integer isQuality; + @ApiModelProperty("质检状态(合格0,不合格1)") + private Integer qualityState; + @ApiModelProperty("载具说明") + private String packageRemark; + + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位名称") + private String warehouseRackName; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java new file mode 100644 index 0000000..1577ae8 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java @@ -0,0 +1,69 @@ +package com.yxt.storage.biz.wmsreceiptbilldetail; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsReceiptBillDetailDto2 { + + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位名称") + private String warehouseRackName; + @ApiModelProperty("实收数量") + private String actualInCount; + @ApiModelProperty("拒收数量") + private String rejectCount; + @ApiModelProperty("拒收原因") + private String rejectReason; + @ApiModelProperty("是否需要质检(不需要0,需要1)") + private Integer isQuality; + @ApiModelProperty("质检状态(合格0,不合格1)") + private Integer qualityState; + @ApiModelProperty("载具说明") + private String packageRemark; + @ApiModelProperty("单据明细状态:0新建,1已完成") + private Integer state; + @ApiModelProperty("序号") + private String xh; + @JsonIgnore + private String detailsSid; + + @ApiModelProperty("预约数量(采购订单数量)") + private String orderCount; + + + //入库价 + @ApiModelProperty("单位成本(采购价)") + private String cost; + @ApiModelProperty("税额") + private String taxAmount; + @ApiModelProperty("含税价") + private String taxPrice; + //采购金额 + @ApiModelProperty("金额") + private String amount; + + @ApiModelProperty("有效天数") + private String shelfLife; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java new file mode 100644 index 0000000..e3ac316 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java @@ -0,0 +1,21 @@ +package com.yxt.storage.biz.wmsreceiptbilldetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Mapper +public interface WmsReceiptBillDetailMapper extends BaseMapper { + int deleteByBillSid(String sid); + + List getDetailsInit(String sid); + + List selectByBillSid(@Param("sid") String sid, @Param("sidList") List sidList); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml new file mode 100644 index 0000000..82bddb5 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml @@ -0,0 +1,42 @@ + + + + + delete + from wms_receipt_bill_detail + where billSid = #{sid} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailService.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailService.java new file mode 100644 index 0000000..c77429b --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailService.java @@ -0,0 +1,53 @@ +package com.yxt.storage.biz.wmsreceiptbilldetail; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/3 + **/ +@Service +public class WmsReceiptBillDetailService extends MybatisBaseService { + + @Autowired + private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService; + + public void saveOrUpdateDetailsList2(String sid, List list, List pcList) { + baseMapper.deleteByBillSid(sid); + list.forEach(v -> { + WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); + BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid"); + wmsReceiptBillDetail.setBillSid(sid); + baseMapper.insert(wmsReceiptBillDetail); + wmsReceiptBillDetailBatchService.deleteByDetails(sid); + pcList.removeAll(Collections.singleton(null)); + if (!pcList.isEmpty()) { + List pcList2 = pcList.stream().filter(c -> c.getXh().equals(v.getXh())).collect(Collectors.toList()); + pcList2.removeAll(Collections.singleton(null)); + if (!pcList2.isEmpty()) { + wmsReceiptBillDetailBatchService.saveBatchs2(sid, wmsReceiptBillDetail.getSid(), pcList2); + } + } + + + }); + } + + public List getDetailsInit(String sid) { + return baseMapper.getDetailsInit(sid); + } + + public List selectByBillSid(String sid, List sidList) { + return baseMapper.selectByBillSid(sid, sidList); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java new file mode 100644 index 0000000..460cc18 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java @@ -0,0 +1,61 @@ +package com.yxt.storage.biz.wmsreceiptbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/12 + **/ +@Data +public class WmsReceiptBillDetailVo { + + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位名称") + private String warehouseRackName; + @ApiModelProperty("实收数量") + private String actualInCount; + @ApiModelProperty("拒收数量") + private String rejectCount; + @ApiModelProperty("拒收原因") + private String rejectReason; + @ApiModelProperty("是否需要质检(不需要0,需要1)") + private Integer isQuality; + @ApiModelProperty("质检状态(合格0,不合格1)") + private Integer qualityState; + @ApiModelProperty("载具说明") + private String packageRemark; + + //入库价 + @ApiModelProperty("单位成本(采购价)") + private String cost; + @ApiModelProperty("税额") + private String taxAmount; + @ApiModelProperty("含税价") + private String taxPrice; + //采购金额 + @ApiModelProperty("金额") + private String amount; + + @ApiModelProperty("有效期天数") + private Integer shelfLife; + @ApiModelProperty("预约数量(采购订单数量)") + private String orderCount; + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatch.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatch.java new file mode 100644 index 0000000..dbdc4ef --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatch.java @@ -0,0 +1,30 @@ +package com.yxt.storage.biz.wmsreceiptbilldetailbatch; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/10 + **/ +@Data +public class WmsReceiptBillDetailBatch extends BaseEntity { + @ApiModelProperty("收货单sid") + private String billSid; + @ApiModelProperty("收货明细sid") + private String detailSid; + @ApiModelProperty("批次号(收货日期+有效日期,如240320-241009)") + private String batchNumber; + @ApiModelProperty("生产日期") + private Date manufactureDate; + @ApiModelProperty("有效期(根据spu中有效天数、生产日期计算)") + private Date expirationDate; + + @ApiModelProperty("数量") + private BigDecimal batchCount; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchDto2.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchDto2.java new file mode 100644 index 0000000..a963c6d --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchDto2.java @@ -0,0 +1,45 @@ +package com.yxt.storage.biz.wmsreceiptbilldetailbatch; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsReceiptBillDetailBatchDto2 { + + @ApiModelProperty("批次号(收货日期+有效日期,如240320-241009)") + private String batchNumber; + @ApiModelProperty("生产日期") + private String manufactureDate; + @ApiModelProperty("有效期(根据spu中有效天数、生产日期计算)") + private String expirationDate; + @ApiModelProperty("数量") + private String batchCount; + @ApiModelProperty("有效期天数") + private Integer shelfLife; + + private String xh; + + //商品名称 + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + //商品编码 + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + //规格 + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + //单位 + @ApiModelProperty("计量单位") + private String unit; + //仓库 + @ApiModelProperty("仓库名称") + private String warehouseName; + //库位 + @ApiModelProperty("库位名称") + private String warehouseRackName; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.java new file mode 100644 index 0000000..dfeb0c3 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.java @@ -0,0 +1,21 @@ +package com.yxt.storage.biz.wmsreceiptbilldetailbatch; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/12 + **/ +@Mapper +public interface WmsReceiptBillDetailBatchMapper extends BaseMapper { + int deleteByDetails(String sid); + + List getDetailsInit(@Param("sid") String sid, @Param("detailsSid") String detailsSid); + + WmsReceiptBillDetailBatch selectByDetails(String sid); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.xml b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.xml new file mode 100644 index 0000000..3883bb0 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.xml @@ -0,0 +1,27 @@ + + + + + delete + from wms_receipt_bill_detail_batch + where billSid = #{sid} + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchService.java b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchService.java new file mode 100644 index 0000000..64cb948 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchService.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsreceiptbilldetailbatch; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/12 + **/ +@Service +public class WmsReceiptBillDetailBatchService extends MybatisBaseService { + public int deleteByDetails(String sid) { + return baseMapper.deleteByDetails(sid); + } + + public void saveBatchs2(String sid, String sid1, List list) { + list.forEach(v -> { + WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = new WmsReceiptBillDetailBatch(); + BeanUtil.copyProperties(v, wmsReceiptBillDetailBatch, "sid"); + wmsReceiptBillDetailBatch.setBillSid(sid); + wmsReceiptBillDetailBatch.setDetailSid(sid1); + baseMapper.insert(wmsReceiptBillDetailBatch); + }); + } + + public List getDetailsInit(String sid, String detailsSid) { + return baseMapper.getDetailsInit(sid, detailsSid); + } + + public WmsReceiptBillDetailBatch selectByDetails(String sid) { + return baseMapper.selectByDetails(sid); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfDetailsVo.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfDetailsVo.java new file mode 100644 index 0000000..b07ae98 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfDetailsVo.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import com.yxt.storage.biz.wmsshelfbilldetail.ShelfDetailsListVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/17 + **/ +@Data +public class ShelfDetailsVo { + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人名称") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("来源单sid") + private String sourceBillSid; + @ApiModelProperty("单据状态:0新建,1已完成") + private Integer billState; + + private String remarks; + + private List list = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfInitVo.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfInitVo.java new file mode 100644 index 0000000..79566c9 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfInitVo.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import com.yxt.storage.biz.wmsshelfbilldetail.ShelfInitListVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/23 + **/ +@Data +public class ShelfInitVo { + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人名称") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("来源单sid") + private String sourceBillSid; + @ApiModelProperty("单据状态:0新建,1已完成") + private Integer billState; + + private String remarks; + + private List list = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBill.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBill.java new file mode 100644 index 0000000..f65559d --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBill.java @@ -0,0 +1,28 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/10 + **/ +@Data +public class WmsShelfBill extends BaseEntity { + @ApiModelProperty("来源单sid(收货单sid)") + private String sourceBillSid; + @ApiModelProperty("来源单号(收货单号)") + private String sourceBillNo; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("0新建,1已完成") + private Integer billState; + + private String createOrgSid; + + private String useOrgSid; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillDto.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillDto.java new file mode 100644 index 0000000..46dd904 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillDto.java @@ -0,0 +1,36 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import com.yxt.storage.biz.wmsshelfbilldetail.WmsShelfBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsShelfBillDto { + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("制单人sid") + private String createBySid; + @ApiModelProperty("制单人名称") + private String createByName; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("来源单sid") + private String sourceBillSid; + @ApiModelProperty("单据状态:0新建,1已完成") + private Integer billState; + + private String remarks; + + private List list = new ArrayList<>(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.java new file mode 100644 index 0000000..17ef63d --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.java @@ -0,0 +1,22 @@ +package com.yxt.storage.biz.wmsshelfbill; + +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; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Mapper +public interface WmsShelfBillMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + ShelfDetailsVo details(String sid); + + String selectNum(String goodsId); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.xml b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.xml new file mode 100644 index 0000000..6d2024c --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillQuery.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillQuery.java new file mode 100644 index 0000000..1a18fe1 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillQuery.java @@ -0,0 +1,23 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsShelfBillQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("单据日期开始时间") + private String createTimeStart; + @ApiModelProperty("单据日期结束时间") + private String createTimeEnd; + @ApiModelProperty("单据状态") + private String billState; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillService.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillService.java new file mode 100644 index 0000000..3ab7248 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillService.java @@ -0,0 +1,261 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import cn.hutool.core.bean.BeanUtil; +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.storage.biz.wmsinventory.WmsInventorySaveDto; +import com.yxt.storage.biz.wmsinventory.WmsInventoryService; +import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordDto; +import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordService; +import com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBill; +import com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBillService; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetail; +import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailService; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatch; +import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService; +import com.yxt.storage.biz.wmsshelfbilldetail.*; +import com.yxt.storage.feign.goods.basegoodssku.BaseGoodsSkuDetailsVo; +import com.yxt.storage.feign.goods.basegoodssku.BaseGoodsSkuFeign; +import com.yxt.storage.utils.Rule; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/11 + **/ +@Service +public class WmsShelfBillService extends MybatisBaseService { + @Autowired + private WmsShelfBillDetailService wmsShelfBillDetailService; + @Autowired + private WmsShelfBillDetailMapper wmsShelfBillDetailMapper; + + @Autowired + private WmsInventoryService wmsInventoryService; + @Resource + private BaseGoodsSkuFeign baseGoodsSkuFeign; + + @Autowired + private WmsInventoryRecordService wmsInventoryRecordService; + @Autowired + private WmsReceiptBillService wmsReceiptBillService; + @Autowired + private WmsReceiptBillDetailService wmsReceiptBillDetailService; + @Autowired + private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService; + + public PagerVo listPage(PagerQuery pq) { + WmsShelfBillQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("wsb.billNo", query.getBillNo()); + } + //单据日期开始时间-单据日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wsb.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wsb.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" + ); + //单据状态 + if (StringUtils.isNotBlank(query.getBillState())) { + qw.like("wsb.billState", query.getBillState()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.listPage(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public ResultBean saveOrUpdateShelf(WmsShelfBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + if (StringUtils.isBlank(sid)) { + WmsShelfBill wmsShelfBill = new WmsShelfBill(); + BeanUtil.copyProperties(dto, wmsShelfBill, "sid"); + List list = dto.getList(); + list.removeAll(Collections.singleton(null)); + sid = wmsShelfBill.getSid(); + if (!list.isEmpty()) { + wmsShelfBillDetailService.saveShelfDetails(sid, list); + } + baseMapper.insert(wmsShelfBill); + } else { + WmsShelfBill wmsShelfBill = fetchBySid(sid); + if (wmsShelfBill == null) { + return rb.setMsg("该单据不存在"); + } + BeanUtil.copyProperties(dto, wmsShelfBill, "sid"); + List list = dto.getList(); + list.removeAll(Collections.singleton(null)); + sid = wmsShelfBill.getSid(); + if (!list.isEmpty()) { + wmsShelfBillDetailService.saveShelfDetails(sid, list); + } + baseMapper.updateById(wmsShelfBill); + + } + saveWmsInventory(sid); + //新增出入库记录 + + return rb.success().setData(sid); + } + + public void saveWmsInventory(String sid) { + WmsShelfBill wmsShelfBill = fetchBySid(sid); + List detailList = wmsShelfBillDetailService.selectByBillSid(sid); + detailList.removeAll(Collections.singleton(null)); + if (!detailList.isEmpty()) { + for (int i = 0; i < detailList.size(); i++) { + WmsShelfBillDetailVos s = detailList.get(i); + WmsInventorySaveDto dto = new WmsInventorySaveDto(); + dto.setCreateBySid(wmsShelfBill.getCreateBySid()); + dto.setBatchNumber(s.getBatchNumber()); + dto.setGoodsID(getGoodsId(s.getGoodsSkuSid())); + dto.setGoodSpuSid(s.getGoodSpuSid()); + dto.setGoodsSpuName(s.getGoodsSpuName()); + dto.setGoodsSkuSid(s.getGoodsSkuSid()); + dto.setGoodsSkuTitle(s.getGoodsSkuTitle()); + dto.setGoodsSkuCode(s.getGoodsSkuCode()); + dto.setGoodsSkuOwnSpec(s.getGoodsSkuOwnSpec()); + dto.setUnit(s.getUnit()); + dto.setCount(s.getCount()); + dto.setWarehouseSid(s.getWarehouseSid()); + dto.setWarehouseName(s.getWarehouseName()); + dto.setWarehouseRackSid(s.getWarehouseRackSid()); + dto.setWarehouseRackCode(s.getWarehouseRackCode()); + dto.setFirstInDate(DateUtil.today()); + dto.setCreateOrgSid(wmsShelfBill.getCreateOrgSid()); + dto.setUseOrgSid(wmsShelfBill.getUseOrgSid()); + dto.setSid(s.getInventorySid()); + String inventorySid = wmsInventoryService.saveWmsInventory(dto).getData(); + WmsShelfBillDetail wmsShelfBillDetail = wmsShelfBillDetailService.fetchBySid(s.getDetailsSid()); + wmsShelfBillDetail.setInventorySid(inventorySid); + wmsShelfBillDetailService.updateById(wmsShelfBillDetail); + WmsInventoryRecordDto wmsInventoryRecordDto = new WmsInventoryRecordDto(); + wmsInventoryRecordDto.setInventorySid(inventorySid); + wmsInventoryRecordDto.setGoodsID(dto.getGoodsID()); + wmsInventoryRecordDto.setSourceBillSid(wmsShelfBill.getSourceBillSid()); + wmsInventoryRecordDto.setBillNo(wmsShelfBill.getSourceBillNo()); + wmsInventoryRecordDto.setBillType("1"); + wmsInventoryRecordDto.setBatchNumber(dto.getBatchNumber()); + wmsInventoryRecordDto.setGoodSpuSid(dto.getGoodSpuSid()); + wmsInventoryRecordDto.setGoodsSpuName(dto.getGoodsSpuName()); + wmsInventoryRecordDto.setGoodsSkuSid(dto.getGoodsSkuSid()); + wmsInventoryRecordDto.setGoodsSkuCode(dto.getGoodsSkuCode()); + wmsInventoryRecordDto.setUnit(dto.getUnit()); + wmsInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(dto.getCount()) ? new BigDecimal(dto.getCount()) : BigDecimal.ZERO); + wmsInventoryRecordDto.setWarehouseSid(dto.getWarehouseSid()); + wmsInventoryRecordDto.setWarehouseName(dto.getWarehouseName()); + wmsInventoryRecordDto.setWarehouseRackSid(dto.getWarehouseRackSid()); + wmsInventoryRecordDto.setWarehouseRackCode(dto.getWarehouseRackCode()); + wmsInventoryRecordService.saveOrUpdateDto(wmsInventoryRecordDto); + } + } + } + + /** + * 获取商品唯一的goodsID + * + * @param goodsSkuSid + * @return + */ + private String getGoodsId(String goodsSkuSid) { + String goodsId = ""; + ResultBean resultBean = baseGoodsSkuFeign.getDetails(goodsSkuSid); + if (resultBean.getSuccess()) { + BaseGoodsSkuDetailsVo baseGoodsSkuDetailsVo = resultBean.getData(); + goodsId = baseGoodsSkuDetailsVo.getGoodsCode(); + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + goodsId = goodsId + date; + String i = baseMapper.selectNum(goodsId); + if (StringUtils.isNotBlank(i)) { + goodsId = Rule.getBillNo(goodsId, Integer.valueOf(i).intValue()); + } else { + goodsId = Rule.getBillNo(goodsId, 0); + } + } + return goodsId; + } + + public ResultBean delAllBySids(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + List sidss = Arrays.asList(sids); + for (int i = 0; i < sidss.size(); i++) { + String s = sidss.get(i); + wmsShelfBillDetailMapper.deleteByMainSid(s); + } + delBySids(sids); + return rb.success().setMsg("删除成功"); + } + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + ShelfDetailsVo shelfDetailsVo = baseMapper.details(sid); + if (shelfDetailsVo == null) { + return rb.setMsg("该单据不存在"); + } + List list = wmsShelfBillDetailService.details(sid); + list.removeAll(Collections.singleton(null)); + if (!list.isEmpty()) { + shelfDetailsVo.setList(list); + } + return rb.success().setData(shelfDetailsVo); + } + + public ResultBean getInit(String sid, String orgPath, String userSid) { + ResultBean rb = ResultBean.fireFail(); + ShelfInitVo shelfInitVo = new ShelfInitVo(); + //查询所有已上架的商品 + List stringList = wmsShelfBillDetailService.selectReceiptSidList(); + stringList.removeAll(Collections.singleton(null)); + //获取收货单据 + WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sid); + shelfInitVo.setCreateTime(DateUtil.today());//单据日期 + shelfInitVo.setSourceBillNo(wmsReceiptBill.getBillNo());//来源单编号 + shelfInitVo.setSourceBillSid(wmsReceiptBill.getSid());//来源单sid + shelfInitVo.setBillState(0); + List list = new ArrayList<>(); + //获取收货单据的明细 + List wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectByBillSid(sid, stringList); + wmsReceiptBillDetailsList.removeAll(Collections.singleton(null)); + if (!wmsReceiptBillDetailsList.isEmpty()) { + for (int i = 0; i < wmsReceiptBillDetailsList.size(); i++) { + WmsReceiptBillDetail v = wmsReceiptBillDetailsList.get(i); + WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = wmsReceiptBillDetailBatchService.selectByDetails(v.getSid()); + ShelfInitListVo shelfInitListVo = new ShelfInitListVo(); + BeanUtil.copyProperties(v, shelfInitListVo, "sid"); + shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber()); + shelfInitListVo.setWarehouseSid(v.getWarehouseSid()); + shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid()); + shelfInitListVo.setWarehouseRackCode(""); + list.add(shelfInitListVo); + } + } + shelfInitVo.setList(list); + + return rb.success().setData(shelfInitVo); + } + + public ResultBean confirm(WmsShelfBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + dto.setBillState(1); + ResultBean resultBean = saveOrUpdateShelf(dto); + String sid = resultBean.getData(); + return rb.success().setData(sid); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillVo.java b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillVo.java new file mode 100644 index 0000000..e0121e7 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillVo.java @@ -0,0 +1,27 @@ +package com.yxt.storage.biz.wmsshelfbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsShelfBillVo { + + private String sid; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("单据日期") + private String createTime; + @ApiModelProperty("制单人姓名") + private String createByName; + @ApiModelProperty("来源单号(收货单号)") + private String sourceBillNo; + @ApiModelProperty("单据状态:0新建,1已完成") + private String billState; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfDetailsListVo.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfDetailsListVo.java new file mode 100644 index 0000000..b0cccc2 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfDetailsListVo.java @@ -0,0 +1,52 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/18 + **/ +@Data +public class ShelfDetailsListVo implements Vo { + + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("上架数量") + private String count; + + //商品名称 + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + //商品编码 + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + //规格 + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + //单位 + @ApiModelProperty("计量单位") + private String unit; + //仓库 + @ApiModelProperty("仓库名称") + private String warehouseName; + //库位 + @ApiModelProperty("库位名称") + private String warehouseRackName; + //已上架数量 + private String actualCount; + //载具编号 + private String packageNo; + + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfInitListVo.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfInitListVo.java new file mode 100644 index 0000000..088f8f0 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfInitListVo.java @@ -0,0 +1,49 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/23 + **/ +@Data +public class ShelfInitListVo { + + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("上架数量") + private String count; + + //商品名称 + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + //商品编码 + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + //规格 + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + //单位 + @ApiModelProperty("计量单位") + private String unit; + //仓库 + @ApiModelProperty("仓库名称") + private String warehouseName; + //库位 + @ApiModelProperty("库位名称") + private String warehouseRackName; + //已上架数量 + private String actualCount; + //载具编号 + private String packageNo; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetail.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetail.java new file mode 100644 index 0000000..41be309 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetail.java @@ -0,0 +1,32 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/10 + **/ +@Data +public class WmsShelfBillDetail extends BaseEntity { + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("收货单明细sid") + private String receiptDetailSid; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("上架数量") + private BigDecimal count; +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailDto.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailDto.java new file mode 100644 index 0000000..4d35f22 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailDto.java @@ -0,0 +1,53 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/15 + **/ +@Data +public class WmsShelfBillDetailDto { + + @ApiModelProperty("收货单明细sid") + private String receiptDetailSid; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("库存sid") + private String inventorySid; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编号") + private String warehouseRackCode; + @ApiModelProperty("需上架数量") + private String count; + + + //商品名称 + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + //商品编码 + @ApiModelProperty("商品sku编码") + private String goodsSkuCode; + //规格 + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + //单位 + @ApiModelProperty("计量单位") + private String unit; + //仓库 + @ApiModelProperty("仓库名称") + private String warehouseName; + //库位 + @ApiModelProperty("库位名称") + private String warehouseRackName; + //已上架数量 + private String actualCount; + //载具编号 + private String packageNo; + +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.java new file mode 100644 index 0000000..864a810 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.java @@ -0,0 +1,22 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/17 + **/ +@Mapper +public interface WmsShelfBillDetailMapper extends BaseMapper { + int deleteByMainSid(String sid); + + List details(String sid); + + List selectByBillSid(String sid); + + List selectReceiptSidList(); +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml new file mode 100644 index 0000000..23a4ed0 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml @@ -0,0 +1,46 @@ + + + + + delete + from wms_shelf_bill_detail + where billSid = #{sid} + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailService.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailService.java new file mode 100644 index 0000000..28d66fa --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailService.java @@ -0,0 +1,37 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import cn.hutool.core.bean.BeanUtil; +import com.yxt.common.base.service.MybatisBaseService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/17 + **/ +@Service +public class WmsShelfBillDetailService extends MybatisBaseService { + public void saveShelfDetails(String sid, List list) { + baseMapper.deleteByMainSid(sid); + list.forEach(v -> { + WmsShelfBillDetail wmsShelfBillDetail = new WmsShelfBillDetail(); + BeanUtil.copyProperties(v, wmsShelfBillDetail, "sid"); + wmsShelfBillDetail.setBillSid(sid); + baseMapper.insert(wmsShelfBillDetail); + }); + } + + public List details(String sid) { + return baseMapper.details(sid); + } + + public List selectByBillSid(String sid) { + return baseMapper.selectByBillSid(sid); + } + + public List selectReceiptSidList() { + return baseMapper.selectReceiptSidList(); + } +} diff --git a/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailVos.java b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailVos.java new file mode 100644 index 0000000..b3feca6 --- /dev/null +++ b/src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailVos.java @@ -0,0 +1,44 @@ +package com.yxt.storage.biz.wmsshelfbilldetail; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/19 + **/ +@Data +public class WmsShelfBillDetailVos { + + private String detailsSid; + + @ApiModelProperty("商品基础信息sid") + private String goodSpuSid; + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品Skusid") + private String goodsSkuSid; + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; + @ApiModelProperty("商品编码") + private String goodsSkuCode; + @ApiModelProperty("规格型号") + private String goodsSkuOwnSpec; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("现有量") + private String count; + @ApiModelProperty("仓库sid") + private String warehouseSid; + @ApiModelProperty("仓库名称") + private String warehouseName; + @ApiModelProperty("库位sid") + private String warehouseRackSid; + @ApiModelProperty("库位编码") + private String warehouseRackCode; + @ApiModelProperty("批次号") + private String batchNumber; + + private String inventorySid; +} diff --git a/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuDetailsVo.java b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuDetailsVo.java new file mode 100644 index 0000000..e28acae --- /dev/null +++ b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuDetailsVo.java @@ -0,0 +1,48 @@ +package com.yxt.storage.feign.goods.basegoodssku; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +@Data +public class BaseGoodsSkuDetailsVo { + + @ApiModelProperty("商品代码") + private String goodsCode; + @ApiModelProperty("条形码") + private String barCode; + @ApiModelProperty("商品名称") + private String goodsName; + @ApiModelProperty("副标题") + private String subTitle; + @ApiModelProperty("拼音缩写") + private String goodsPY; + @ApiModelProperty("商品简称") + private String goodsShortName; + @ApiModelProperty("商品分类sid") + private String goodsTypeSid; + @ApiModelProperty("品牌sid") + private String brandSid; + @ApiModelProperty("厂家sid") + private String manufacturersid; + @ApiModelProperty("商品单位sid") + private String goodsUnitSid; + @ApiModelProperty("商品单位名称") + private String goodsUnitName; + + @ApiModelProperty("商品Sku代码") + private String goodsSkuCode; + @ApiModelProperty("商品标题") + private String title; + + @ApiModelProperty("是否一品一码(goodID),0否,1是") + @JsonProperty("isGoodsID") + private int isGoodsID; + @ApiModelProperty("商品类别名称") + private String goodsTypeName; +} diff --git a/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeign.java b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeign.java new file mode 100644 index 0000000..4d52f0a --- /dev/null +++ b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeign.java @@ -0,0 +1,24 @@ +package com.yxt.storage.feign.goods.basegoodssku; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +@FeignClient( + contextId = "yxt-base-BaseGoodsSku", + name = "yxt-base", + path = "/apiadmin/base/basegoodssku", + fallback = BaseGoodsSkuFeignFallback.class) +public interface BaseGoodsSkuFeign { + + @ApiOperation("获取商品信息") + @GetMapping("/getDetails") + ResultBean getDetails(@RequestParam("sid") String sid); +} diff --git a/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeignFallback.java b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeignFallback.java new file mode 100644 index 0000000..8fd4fae --- /dev/null +++ b/src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeignFallback.java @@ -0,0 +1,17 @@ +package com.yxt.storage.feign.goods.basegoodssku; + +import com.yxt.common.core.result.ResultBean; +import org.springframework.stereotype.Component; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +@Component +public class BaseGoodsSkuFeignFallback implements BaseGoodsSkuFeign{ + @Override + public ResultBean getDetails(String sid) { + return null; + } +} diff --git a/src/main/java/com/yxt/storage/utils/Rule.java b/src/main/java/com/yxt/storage/utils/Rule.java new file mode 100644 index 0000000..b1e9e5f --- /dev/null +++ b/src/main/java/com/yxt/storage/utils/Rule.java @@ -0,0 +1,15 @@ +package com.yxt.storage.utils; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/20 + **/ +public class Rule { + + public static String getBillNo(String bill, int i) { + String num = String.format("%04d", i + 1); // 不足4位补0 + String billNo = bill + num; + return billNo; + } +} diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e69de29..1ff4c2a 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -0,0 +1,30 @@ +spring: + datasource: + hikari: + max-lifetime: 500000 + driver-class-name: com.mysql.cj.jdbc.Driver + url: jdbc:mysql://39.104.100.138:3306/yxt_wms?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true + username: root + password: yxt_mysql_138 + cloud: + nacos: + discovery: + server-addr: 127.0.0.1:8848 + redis: + database: 3 # Redis数据库索引(默认为0) + host: 127.0.0.1 + jedis: + pool: + max-active: -1 #连接池最大连接数(使用负值表示没有限制) + max-idle: 8 #连接池中的最大空闲连接 + max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制) + min-idle: 0 # 连接池中的最小空闲连接 + password: 123456 + port: 6379 + timeout: 0 # 连接超时时间(毫秒) + +image: + upload: + path: D:/works/projects/yxt/yxtgit/lipinka/yxt-yythmall-biz/target/classes/static/upload/ + url: + prefix: http://192.168.2.111:7211/upload/ \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e69de29..c61da92 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -0,0 +1,43 @@ +spring: + application: + name: yxt-wms + profiles: + active: devv + messages: + # 国际化资源文件路径 + basename: i18n/messages + servlet: + #上传文件 + multipart: + max-file-size: 50MB + max-request-size: 100MB + devtools: + restart: + # 热部署开关 + enabled: true + +server: + port: 7301 + max-http-header-size: 102400 + undertow: + max-http-post-size: -1 + +#mybatis +mybatis-plus: + # 配置mapper的扫描,找到所有的mapper.xml映射文件 + mapper-locations: classpath*:**Mapper.xml + global-config: + refresh: true + db-config: + #定义生成ID的类型 + id-type: Auto + db-type: mysql + configuration: + map-underscore-to-camel-case: false + cache-enabled: true + call-setters-on-nulls: true + log-impl: org.apache.ibatis.logging.stdout.StdOutImpl + + + + diff --git a/src/main/resources/logback-spring.xml b/src/main/resources/logback-spring.xml new file mode 100644 index 0000000..d01e9e9 --- /dev/null +++ b/src/main/resources/logback-spring.xml @@ -0,0 +1,54 @@ + + + + + + + + + + %yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n) + + + + + + + + + + + + + + + ${log.base}.log + + ${log.base}.%d{yyyyMMdd}.%i.log.zip + + + + 1MB + + + + + %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} + -%msg%n + + + + + + + + + + + \ No newline at end of file