diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java index b302290..bc39aa0 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInventoryRest.java @@ -1,10 +1,14 @@ package com.yxt.warehouse.apiadmin; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.warehouse.biz.warehouseinventory.*; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocation; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationService; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +33,8 @@ public class WarehouseInventoryRest { WarehouseInventoryService WarehouseInventoryService; @Autowired HttpServletResponse response; + @Autowired + WarehouseOutLocationService warehouseOutLocationService; @@ -198,4 +204,24 @@ public class WarehouseInventoryRest { public GoodsCountVo selCountsBySkuSid(@RequestParam("skuSid") String skuSid) { return WarehouseInventoryService.selCountsBySkuSid(skuSid); } + + @ApiOperation("根据skuSid查询商品可用库存") + @GetMapping("/selAvailableBySkuSid") + public ResultBean> selAvailableBySkuSid(@RequestParam("skuSid") String skuSid, + @RequestParam("sourceBillSid") String sourceBillSid, + @RequestParam("orgSid") String orgSid) { + ResultBean rb =new ResultBean().fail(); + List w=WarehouseInventoryService.selAvailableBySkuSid(skuSid,orgSid); + for (AvailableCountVo availableCountVo : w) { + WarehouseOutLocation warehouseOutLocation=warehouseOutLocationService.getOne(new QueryWrapper() + .eq("sourceBillSid",sourceBillSid).eq("inventorySid",availableCountVo.getSid())); + if(null!=warehouseOutLocation){ + availableCountVo.setInitialCount(warehouseOutLocation.getCount()); + availableCountVo.setCount(warehouseOutLocation.getCount()); + availableCountVo.setLocationSid(warehouseOutLocation.getSid()); + } + } + return rb.success().setData(w); + } + } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceOutRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceOutRest.java new file mode 100644 index 0000000..c011e87 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceOutRest.java @@ -0,0 +1,40 @@ +package com.yxt.warehouse.apiadmin; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceQuery; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutDto; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutQuery; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutService; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutVo; +import com.yxt.warehouse.biz.warehouseoutbill.*; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/8/14 14:56 + */ + +@Api(tags = "发票和出库单关联表") +@RestController +@RequestMapping("/apiadmin/warehouseinvoiceout") +public class WarehouseInvoiceOutRest { + @Autowired + private WarehouseInvoiceOutService warehouseInvoiceOutService; + + + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean> details(@RequestParam("sid") String sid) { + return warehouseInvoiceOutService.detailsByInvoiceSid(sid); + } + + +} diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceRest.java new file mode 100644 index 0000000..de0b79d --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseInvoiceRest.java @@ -0,0 +1,39 @@ +package com.yxt.warehouse.apiadmin; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceDto; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceService; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * @author wangpengfei + * @date 2024/8/14 14:55 + */ +@Api(tags = "发票信息") +@RestController +@RequestMapping("/apiadmin/warehouseinvoice") +public class WarehouseInvoiceRest { + @Autowired + private WarehouseInvoiceService warehouseInvoiceService; + + + + @ApiOperation("保存修改") + @PostMapping("/saveOrUpdate") + ResultBean saveOrUpdate(@RequestBody WarehouseInvoiceDto dto) { + return warehouseInvoiceService.saveOrUpdate(dto); + } + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean details(@RequestParam("sid") String sid) { + return warehouseInvoiceService.details(sid); + } + +} diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillDetailRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillDetailRest.java index 0fe5fae..d2e4f4b 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillDetailRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillDetailRest.java @@ -12,13 +12,15 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; + /** * @author wangpengfei * @date 2024/6/7 13:51 */ @Api(tags = "出库单据明细") @RestController -@RequestMapping("/apiadmin/wmsoutbilldetail") +@RequestMapping("/apiadmin/warehouseoutbilldetail") public class WarehouseOutBillDetailRest { @Autowired WarehouseOutBillDetailService warehouseOutBillDetailService; @@ -51,4 +53,12 @@ public class WarehouseOutBillDetailRest { WarehouseOutBillDetailVo vo = warehouseOutBillDetailService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + @ApiOperation("根据SID获取一条记录") + @GetMapping("/selectDetailsByBillSid") + public ResultBean> selectDetailsByBillSid(@RequestParam("sid") String sid){ + ResultBean rb = ResultBean.fireFail(); + List vo = warehouseOutBillDetailService.selectDetailsByBillSid(sid); + return rb.success().setData(vo); + } + } diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java index 17c425e..d4389ca 100644 --- a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutBillRest.java @@ -4,6 +4,7 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.warehouse.biz.warehouseoutbill.*; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -16,7 +17,7 @@ import org.springframework.web.bind.annotation.*; **/ @Api(tags = "出库单据") @RestController -@RequestMapping("/apiadmin/WmsOutBill") +@RequestMapping("/apiadmin/warehouseoutbill") public class WarehouseOutBillRest { @Autowired @@ -26,8 +27,7 @@ public class WarehouseOutBillRest { @PostMapping("/listPage") ResultBean> pageList(@RequestBody PagerQuery pagerQuery) { ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = wmsOutBillService.listPage(pagerQuery); - return rb.success().setData(pv); + return wmsOutBillService.listPage(pagerQuery); } @ApiOperation("出库保存修改") @@ -35,19 +35,53 @@ public class WarehouseOutBillRest { ResultBean saveOrUpdateOutBill(@RequestBody WarehouseOutBillDto dto) { return wmsOutBillService.saveOrUpdateOutBill(dto); } - +// @ApiOperation("收件地址") +// @PostMapping("/selectGoodsByBillSid") +// ResultBean> selectGoodsByBillSid(@RequestBody PagerQuery pagerQuery) { +// return wmsOutBillService.selectGoodsByBillSid(pagerQuery); +// } @ApiOperation("详情") @GetMapping("/details") ResultBean details(@RequestParam("sid") String sid) { return wmsOutBillService.details(sid); } + @ApiOperation("收件地址") + @GetMapping("/getAddresseeBySid") + ResultBean getAddresseeBySid(@RequestParam("sid") String sid) { + return wmsOutBillService.getAddresseeBySid(sid); + } @ApiOperation("选择商品分页列表") @PostMapping("/getInventoryList") - ResultBean> getInventoryList(@RequestBody PagerQuery pagerQuery) { - ResultBean> rb = ResultBean.fireFail(); - PagerVo pv = wmsOutBillService.getInventoryList(pagerQuery); + ResultBean> getInventoryList(@RequestBody PagerQuery pagerQuery) { + ResultBean> rb = ResultBean.fireFail(); + PagerVo pv = wmsOutBillService.getInventoryList(pagerQuery); return rb.success().setData(pv); } + @ApiOperation("修改承运商") + @PostMapping("/updateCarrier") + public ResultBean updateCarrier(WarehouseOutBillDto dto) { + return wmsOutBillService.updateCarrier(dto); + } + @ApiOperation("修改运单号") + @PostMapping("/updateWaybillNumber") + public ResultBean updateWaybillNumber(WarehouseOutBillDto dto) { + return wmsOutBillService.updateWaybillNumber(dto); + } + @ApiOperation("待分配-->打到零拣") + @PostMapping("/toBePickOut") + ResultBean toBePickOut(@RequestBody WarehouseOutStateQuery query) { + return wmsOutBillService.toBePickOut(query); + } + @ApiOperation("零拣打单 --> 待出库") + @PostMapping("/toBeOutbound") + ResultBean toBeOutbound(@RequestBody WarehouseOutStateQuery query) { + return wmsOutBillService.toBeOutbound(query); + } + @ApiOperation("零拣打单--->待分配") + @PostMapping("/toBeAllocated") + ResultBean toBeAllocated(@RequestBody WarehouseOutStateQuery query) { + return wmsOutBillService.toBeAllocated(query); + } @ApiOperation("确认") @PostMapping("/confirm") diff --git a/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutLocationRest.java b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutLocationRest.java new file mode 100644 index 0000000..e2dd6fc --- /dev/null +++ b/src/main/java/com/yxt/warehouse/apiadmin/WarehouseOutLocationRest.java @@ -0,0 +1,39 @@ +package com.yxt.warehouse.apiadmin; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceDto; +import com.yxt.warehouse.biz.warehouseinvoice.WarehouseInvoiceVo; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationDto; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationService; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2024/8/15 10:09 + */ +@Api(tags = "出库库位分配") +@RestController +@RequestMapping("/apiadmin/warehouseoutlocation") +public class WarehouseOutLocationRest { + + @Autowired + WarehouseOutLocationService warehouseOutLocationService; + + @ApiOperation("保存修改") + @PostMapping("/save") + ResultBean saveOrUpdate(@RequestBody List dtos) { + return warehouseOutLocationService.save(dtos); + } + + @ApiOperation("详情") + @GetMapping("/details") + ResultBean> details(@RequestParam("sid") String sid) { + return warehouseOutLocationService.details(sid); + } +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java index c8f3fb7..d2546ad 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseansbill/WarehouseAnsBillService.java @@ -154,7 +154,9 @@ public class WarehouseAnsBillService extends MybatisBaseService pagging = baseMapper.listPages(page, qw); for (WarehouseAnsBillVo record : pagging.getRecords()) { WarehouseRack warehouseRack=warehouseRackService.getOne(new QueryWrapper().eq("sid",record.getWarehouseRackSid())); - record.setWarehouseRackCode(warehouseRack.getRackCode()); + if(null!=warehouseRack){ + record.setWarehouseRackCode(warehouseRack.getRackCode()); + } } PagerVo p = PagerUtil.pageToVo(pagging, null); return rb.success().setData(p); diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml index 4199a09..805789f 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseansbilldetail/WarehouseAnsBillDetailMapper.xml @@ -4,7 +4,7 @@ delete from warehouse_ans_bill_detail - where billSid = #{sid} + where sourceBillSid = #{sid} + + + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java index 027d636..1caf8bc 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinventory/WarehouseInventoryService.java @@ -459,4 +459,7 @@ public class WarehouseInventoryService extends MybatisBaseService selAvailableBySkuSid(String skuSid,String orgSid) { + return baseMapper.selAvailableBySkuSid(skuSid,orgSid); + } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoice.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoice.java new file mode 100644 index 0000000..8013fd4 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoice.java @@ -0,0 +1,36 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +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 WarehouseInvoice extends BaseEntity { + + + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("发票类型 1 普通发票") + private String invoiceType; + + @ApiModelProperty("开票方") + private String invoicingParty; + @ApiModelProperty("抬头") + private String rise; + @ApiModelProperty("总金额") + private BigDecimal totalAmount; + @ApiModelProperty("税号") + private String dutyParagraph; + @ApiModelProperty("内容类型 1 发票商品 2自定义明细") + private String contentType; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceDto.java new file mode 100644 index 0000000..a967993 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceDto.java @@ -0,0 +1,42 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutDto; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutVo; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; +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/24 + **/ +@Data +public class WarehouseInvoiceDto { + private String sid; + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("发票类型 1 普通发票") + private String invoiceType; + + @ApiModelProperty("开票方") + private String invoicingParty; + @ApiModelProperty("抬头") + private String rise; + @ApiModelProperty("总金额") + private String totalAmount; + @ApiModelProperty("税号") + private String dutyParagraph; + @ApiModelProperty("内容类型 1 发票商品 2自定义明细") + private String contentType; + private String remarks; + + + private List detailsList = new ArrayList<>(); + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.java new file mode 100644 index 0000000..c2d1dc8 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.java @@ -0,0 +1,21 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +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/24 + **/ +@Mapper +public interface WarehouseInvoiceMapper extends BaseMapper { + + WarehouseInvoiceVo details(@Param("sid") String sid); + +} + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.xml new file mode 100644 index 0000000..d55adc7 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceMapper.xml @@ -0,0 +1,16 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceQuery.java new file mode 100644 index 0000000..6ddaced --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceQuery.java @@ -0,0 +1,49 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +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 WarehouseInvoiceQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + private String billState; + @ApiModelProperty("外部单号") + private String externalOrderNumber; + @ApiModelProperty("线上单号") + private String onlineOrderNumber; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("承运商") + private String carrier; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("下单日期开始时间") + private String orderTimeStart; + @ApiModelProperty("下单日期结束时间") + private String orderTimeEnd; + + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceService.java new file mode 100644 index 0000000..7c1ceca --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceService.java @@ -0,0 +1,116 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.result.ResultBean; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutDto; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutService; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutVo; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetail; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Service +public class WarehouseInvoiceService extends MybatisBaseService { + + @Autowired + WarehouseInvoiceOutService warehouseInvoiceOutService; + @Autowired + WarehouseOutBillDetailService warehouseOutBillDetailService; + public ResultBean saveOrUpdate(WarehouseInvoiceDto dto) { + ResultBean rb = ResultBean.fireFail(); + String sid = dto.getSid(); + BigDecimal total=new BigDecimal(0); + if (StringUtils.isBlank(sid)) { + WarehouseInvoice warehouseInvoice = new WarehouseInvoice(); + BeanUtil.copyProperties(dto, warehouseInvoice, "sid"); + sid = warehouseInvoice.getSid(); + List detailsList=new ArrayList<>(); + if(dto.getContentType().equals("1")){ + List s=warehouseOutBillDetailService.list(new QueryWrapper().eq("sid",dto.getBillSid())); + for (WarehouseOutBillDetail warehouseOutBillDetail : s) { + WarehouseInvoiceOutDto d=new WarehouseInvoiceOutDto(); + d.setPrice(warehouseOutBillDetail.getPrice()); + d.setOrderCount(warehouseOutBillDetail.getOrderCount()); + d.setUnit(warehouseOutBillDetail.getUnit()); + d.setGoodsSkuSid(warehouseOutBillDetail.getGoodsSkuSid()); + d.setGoodsSpuName(warehouseOutBillDetail.getGoodsSpuName()); + detailsList.add(d); + } + }else{ + detailsList= dto.getDetailsList(); + } + detailsList.stream().forEach(s->s.setInvoiceSid(warehouseInvoice.getSid())); + detailsList.removeAll(Collections.singleton(null)); + if (detailsList.size() > 0) { + total=warehouseInvoiceOutService.saveOrUpdate(detailsList).getData(); + + } + warehouseInvoice.setTotalAmount(total); + baseMapper.insert(warehouseInvoice); + } else { + WarehouseInvoice warehouseInvoice = fetchBySid(sid); + if (warehouseInvoice == null) { + return rb.setMsg("该单据不存在"); + } + List detailsList=new ArrayList<>(); + if(dto.getContentType().equals("1")){ + List s=warehouseOutBillDetailService.list(new QueryWrapper().eq("sid",dto.getBillSid())); + for (WarehouseOutBillDetail warehouseOutBillDetail : s) { + WarehouseInvoiceOutDto d=new WarehouseInvoiceOutDto(); + d.setPrice(warehouseOutBillDetail.getPrice()); + d.setOrderCount(warehouseOutBillDetail.getOrderCount()); + d.setUnit(warehouseOutBillDetail.getUnit()); + d.setGoodsSkuSid(warehouseOutBillDetail.getGoodsSkuSid()); + d.setGoodsSpuName(warehouseOutBillDetail.getGoodsSpuName()); + detailsList.add(d); + } + }else{ + detailsList= dto.getDetailsList(); + } + BeanUtil.copyProperties(dto, warehouseInvoice, "sid"); + detailsList.stream().forEach(s->s.setInvoiceSid(warehouseInvoice.getSid())); + detailsList.removeAll(Collections.singleton(null)); + if (detailsList.size() > 0) { + total=warehouseInvoiceOutService.saveOrUpdate(detailsList).getData(); + } + warehouseInvoice.setTotalAmount(total); + baseMapper.updateById(warehouseInvoice); + } + return rb.success().setData(sid); + } + + public ResultBean details(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseInvoiceVo warehouseInvoiceDetailsVo = baseMapper.details(sid); + if (warehouseInvoiceDetailsVo == null) { + return rb.setMsg("该单据不存在"); + } + //ToDo:需补充仓库等信息 + List detailsList = warehouseInvoiceOutService.detailsByInvoiceSid(warehouseInvoiceDetailsVo.getSid()).getData(); + detailsList.removeAll(Collections.singleton(null)); + if (!detailsList.isEmpty()) { + warehouseInvoiceDetailsVo.setDetailsList(detailsList); + } + return rb.success().setData(warehouseInvoiceDetailsVo); + } + + + + + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceVo.java new file mode 100644 index 0000000..41970c5 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoice/WarehouseInvoiceVo.java @@ -0,0 +1,43 @@ +package com.yxt.warehouse.biz.warehouseinvoice; + +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutDto; +import com.yxt.warehouse.biz.warehouseinvoiceout.WarehouseInvoiceOutVo; +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/24 + **/ +@Data +public class WarehouseInvoiceVo { + private String sid; + @ApiModelProperty("单据sid") + private String billSid; + @ApiModelProperty("发票类型 1 普通发票") + private String invoiceType; + private String invoiceTypeValue; + + @ApiModelProperty("开票方") + private String invoicingParty; + @ApiModelProperty("抬头") + private String rise; + @ApiModelProperty("总金额") + private String totalAmount; + @ApiModelProperty("税号") + private String dutyParagraph; + @ApiModelProperty("内容类型 1 发票商品 2自定义明细") + private String contentType; + private String contentTypeValue; + private String remarks; + + + private List detailsList = new ArrayList<>(); + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOut.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOut.java new file mode 100644 index 0000000..cc3c253 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOut.java @@ -0,0 +1,36 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +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 WarehouseInvoiceOut extends BaseEntity { + + + @ApiModelProperty("发票sid") + private String invoiceSid; + @ApiModelProperty("商品skusid") + private String goodsSkuSid; + + @ApiModelProperty("商品名") + private String goodsSpuName; + @ApiModelProperty("单位") + private String unit; + @ApiModelProperty("单价") + private BigDecimal price; + @ApiModelProperty("数量") + private BigDecimal orderCount; + @ApiModelProperty("总金额") + private BigDecimal salesAmount; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutDto.java new file mode 100644 index 0000000..9063dba --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutDto.java @@ -0,0 +1,39 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WarehouseInvoiceOutDto { + + private String sid; + @ApiModelProperty("发票sid") + private String invoiceSid; + @ApiModelProperty("商品skusid") + private String goodsSkuSid; + + @ApiModelProperty("商品名") + private String goodsSpuName; + @ApiModelProperty("单位") + private String unit; + @ApiModelProperty("单价") + private BigDecimal price; + @ApiModelProperty("数量") + private BigDecimal orderCount; + @ApiModelProperty("总金额") + private BigDecimal salesAmount; + + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.java new file mode 100644 index 0000000..1c1efef --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.java @@ -0,0 +1,26 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.warehouse.biz.warehouseoutbill.WarehouseOutBillDetailsVo; +import com.yxt.warehouse.biz.warehouseoutbill.WarehouseOutBillInventoryVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Mapper +public interface WarehouseInvoiceOutMapper extends BaseMapper { + IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + List detailsByInvoiceSid(@Param("sid") String sid); + +} + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.xml new file mode 100644 index 0000000..8f01cd6 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutQuery.java new file mode 100644 index 0000000..f05ca99 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutQuery.java @@ -0,0 +1,49 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +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 WarehouseInvoiceOutQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + private String billState; + @ApiModelProperty("外部单号") + private String externalOrderNumber; + @ApiModelProperty("线上单号") + private String onlineOrderNumber; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("承运商") + private String carrier; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("下单日期开始时间") + private String orderTimeStart; + @ApiModelProperty("下单日期结束时间") + private String orderTimeEnd; + + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutService.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutService.java new file mode 100644 index 0000000..c9b1d9f --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutService.java @@ -0,0 +1,60 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.core.result.ResultBean; +import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Service +public class WarehouseInvoiceOutService extends MybatisBaseService { + @Autowired + private WarehouseOutBillDetailService warehouseOutBillDetailService; + @Autowired + private WarehouseInventoryService warehouseInventoryService; + @Autowired + private WarehouseInventoryRecordService warehouseInventoryRecordService; + + + + public ResultBean saveOrUpdate(List dtos) { + ResultBean rb = ResultBean.fireFail(); + if(dtos.size()!=0){ + baseMapper.delete(new QueryWrapper().eq("invoiceSid",dtos.get(0).getInvoiceSid())); + } + BigDecimal total=new BigDecimal(0); + for (WarehouseInvoiceOutDto dto : dtos) { + WarehouseInvoiceOut warehouseInvoiceOut = new WarehouseInvoiceOut(); + BeanUtil.copyProperties(dto, warehouseInvoiceOut, "sid"); + warehouseInvoiceOut.setSalesAmount(warehouseInvoiceOut.getOrderCount().multiply(warehouseInvoiceOut.getPrice())); + total=total.add(warehouseInvoiceOut.getSalesAmount()); + baseMapper.insert(warehouseInvoiceOut); + } + return rb.success().setData(total); + } + + public ResultBean> detailsByInvoiceSid(String sid) { + ResultBean> rb = ResultBean.fireFail(); + List warehouseInvoiceOutVo = baseMapper.detailsByInvoiceSid(sid); + if (warehouseInvoiceOutVo.size()==0) { + return rb.setMsg("该单据不存在"); + } + + return rb.success().setData(warehouseInvoiceOutVo); + } + + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutVo.java new file mode 100644 index 0000000..2347de0 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseinvoiceout/WarehouseInvoiceOutVo.java @@ -0,0 +1,35 @@ +package com.yxt.warehouse.biz.warehouseinvoiceout; + +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 WarehouseInvoiceOutVo { + + private String sid; + @ApiModelProperty("发票sid") + private String invoiceSid; + @ApiModelProperty("商品skusid") + private String goodsSkuSid; + + @ApiModelProperty("商品名") + private String goodsSpuName; + @ApiModelProperty("单位") + private String unit; + @ApiModelProperty("单价") + private BigDecimal price; + @ApiModelProperty("数量") + private BigDecimal orderCount; + @ApiModelProperty("总金额") + private BigDecimal salesAmount; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBill.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBill.java index 48c7d61..4228e9d 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBill.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBill.java @@ -14,32 +14,96 @@ import java.util.Date; @Data public class WarehouseOutBill extends BaseEntity { + @ApiModelProperty("单据编号") private String billNo; + @ApiModelProperty("0 待分配 1零拣打单 2待出库 3已出库") + private String billState; + @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 externalState; + @ApiModelProperty("买家留言") + private String buyerMessage; + @ApiModelProperty("库存状态") + private String inventoryStatus; @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; + private String shipper; + @ApiModelProperty("承运商") + private String carrierKey; + private String carrierValue; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("配送方式") + private String deliveryMethod; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("收货人") + private String consignee; + @ApiModelProperty("固话") + private String fixedLine; + @ApiModelProperty("邮编") + private String postalCode; + @ApiModelProperty("省") + private String province; + @ApiModelProperty("市") + private String city; + @ApiModelProperty("区") + private String county; + @ApiModelProperty("街道") + private String street; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("实付") + private double actualPayment; + @ApiModelProperty("优惠") + private double discount; + @ApiModelProperty("运费") + private double freight; + @ApiModelProperty("重量") + private double weight; + @ApiModelProperty("估重") + private double weightEstimation; + @ApiModelProperty("商品数量") + private double quantity; + @ApiModelProperty("下单时间") + private Date orderTime; + @ApiModelProperty("订单号") + private String orderNumber; + @ApiModelProperty("外部订单号") + private String externalOrderNumber; + @ApiModelProperty("线上订单号") + private String onlineOrderNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("付款时间") + private Date paymentTime; + @ApiModelProperty("接单时间") + private Date orderAcceptanceTime; + @ApiModelProperty("拣选区域") + private String pickingArea; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("品牌") + private String brand; + @ApiModelProperty("波次") + private String waveTimes; + @ApiModelProperty("超时时间") + private Date timeoutPeriod; + @ApiModelProperty("到货时间") + private Date deliveryTime; + @ApiModelProperty("体积") + private double volume; + @ApiModelProperty("标记") + private String sign; + @ApiModelProperty("最晚发货时间") + private Date latestDeliveryTime; @ApiModelProperty("创建组织sid") private String createOrgSid; @ApiModelProperty("使用组织sid") private String useOrgSid; + } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDetailsVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDetailsVo.java index 9b335d7..79c4ddd 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDetailsVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDetailsVo.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -16,22 +17,95 @@ import java.util.List; public class WarehouseOutBillDetailsVo { 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("单据状态") + @ApiModelProperty("0 待分配 1零拣打单 2待出库 3已出库") private String billState; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("外部状态") + private String externalState; + @ApiModelProperty("买家留言") + private String buyerMessage; + @ApiModelProperty("库存状态") + private String inventoryStatus; + @ApiModelProperty("货主") + private String shipper; + @ApiModelProperty("承运商") + private String carrierKey; + private String carrierValue; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("配送方式") + private String deliveryMethod; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("收货人") + private String consignee; + @ApiModelProperty("固话") + private String fixedLine; + @ApiModelProperty("邮编") + private String postalCode; + @ApiModelProperty("省") + private String province; + @ApiModelProperty("市") + private String city; + @ApiModelProperty("区") + private String county; + @ApiModelProperty("街道") + private String street; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("实付") + private double actualPayment; + @ApiModelProperty("优惠") + private double discount; + @ApiModelProperty("运费") + private double freight; + @ApiModelProperty("重量") + private double weight; + @ApiModelProperty("估重") + private double weightEstimation; + @ApiModelProperty("商品数量") + private double quantity; + @ApiModelProperty("下单时间") + private Date orderTime; + @ApiModelProperty("订单号") + private String orderNumber; + @ApiModelProperty("外部订单号") + private String externalOrderNumber; + @ApiModelProperty("线上订单号") + private String onlineOrderNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("付款时间") + private Date paymentTime; + @ApiModelProperty("接单时间") + private Date orderAcceptanceTime; + @ApiModelProperty("拣选区域") + private String pickingArea; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("品牌") + private String brand; + @ApiModelProperty("波次") + private String waveTimes; + @ApiModelProperty("超时时间") + private Date timeoutPeriod; + @ApiModelProperty("到货时间") + private Date deliveryTime; + @ApiModelProperty("体积") + private double volume; + @ApiModelProperty("标记") + private String sign; + @ApiModelProperty("最晚发货时间") + private Date latestDeliveryTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; @ApiModelProperty("备注") private String remarks; diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDto.java index b2a1365..c4cb103 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDto.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillDto.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -16,24 +17,98 @@ import java.util.List; public class WarehouseOutBillDto { 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("单据状态") + @ApiModelProperty("0 待分配 1零拣打单 2待出库 3已出库") private String billState; - @ApiModelProperty("备注") + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("外部状态") + private String externalState; + @ApiModelProperty("买家留言") + private String buyerMessage; + @ApiModelProperty("库存状态") + private String inventoryStatus; + @ApiModelProperty("货主") + private String shipper; + @ApiModelProperty("承运商") + private String carrierKey; + private String carrierValue; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("配送方式") + private String deliveryMethod; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("收货人") + private String consignee; + @ApiModelProperty("固话") + private String fixedLine; + @ApiModelProperty("邮编") + private String postalCode; + @ApiModelProperty("省") + private String province; + @ApiModelProperty("市") + private String city; + @ApiModelProperty("区") + private String county; + @ApiModelProperty("街道") + private String street; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("实付") + private double actualPayment; + @ApiModelProperty("优惠") + private double discount; + @ApiModelProperty("运费") + private double freight; + @ApiModelProperty("重量") + private double weight; + @ApiModelProperty("估重") + private double weightEstimation; + @ApiModelProperty("商品数量") + private double quantity; + @ApiModelProperty("下单时间") + private Date orderTime; + @ApiModelProperty("订单号") + private String orderNumber; + @ApiModelProperty("外部订单号") + private String externalOrderNumber; + @ApiModelProperty("线上订单号") + private String onlineOrderNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("付款时间") + private Date paymentTime; + @ApiModelProperty("接单时间") + private Date orderAcceptanceTime; + @ApiModelProperty("拣选区域") + private String pickingArea; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("品牌") + private String brand; + @ApiModelProperty("波次") + private String waveTimes; + @ApiModelProperty("超时时间") + private Date timeoutPeriod; + @ApiModelProperty("到货时间") + private Date deliveryTime; + @ApiModelProperty("体积") + private double volume; + @ApiModelProperty("标记") + private String sign; + @ApiModelProperty("最晚发货时间") + private Date latestDeliveryTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; private String remarks; + private String userSid; + private String userName; private List detailsList = new ArrayList<>(); diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillGoodsQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillGoodsQuery.java new file mode 100644 index 0000000..aa060c8 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillGoodsQuery.java @@ -0,0 +1,22 @@ +package com.yxt.warehouse.biz.warehouseoutbill; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/26 + **/ +@Data +public class WarehouseOutBillGoodsQuery implements Query { + private String sourceBillSid; + //商品编码 + private String goodsSkuCode; + //商品名称 + private String goodsSpuName; + //规格 + private String goodsSkuOwnSpec; + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java deleted file mode 100644 index 2bac091..0000000 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryQuery.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.yxt.warehouse.biz.warehouseoutbill; - -import com.yxt.common.core.query.Query; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * @description: - * @author: dimengzhe - * @date: 2024/4/26 - **/ -@Data -public class WarehouseOutBillInventoryQuery implements Query { - - //商品名称 - @ApiModelProperty("商品名称") - private String goodsSpuName; - - //商品编码 - private String goodsSkuCode; - - //仓库 - private String warehouseName; - - //库位 - private String warehouseRackCode; - - //供应商 - private String supplierName; - - private String orgPath; - - private String busrepairBillsid;//维修工单sid - private String name; -} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java index c92b643..f1d21bb 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillInventoryVo.java @@ -3,6 +3,8 @@ package com.yxt.warehouse.biz.warehouseoutbill; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @description: * @author: dimengzhe @@ -11,41 +13,95 @@ import lombok.Data; @Data public class WarehouseOutBillInventoryVo { private String sid; - private String inventorySid; - @ApiModelProperty("商品ID") - private String goodsID; - @ApiModelProperty("商品基础信息Sid") - private String goodSpuSid; - @ApiModelProperty("商品名称") - private String goodsSpuName; - @ApiModelProperty("图号") - private String goodsSkuCode; - @ApiModelProperty("商品Skusid") - private String goodsSkuSid; - @ApiModelProperty("商品Sku名称") - private String goodsSkuTitle; - @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 warehouseRackCode; - - private String price;//销售单价 - private String outboundCount;// 已出库数量 - //入库单价 - private String money; - //库存数量 - private String count; - //供应商 - private String supplierSid; - private String supplierName; + @ApiModelProperty("0 待分配 1零拣打单 2待出库 3已出库") + private String billState; + @ApiModelProperty("单据编号") + private String billNo; + @ApiModelProperty("来源单号") + private String sourceBillNo; + @ApiModelProperty("外部状态") + private String externalState; + @ApiModelProperty("买家留言") + private String buyerMessage; + @ApiModelProperty("库存状态") + private String inventoryStatus; + @ApiModelProperty("货主") + private String shipper; + @ApiModelProperty("承运商") + private String carrier; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("配送方式") + private String deliveryMethod; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("收货人") + private String consignee; + @ApiModelProperty("固话") + private String fixedLine; + @ApiModelProperty("邮编") + private String postalCode; + @ApiModelProperty("省") + private String province; + @ApiModelProperty("市") + private String city; + @ApiModelProperty("区") + private String county; + @ApiModelProperty("街道") + private String street; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("实付") + private double actualPayment; + @ApiModelProperty("优惠") + private double discount; + @ApiModelProperty("运费") + private double freight; + @ApiModelProperty("重量") + private double weight; + @ApiModelProperty("估重") + private double weightEstimation; + @ApiModelProperty("商品数量") + private double quantity; + @ApiModelProperty("下单时间") + private Date orderTime; + @ApiModelProperty("订单号") + private String orderNumber; + @ApiModelProperty("外部订单号") + private String externalOrderNumber; + @ApiModelProperty("线上订单号") + private String onlineOrderNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("付款时间") + private Date paymentTime; + @ApiModelProperty("接单时间") + private Date orderAcceptanceTime; + @ApiModelProperty("拣选区域") + private String pickingArea; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("品牌") + private String brand; + @ApiModelProperty("波次") + private String waveTimes; + @ApiModelProperty("超时时间") + private Date timeoutPeriod; + @ApiModelProperty("到货时间") + private Date deliveryTime; + @ApiModelProperty("体积") + private double volume; + @ApiModelProperty("标记") + private String sign; + @ApiModelProperty("最晚发货时间") + private Date latestDeliveryTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + private String remarks; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java index 1e8e6d1..c604fcd 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -16,8 +17,10 @@ import org.apache.ibatis.annotations.Param; public interface WarehouseOutBillMapper extends BaseMapper { IPage listPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - WarehouseOutBillDetailsVo details(String sid); + WarehouseOutBillDetailsVo details(@Param("sid") String sid); - IPage getInventoryList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + IPage getInventoryList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + String selectNum(String billNo); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml index 2f865b5..f59a6ec 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillMapper.xml @@ -1,4 +1,35 @@ + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java index 386b522..98c70f5 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillQuery.java @@ -14,18 +14,36 @@ public class WarehouseOutBillQuery implements Query { @ApiModelProperty("单据编号") private String billNo; - @ApiModelProperty("单据日期开始时间") - private String createTimeStart; - @ApiModelProperty("单据日期结束时间") - private String createTimeEnd; - @ApiModelProperty("来源单号") - private String sourceBillNo; - @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") - private String busTypeValue; - @ApiModelProperty("单据状态") private String billState; - @ApiModelProperty("组织sid全路径") + @ApiModelProperty("外部单号") + private String externalOrderNumber; + @ApiModelProperty("线上单号") + private String onlineOrderNumber; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("承运商") + private String carrier; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("下单日期开始时间") + private String orderTimeStart; + @ApiModelProperty("下单日期结束时间") + private String orderTimeEnd; + + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") private String orgPath; @ApiModelProperty("用户sid") - private String createBySid; + private String userSid; + private int index; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java index 9284876..213d5cd 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillService.java @@ -1,6 +1,7 @@ package com.yxt.warehouse.biz.warehouseoutbill; 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; @@ -9,17 +10,24 @@ import com.yxt.common.base.utils.StringUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; +import com.yxt.warehouse.biz.operationrecord.OperationRecordDto; +import com.yxt.warehouse.biz.operationrecord.OperationRecordService; import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventory; import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto; import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailVo; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocation; +import com.yxt.warehouse.biz.warehouseoutlocation.WarehouseOutLocationService; +import com.yxt.warehouse.utils.Rule; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Collections; +import java.util.Date; import java.util.List; /** @@ -35,36 +43,77 @@ public class WarehouseOutBillService extends MybatisBaseService listPage(PagerQuery pagerQuery) { + public ResultBean> listPage(PagerQuery pagerQuery) { + ResultBean> rb =new ResultBean().fail(); WarehouseOutBillQuery query = pagerQuery.getParams(); QueryWrapper qw = new QueryWrapper<>(); //ToDo:添加查询条件 + if (StringUtils.isNotBlank(query.getOrgLevelKey())) { + //数据权限ID(1全部、2本部门及子部门、3本部门、4个人) + String orgLevelKey=query.getOrgLevelKey(); + String orgSidPath=query.getOrgPath(); + int index=query.getIndex(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, index); + qw.apply("s.orgSidPath like('"+orgSidPath+"')"); + } else if ("4".equals(orgLevelKey)) { + qw.eq("wab.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + if (StringUtils.isNotBlank(query.getBillState())) { + qw.eq("a.billState",query.getBillState()); + } if (StringUtils.isNotBlank(query.getBillNo())) { - qw.like("wob.billNo", query.getBillNo()); + qw.like("a.billNo",query.getBillNo()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("a.externalOrderNumber",query.getExternalOrderNumber()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("a.onlineOrderNumber",query.getOnlineOrderNumber()); } - //单据日期开始时间-单据日期结束时间 - qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wob.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')"). - apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wob.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')" - ); //来源单号 - if (StringUtils.isNotBlank(query.getSourceBillNo())) { - qw.like("wob.sourceBillNo", query.getSourceBillNo()); + if (StringUtils.isNotBlank(query.getBuyer())) { + qw.like("a.buyer", query.getBuyer()); } //业务类型 - if (StringUtils.isNotBlank(query.getBusTypeValue())) { - qw.like("wob.busTypeValue", query.getBusTypeValue()); + if (StringUtils.isNotBlank(query.getWaybillNumber())) { + qw.like("a.busTypeValue", query.getWaybillNumber()); } //单据类型 - if (StringUtils.isNotBlank(query.getBillState())) { - qw.like("wob.billState", query.getBillState()); + if (StringUtils.isNotBlank(query.getPlatform())) { + qw.like("a.billState", query.getPlatform()); } + if (StringUtils.isNotBlank(query.getCarrier())) { + qw.like("a.billState", query.getCarrier()); + } + //单据日期开始时间-单据日期结束时间 + qw.apply(StringUtils.isNotBlank(query.getOrderTimeStart()), "date_format (a.orderTime,'%Y-%m-%d') >= date_format('" + query.getOrderTimeStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(query.getOrderTimeEnd()), "date_format (a.orderTime,'%Y-%m-%d') <= date_format('" + query.getOrderTimeEnd() + "','%Y-%m-%d')" + ); + IPage page = PagerUtil.queryToPage(pagerQuery); IPage pagging = baseMapper.listPage(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; + return rb.success().setData(p); } public ResultBean saveOrUpdateOutBill(WarehouseOutBillDto dto) { @@ -79,7 +128,26 @@ public class WarehouseOutBillService extends MybatisBaseService 0) { warehouseOutBillDetailService.saveOrUpdateBillDetails(sid, detailsList); } + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMMdd"); + billNo = "CK" + date; + String i = baseMapper.selectNum(billNo); + if (org.apache.commons.lang3.StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + WarehouseOutBill.setBillNo(billNo); + WarehouseOutBill.setBillState("0"); baseMapper.insert(WarehouseOutBill); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(dto.getSid()); + dto1.setUserSid(dto.getUserSid()); + dto1.setUserName(dto.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("oms推送销售出库单"); + operationRecordService.save(dto1); } else { WarehouseOutBill WarehouseOutBill = fetchBySid(sid); if (WarehouseOutBill == null) { @@ -110,83 +178,171 @@ public class WarehouseOutBillService extends MybatisBaseService selectGoodsByBillSid(PagerQuery pagerQuery) { +// ResultBean rb = ResultBean.fireFail(); +// WarehouseOutBillDetailsVo WarehouseOutBillDetailsVo = baseMapper.details(sid); +// if (WarehouseOutBillDetailsVo == null) { +// return rb.setMsg("该单据不存在"); +// } +// return rb.success().setData(WarehouseOutBillDetailsVo); +// } - public PagerVo getInventoryList(PagerQuery pagerQuery) { - WarehouseOutBillInventoryQuery query = pagerQuery.getParams(); + public ResultBean getAddresseeBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseOutBillDetailsVo WarehouseOutBillDetailsVo = baseMapper.details(sid); + if (WarehouseOutBillDetailsVo == null) { + return rb.setMsg("该单据不存在"); + } + return rb.success().setData(WarehouseOutBillDetailsVo); + } + + public PagerVo getInventoryList(PagerQuery pagerQuery) { + WarehouseOutBillGoodsQuery query = pagerQuery.getParams(); QueryWrapper qw = new QueryWrapper<>(); - //ToDo:添加查询条件 +// //ToDo:添加查询条件 if (StringUtils.isNotBlank(query.getGoodsSpuName())) { - qw.like("wi.goodsSpuName", query.getGoodsSpuName()); + qw.like("a.goodsSpuName", query.getGoodsSpuName()); } - if (StringUtils.isNotBlank(query.getName())) { - qw.like("wi.goodsSpuName", query.getName()); - } - //商品编码 if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { - qw.like("wi.goodsSkuCode", query.getGoodsSkuCode()); - } - //仓库 - if (StringUtils.isNotBlank(query.getWarehouseName())) { - qw.like("wi.warehouseName", query.getWarehouseName()); + qw.like("a.goodsSkuCode", query.getGoodsSkuCode()); } - //库位 - if (StringUtils.isNotBlank(query.getWarehouseRackCode())) { - qw.like("wi.warehouseRackCode", query.getWarehouseRackCode()); + //商品编码 + if (StringUtils.isNotBlank(query.getGoodsSkuOwnSpec())) { + qw.like("a.goodsSkuOwnSpec", query.getGoodsSkuOwnSpec()); } - //ToDo:供应商 - /* if (StringUtils.isNotBlank(query.getSupplierName())) { - qw.like("supplierName", query.getSupplierName()); - }*/ + qw.eq("sourceBillSid",query.getSourceBillSid()); IPage page = PagerUtil.queryToPage(pagerQuery); - IPage pagging = baseMapper.getInventoryList(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); + IPage pagging = baseMapper.getInventoryList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } + public ResultBean updateCarrier(WarehouseOutBillDto dto) { + ResultBean rb=new ResultBean().fail(); + WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper().eq("sid",dto.getSid())); + warehouseOutBill.setCarrierKey(dto.getCarrierKey()); + warehouseOutBill.setCarrierValue(dto.getCarrierValue()); +// warehouseOutBill.setCarrier(); + baseMapper.updateById(warehouseOutBill); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(dto.getSid()); + dto1.setUserSid(dto.getUserSid()); + dto1.setUserName(dto.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("修改订单承运商"); + operationRecordService.save(dto1); + return rb.success().setMsg("成功"); + } + public ResultBean updateWaybillNumber(WarehouseOutBillDto dto) { + ResultBean rb=new ResultBean().fail(); + WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper().eq("sid",dto.getSid())); + warehouseOutBill.setWaybillNumber(dto.getWaybillNumber()); + + baseMapper.updateById(warehouseOutBill); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(dto.getSid()); + dto1.setUserSid(dto.getUserSid()); + dto1.setUserName(dto.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("修改订单运单号"); + operationRecordService.save(dto1); + return rb.success().setMsg("成功"); + } + public ResultBean toBePickOut(WarehouseOutStateQuery query) { + ResultBean rb=new ResultBean().fail(); + for (String s : query.getSid().split(",")) { + WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper().eq("sid",s)); + warehouseOutBill.setBillState(query.getBillState()); + baseMapper.updateById(warehouseOutBill); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(s); + dto1.setUserSid(query.getUserSid()); + dto1.setUserName(query.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("待分配-->打到零拣"); + operationRecordService.save(dto1); + } + return rb.success().setMsg("成功"); + } + public ResultBean toBeOutbound(WarehouseOutStateQuery query) { + ResultBean rb=new ResultBean().fail(); + for (String s : query.getSid().split(",")) { + WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper().eq("sid",s)); + warehouseOutBill.setBillState(query.getBillState()); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(s); + dto1.setUserSid(query.getUserSid()); + dto1.setUserName(query.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("零拣打单 --> 待出库"); + operationRecordService.save(dto1); + } + + return rb.success().setMsg("成功"); + } + + public ResultBean toBeAllocated(WarehouseOutStateQuery query) { + ResultBean rb=new ResultBean().fail(); + for (String s : query.getSid().split(",")) { + WarehouseOutBill warehouseOutBill=baseMapper.selectOne(new QueryWrapper().eq("sid",s)); + warehouseOutBill.setBillState(query.getBillState()); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(s); + dto1.setUserSid(query.getUserSid()); + dto1.setUserName(query.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("零拣打单--->待分配"); + operationRecordService.save(dto1); + } + + return rb.success().setMsg("成功"); + } public ResultBean confirm(WarehouseOutBillDto dto) { ResultBean rb = ResultBean.fireFail(); - String sid = saveOrUpdateOutBill(dto).getData(); - List detailsList = dto.getDetailsList(); - detailsList.removeAll(Collections.singleton(null)); - if (!detailsList.isEmpty()) { - for (int i = 0; i < detailsList.size(); i++) { - WarehouseOutBillDetailDto WarehouseOutBillDetailDto = detailsList.get(i); - WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(WarehouseOutBillDetailDto.getInventorySid()); + for (String s : dto.getSid().split(",")) { + List warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper().eq("sourceBillSid",dto.getSid())); + for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) { + WarehouseInventory WarehouseInventory = warehouseInventoryService.fetchBySid(warehouseOutLocation.getInventorySid()); //减去出库的数量 - WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(new BigDecimal(WarehouseOutBillDetailDto.getOutCount()))); + WarehouseInventory.setCount(WarehouseInventory.getCount().subtract(warehouseOutLocation.getCount())); warehouseInventoryService.updateById(WarehouseInventory); + saveWarehouseInventory(dto.getSid()); } - saveWarehouseInventory(dto.getSid()); + OperationRecordDto dto1 = new OperationRecordDto(); + dto1.setBillSid(dto.getSid()); + dto1.setUserSid(dto.getUserSid()); + dto1.setUserName(dto.getUserName()); + dto1.setCreateTime(new Date()); + dto1.setContent("出库"); + operationRecordService.save(dto1); } + + return rb.success(); } public void saveWarehouseInventory(String sid) { WarehouseOutBill WarehouseOutBill = fetchBySid(sid); - List detailList = warehouseOutBillDetailService.selectDetailsList(sid); - detailList.removeAll(Collections.singleton(null)); - if (!detailList.isEmpty()) { - for (int i = 0; i < detailList.size(); i++) { - WarehouseOutBillDetailDto WarehouseOutBillDetailDto = detailList.get(i); - WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto(); - WarehouseInventoryRecordDto.setInventorySid(WarehouseOutBillDetailDto.getInventorySid()); - WarehouseInventoryRecordDto.setGoodsID(WarehouseInventoryRecordDto.getGoodsID()); - WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid()); - WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo()); - WarehouseInventoryRecordDto.setBillType("0"); - WarehouseInventoryRecordDto.setBatchNumber(WarehouseInventoryRecordDto.getBatchNumber()); - WarehouseInventoryRecordDto.setGoodSpuSid(WarehouseInventoryRecordDto.getGoodSpuSid()); - WarehouseInventoryRecordDto.setGoodsSpuName(WarehouseInventoryRecordDto.getGoodsSpuName()); - WarehouseInventoryRecordDto.setGoodsSkuSid(WarehouseInventoryRecordDto.getGoodsSkuSid()); - WarehouseInventoryRecordDto.setGoodsSkuCode(WarehouseInventoryRecordDto.getGoodsSkuCode()); - WarehouseInventoryRecordDto.setUnit(WarehouseInventoryRecordDto.getUnit()); -// WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(WarehouseInventoryRecordDto.getCount().toString()) ? new BigDecimal(WarehouseInventoryRecordDto.getCount().toString()) : BigDecimal.ZERO); - WarehouseInventoryRecordDto.setWarehouseSid(WarehouseInventoryRecordDto.getWarehouseSid()); - WarehouseInventoryRecordDto.setWarehouseName(WarehouseInventoryRecordDto.getWarehouseName()); - WarehouseInventoryRecordDto.setWarehouseRackSid(WarehouseInventoryRecordDto.getWarehouseRackSid()); - WarehouseInventoryRecordDto.setWarehouseRackCode(WarehouseInventoryRecordDto.getWarehouseRackCode()); - warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto); - } + List warehouseOutLocations=warehouseOutLocationService.list(new QueryWrapper().eq("sourceBillSid",sid)); + for (WarehouseOutLocation warehouseOutLocation : warehouseOutLocations) { + WarehouseInventoryRecordDto WarehouseInventoryRecordDto = new WarehouseInventoryRecordDto(); + WarehouseInventoryRecordDto.setInventorySid(warehouseOutLocation.getInventorySid()); + WarehouseInventoryRecordDto.setGoodsID(WarehouseInventoryRecordDto.getGoodsID()); + WarehouseInventoryRecordDto.setSourceBillSid(WarehouseOutBill.getSid()); + WarehouseInventoryRecordDto.setBillNo(WarehouseOutBill.getBillNo()); + WarehouseInventoryRecordDto.setBillType("0"); + WarehouseInventoryRecordDto.setBatchNumber(WarehouseInventoryRecordDto.getBatchNumber()); + WarehouseInventoryRecordDto.setGoodSpuSid(WarehouseInventoryRecordDto.getGoodSpuSid()); + WarehouseInventoryRecordDto.setGoodsSpuName(WarehouseInventoryRecordDto.getGoodsSpuName()); + WarehouseInventoryRecordDto.setGoodsSkuSid(WarehouseInventoryRecordDto.getGoodsSkuSid()); + WarehouseInventoryRecordDto.setGoodsSkuCode(WarehouseInventoryRecordDto.getGoodsSkuCode()); + WarehouseInventoryRecordDto.setUnit(WarehouseInventoryRecordDto.getUnit()); + WarehouseInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(WarehouseInventoryRecordDto.getCount().toString()) ? new BigDecimal(WarehouseInventoryRecordDto.getCount().toString()).toString() : BigDecimal.ZERO.toString()); + WarehouseInventoryRecordDto.setWarehouseSid(WarehouseInventoryRecordDto.getWarehouseSid()); + WarehouseInventoryRecordDto.setWarehouseName(WarehouseInventoryRecordDto.getWarehouseName()); + WarehouseInventoryRecordDto.setWarehouseRackSid(WarehouseInventoryRecordDto.getWarehouseRackSid()); + WarehouseInventoryRecordDto.setWarehouseRackCode(WarehouseInventoryRecordDto.getWarehouseRackCode()); + warehouseInventoryRecordService.saveOrUpdateDto(WarehouseInventoryRecordDto); } } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java index 8c3c26c..1c22a54 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutBillVo.java @@ -3,6 +3,8 @@ package com.yxt.warehouse.biz.warehouseoutbill; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * @description: * @author: dimengzhe @@ -12,19 +14,96 @@ import lombok.Data; public class WarehouseOutBillVo { private String sid; - + @ApiModelProperty("0 待分配 1零拣打单 2待出库 3已出库") + private String billState; @ApiModelProperty("单据编号") private String billNo; - @ApiModelProperty("单据日期") - private String createTime; - @ApiModelProperty("制单人") - private String createByName; @ApiModelProperty("来源单号") private String sourceBillNo; - @ApiModelProperty("业务类型value((销售出库、采购退货出库等))") - private String busTypeValue; - @ApiModelProperty("单据状态:已完成/已发货") - private String billState; + @ApiModelProperty("外部状态") + private String externalState; + @ApiModelProperty("买家留言") + private String buyerMessage; + @ApiModelProperty("库存状态") + private String inventoryStatus; + @ApiModelProperty("货主") + private String shipper; + @ApiModelProperty("承运商") + private String carrierKey; + private String carrierValue; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("配送方式") + private String deliveryMethod; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("收货人") + private String consignee; + @ApiModelProperty("固话") + private String fixedLine; + @ApiModelProperty("邮编") + private String postalCode; + @ApiModelProperty("省") + private String province; + @ApiModelProperty("市") + private String city; + @ApiModelProperty("区") + private String county; + @ApiModelProperty("街道") + private String street; + @ApiModelProperty("详细地址") + private String address; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("实付") + private double actualPayment; + @ApiModelProperty("优惠") + private double discount; + @ApiModelProperty("运费") + private double freight; + @ApiModelProperty("重量") + private double weight; + @ApiModelProperty("估重") + private double weightEstimation; + @ApiModelProperty("商品数量") + private double quantity; + @ApiModelProperty("下单时间") + private Date orderTime; + @ApiModelProperty("订单号") + private String orderNumber; + @ApiModelProperty("外部订单号") + private String externalOrderNumber; + @ApiModelProperty("线上订单号") + private String onlineOrderNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("付款时间") + private Date paymentTime; + @ApiModelProperty("接单时间") + private Date orderAcceptanceTime; + @ApiModelProperty("拣选区域") + private String pickingArea; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("品牌") + private String brand; + @ApiModelProperty("波次") + private String waveTimes; + @ApiModelProperty("超时时间") + private Date timeoutPeriod; + @ApiModelProperty("到货时间") + private Date deliveryTime; + @ApiModelProperty("体积") + private double volume; + @ApiModelProperty("标记") + private String sign; + @ApiModelProperty("最晚发货时间") + private Date latestDeliveryTime; + @ApiModelProperty("创建组织sid") + private String createOrgSid; + @ApiModelProperty("使用组织sid") + private String useOrgSid; + private String remarks; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutStateQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutStateQuery.java new file mode 100644 index 0000000..c339ca3 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbill/WarehouseOutStateQuery.java @@ -0,0 +1,15 @@ +package com.yxt.warehouse.biz.warehouseoutbill; + +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/8/15 16:19 + */ +@Data +public class WarehouseOutStateQuery { + private String billState;//0 待分配 1 零拣 2待出库 3已出库 + private String sid; + private String userSid; + private String userName; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetail.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetail.java index 85b0ff1..b11cc8f 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetail.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetail.java @@ -14,10 +14,11 @@ import java.util.Date; **/ @Data public class WarehouseOutBillDetail extends BaseEntity { + private String sid; @ApiModelProperty("单据sid") - private String billSid; - @ApiModelProperty("商品基础信息Sid") - private String goodSpuSid; + private String sourceBillSid; + @ApiModelProperty("图片") + private String pic; @ApiModelProperty("商品名称") private String goodsSpuName; @ApiModelProperty("商品Skusid") @@ -28,22 +29,31 @@ public class WarehouseOutBillDetail extends BaseEntity { private String goodsSkuCode; @ApiModelProperty("规格型号") private String goodsSkuOwnSpec; + @ApiModelProperty("条码") + private String barCode; @ApiModelProperty("计量单位") private String unit; + @ApiModelProperty("单价") + private BigDecimal price; @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; - + @ApiModelProperty("应收价格") + private BigDecimal receivable; + @ApiModelProperty("实际价格") + private BigDecimal actualPrice; + @ApiModelProperty("销售金额") + private BigDecimal salesAmount; + @ApiModelProperty("序列号") + private String serialNumber; + @ApiModelProperty("库位") + private String rackState;//0:待分配 1部分分配 2已分配 + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("生产日期") + private Date dateOfManufacture; + @ApiModelProperty("过期日期") + private Date expirationDate; + @ApiModelProperty("批次扩展属性") + private String batchExpansion; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java index 7769240..e56f3ec 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailDto.java @@ -3,6 +3,9 @@ package com.yxt.warehouse.biz.warehouseoutbilldetail; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + /** * @description: * @author: dimengzhe @@ -11,11 +14,10 @@ import lombok.Data; @Data public class WarehouseOutBillDetailDto { private String sid; - @ApiModelProperty("库存商品sid") - private String inventorySid; - - @ApiModelProperty("商品基础信息Sid") - private String goodSpuSid; + @ApiModelProperty("单据sid") + private String sourceBillSid; + @ApiModelProperty("图片") + private String pic; @ApiModelProperty("商品名称") private String goodsSpuName; @ApiModelProperty("商品Skusid") @@ -26,24 +28,32 @@ public class WarehouseOutBillDetailDto { private String goodsSkuCode; @ApiModelProperty("规格型号") private String goodsSkuOwnSpec; + @ApiModelProperty("条码") + private String barCode; @ApiModelProperty("计量单位") private String unit; - - - @ApiModelProperty("出库数量") - private String outCount; - @ApiModelProperty("仓库sid") - private String warehouseSid; - //仓库名称 - private String warehouseName; - //库位sid - private String warehouseRackSid; - //库位编码 - private String warehouseRackCode; - //销售单价 - private String money; - //金额 - private String moneyAll; + @ApiModelProperty("单价") + private BigDecimal price; + @ApiModelProperty("订单数量") + private BigDecimal orderCount; + @ApiModelProperty("应收价格") + private BigDecimal receivable; + @ApiModelProperty("实际价格") + private BigDecimal actualPrice; + @ApiModelProperty("销售金额") + private BigDecimal salesAmount; + @ApiModelProperty("序列号") + private String serialNumber; + @ApiModelProperty("库位") + private String rackState; + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("生产日期") + private Date dateOfManufacture; + @ApiModelProperty("过期日期") + private Date expirationDate; + @ApiModelProperty("批次扩展属性") + private String batchExpansion; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java index 79c75fd..a0f6dae 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.java @@ -24,5 +24,5 @@ public interface WarehouseOutBillDetailMapper extends BaseMapper selectDetailsList(String sid); - + List selectDetailsByBillSid(String sid); } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml index 48f092d..9494b01 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailMapper.xml @@ -17,14 +17,13 @@ where a.sid =#{sid} + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java index 193bc00..409ebeb 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailService.java @@ -106,11 +106,14 @@ public class WarehouseOutBillDetailService extends MybatisBaseService selectDetailsList(String sid) { return baseMapper.selectDetailsList(sid); } + public List selectDetailsByBillSid(String sid) { + return baseMapper.selectDetailsByBillSid(sid); + } } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailVo.java index 592ac1d..7ea1ff4 100644 --- a/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailVo.java +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutbilldetail/WarehouseOutBillDetailVo.java @@ -13,10 +13,11 @@ import java.util.Date; **/ @Data public class WarehouseOutBillDetailVo { + private String sid; @ApiModelProperty("单据sid") - private String billSid; - @ApiModelProperty("商品基础信息Sid") - private String goodSpuSid; + private String sourceBillSid; + @ApiModelProperty("图片") + private String pic; @ApiModelProperty("商品名称") private String goodsSpuName; @ApiModelProperty("商品Skusid") @@ -27,21 +28,32 @@ public class WarehouseOutBillDetailVo { private String goodsSkuCode; @ApiModelProperty("规格型号") private String goodsSkuOwnSpec; + @ApiModelProperty("条码") + private String barCode; @ApiModelProperty("计量单位") private String unit; + @ApiModelProperty("单价") + private BigDecimal price; @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; + @ApiModelProperty("应收价格") + private BigDecimal receivable; + @ApiModelProperty("实际价格") + private BigDecimal actualPrice; + @ApiModelProperty("销售金额") + private BigDecimal salesAmount; + @ApiModelProperty("序列号") + private String serialNumber; + @ApiModelProperty("库位") + private String rackState; + private String rackStateValue;//value + @ApiModelProperty("批次号") + private String batchNumber; + @ApiModelProperty("生产日期") + private Date dateOfManufacture; + @ApiModelProperty("过期日期") + private Date expirationDate; + @ApiModelProperty("批次扩展属性") + private String batchExpansion; } diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java new file mode 100644 index 0000000..1c14d56 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocation.java @@ -0,0 +1,40 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +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 WarehouseOutLocation extends BaseEntity { + + private String sid; + @ApiModelProperty("来源单") + private String sourceBillSid; + @ApiModelProperty("sku") + private String goodsSkuSid; + + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品title") + private String goodsSkuTitle; + @ApiModelProperty("商品规格编码") + private String goodsSkuCode; + @ApiModelProperty("数量") + private BigDecimal count; + @ApiModelProperty("库位sid") + private String rackSid; + @ApiModelProperty("库位编码") + private String rackCode; + private String inventorySid; + private String spec; + + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationDto.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationDto.java new file mode 100644 index 0000000..8c35f1f --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationDto.java @@ -0,0 +1,41 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Data +public class WarehouseOutLocationDto { + private String sid; + @ApiModelProperty("来源单") + private String sourceBillSid; + @ApiModelProperty("sku") + private String goodsSkuSid; + + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品title") + private String goodsSpuTitle; + @ApiModelProperty("商品规格编码") + private String goodsSkuCode; + @ApiModelProperty("数量") + private BigDecimal count; + @ApiModelProperty("库位sid") + private String rackSid; + @ApiModelProperty("库位编码") + private String rackCode; + private String inventorySid; + private BigDecimal initialCount; + private String locationSid; + private String spec; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.java new file mode 100644 index 0000000..ece76f0 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.java @@ -0,0 +1,24 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +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; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Mapper +public interface WarehouseOutLocationMapper extends BaseMapper { + + List details(@Param("sid") String sid); + WarehouseOutLocationVo totalCountBySkuSid(@Param("sid") String sid,@Param("skuSid") String skuSid); + +} + diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.xml b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.xml new file mode 100644 index 0000000..6268e03 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationMapper.xml @@ -0,0 +1,26 @@ + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationQuery.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationQuery.java new file mode 100644 index 0000000..9839d0b --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationQuery.java @@ -0,0 +1,49 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +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 WarehouseOutLocationQuery implements Query { + + @ApiModelProperty("单据编号") + private String billNo; + private String billState; + @ApiModelProperty("外部单号") + private String externalOrderNumber; + @ApiModelProperty("线上单号") + private String onlineOrderNumber; + @ApiModelProperty("买家") + private String buyer; + @ApiModelProperty("运单号") + private String waybillNumber; + @ApiModelProperty("平台") + private String platform; + @ApiModelProperty("承运商") + private String carrier; + @ApiModelProperty("手机") + private String mobile; + @ApiModelProperty("出库类型") + private String outboundType; + @ApiModelProperty("地址") + private String address; + @ApiModelProperty("下单日期开始时间") + private String orderTimeStart; + @ApiModelProperty("下单日期结束时间") + private String orderTimeEnd; + + private String orgLevelKey;//权限等级 + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("用户sid") + private String userSid; + private int index; +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java new file mode 100644 index 0000000..2910969 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationService.java @@ -0,0 +1,99 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +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.warehouse.biz.warehouseinventory.WarehouseInventory; +import com.yxt.warehouse.biz.warehouseinventory.WarehouseInventoryService; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordDto; +import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetail; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailDto; +import com.yxt.warehouse.biz.warehouseoutbilldetail.WarehouseOutBillDetailService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.math.BigDecimal; +import java.util.Collections; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/24 + **/ +@Service +public class WarehouseOutLocationService extends MybatisBaseService { + @Autowired + WarehouseInventoryService warehouseInventoryService; + @Autowired + WarehouseOutBillDetailService warehouseOutBillDetailService; + + public ResultBean save(List dtos) { + ResultBean rb = ResultBean.fireFail(); + if (dtos.size() == 0) { + return rb.setMsg("参数不正确"); + } + //分配 + WarehouseOutLocationVo warehouseOutLocationVo = baseMapper.totalCountBySkuSid(dtos.get(0).getSourceBillSid(), dtos.get(0).getGoodsSkuSid()); + //总得 + WarehouseOutBillDetail warehouseOutBillDetail = warehouseOutBillDetailService.getOne(new QueryWrapper() + .eq("sourceBillSid", dtos.get(0).getSourceBillSid()) + .eq("goodsSkuSid", dtos.get(0).getGoodsSkuSid())); + BigDecimal t = new BigDecimal(0); + for (WarehouseOutLocationDto dto : dtos) { + WarehouseInventory warehouseInventory = warehouseInventoryService.getOne(new QueryWrapper().eq("sid", dto.getInventorySid())); + warehouseInventory.setAllocateCount(warehouseInventory.getAllocateCount().add(dto.getCount().multiply(dto.getInitialCount()))); + warehouseInventoryService.saveOrUpdate(warehouseInventory); + t.add(dto.getCount()); + } + int result = t.add(warehouseOutLocationVo.getTotalCount()).compareTo(warehouseOutBillDetail.getOrderCount()); + if (result > 0) { + return rb.setMsg("分配数量超过订单数量"); + } + for (WarehouseOutLocationDto dto : dtos) { + int i = dto.getInitialCount().compareTo(new BigDecimal(0)); + if (i == 0) { + WarehouseOutLocation warehouseOutLocation = new WarehouseOutLocation(); + BeanUtil.copyProperties(dto, warehouseOutLocation, "sid"); + warehouseOutLocation.setGoodsSkuCode(warehouseOutBillDetail.getGoodsSkuCode()); + baseMapper.insert(warehouseOutLocation); + } else { + WarehouseOutLocation warehouseOutLocation = new WarehouseOutLocation(); + BeanUtil.copyProperties(dto, warehouseOutLocation); + warehouseOutLocation.setSid(dto.getLocationSid()); + warehouseOutLocation.setGoodsSkuCode(warehouseOutBillDetail.getGoodsSkuCode()); + baseMapper.updateById(warehouseOutLocation); + } + } + if (warehouseOutBillDetail.getOrderCount() == warehouseOutLocationVo.getTotalCount()) { + warehouseOutBillDetail.setRackState("2"); + } else if (warehouseOutBillDetail.getOrderCount() != warehouseOutLocationVo.getTotalCount()) { + warehouseOutBillDetail.setRackState("1"); + } + return rb.success().setData(""); + } + + + public ResultBean> details(String sid) { + ResultBean> rb = ResultBean.fireFail(); + List warehouseOutLocationVo = baseMapper.details(sid); + if (warehouseOutLocationVo == null) { + return rb.setMsg("该单据不存在"); + } + return rb.success().setData(warehouseOutLocationVo); + } + + public ResultBean totalCountBySkuSid(String sid, String skuSid) { + ResultBean rb = ResultBean.fireFail(); + WarehouseOutLocationVo warehouseOutLocationVo = baseMapper.totalCountBySkuSid(sid, skuSid); + return rb.success().setData(warehouseOutLocationVo); + } + +} diff --git a/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationVo.java b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationVo.java new file mode 100644 index 0000000..5519059 --- /dev/null +++ b/src/main/java/com/yxt/warehouse/biz/warehouseoutlocation/WarehouseOutLocationVo.java @@ -0,0 +1,39 @@ +package com.yxt.warehouse.biz.warehouseoutlocation; + +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 WarehouseOutLocationVo { + + private String sid; + @ApiModelProperty("来源单") + private String sourceBillSid; + @ApiModelProperty("sku") + private String goodsSkuSid; + + @ApiModelProperty("商品名称") + private String goodsSpuName; + @ApiModelProperty("商品title") + private String goodsSpuTitle; + @ApiModelProperty("商品规格编码") + private String goodsSkuCode; + @ApiModelProperty("数量") + private BigDecimal count; + @ApiModelProperty("库位sid") + private String rackSid; + @ApiModelProperty("库位编码") + private String rackCode; + private String inventorySid; + private BigDecimal totalCount; + private String spec; + +}