Browse Source

storage入库相关接口

master
dimengzhe 1 year ago
parent
commit
480d5bb4cf
  1. 47
      src/main/java/com/yxt/storage/apiadmin/WmsAnsBillRest.java
  2. 56
      src/main/java/com/yxt/storage/apiadmin/WmsDistributeBillRest.java
  3. 39
      src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java
  4. 51
      src/main/java/com/yxt/storage/apiadmin/WmsInventoryRest.java
  5. 44
      src/main/java/com/yxt/storage/apiadmin/WmsOutBillRest.java
  6. 64
      src/main/java/com/yxt/storage/apiadmin/WmsReceiptBillRest.java
  7. 69
      src/main/java/com/yxt/storage/apiadmin/WmsShelfBillRest.java
  8. 51
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBill.java
  9. 55
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillDto.java
  10. 24
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.java
  11. 48
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.xml
  12. 37
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillQuery.java
  13. 125
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillService.java
  14. 44
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillVo.java
  15. 44
      src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsDetailsVo.java
  16. 47
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetail.java
  17. 38
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailDto.java
  18. 18
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.java
  19. 25
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.xml
  20. 29
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailService.java
  21. 30
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailVo.java
  22. 56
      src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsListDetailsVo.java
  23. 37
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBill.java
  24. 37
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillDto.java
  25. 42
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillInitVo.java
  26. 13
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.java
  27. 4
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.xml
  28. 37
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillQuery.java
  29. 35
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillService.java
  30. 33
      src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillVo.java
  31. 50
      src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetail.java
  32. 42
      src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailDto.java
  33. 42
      src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailVo.java
  34. 58
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventory.java
  35. 21
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.java
  36. 25
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.xml
  37. 32
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryQuery.java
  38. 57
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventorySaveDto.java
  39. 73
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryService.java
  40. 42
      src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryVo.java
  41. 63
      src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordDto.java
  42. 37
      src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java
  43. 66
      src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsExcelVo.java
  44. 39
      src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsQuery.java
  45. 44
      src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsVo.java
  46. 45
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBill.java
  47. 39
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDetailsVo.java
  48. 41
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDto.java
  49. 13
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.java
  50. 4
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.xml
  51. 44
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillQuery.java
  52. 27
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillService.java
  53. 48
      src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillVo.java
  54. 49
      src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetail.java
  55. 32
      src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetailDto.java
  56. 45
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBill.java
  57. 53
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillDto2.java
  58. 55
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillInitVo.java
  59. 20
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.java
  60. 42
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.xml
  61. 38
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillPageVo.java
  62. 33
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillQuery.java
  63. 192
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillService.java
  64. 51
      src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillVo.java
  65. 56
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetail.java
  66. 69
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java
  67. 21
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java
  68. 42
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml
  69. 53
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailService.java
  70. 61
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java
  71. 30
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatch.java
  72. 45
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchDto2.java
  73. 21
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.java
  74. 27
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.xml
  75. 37
      src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchService.java
  76. 37
      src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfDetailsVo.java
  77. 37
      src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfInitVo.java
  78. 28
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBill.java
  79. 36
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillDto.java
  80. 22
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.java
  81. 39
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.xml
  82. 23
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillQuery.java
  83. 261
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillService.java
  84. 27
      src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillVo.java
  85. 52
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfDetailsListVo.java
  86. 49
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfInitListVo.java
  87. 32
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetail.java
  88. 53
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailDto.java
  89. 22
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.java
  90. 46
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml
  91. 37
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailService.java
  92. 44
      src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailVos.java
  93. 48
      src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuDetailsVo.java
  94. 24
      src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeign.java
  95. 17
      src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeignFallback.java
  96. 15
      src/main/java/com/yxt/storage/utils/Rule.java
  97. 30
      src/main/resources/application-dev.yml
  98. 43
      src/main/resources/application.yml
  99. 54
      src/main/resources/logback-spring.xml

47
src/main/java/com/yxt/storage/apiadmin/WmsAnsBillRest.java

@ -0,0 +1,47 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsansbill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Api(tags = "预期到货通知单")
@RestController
@RequestMapping("/apiadmin/WmsAnsBill")
public class WmsAnsBillRest {
@Autowired
private WmsAnsBillService wmsAnsBillService;
@PostMapping("saveOrUpdate")
@ApiOperation("新增修改保存")
ResultBean<String> saveOrUpdate(@RequestBody WmsAnsBillDto dto) {
return wmsAnsBillService.saveOrUpdateBill(dto);
}
@PostMapping("listPage")
@ApiOperation("分页列表")
ResultBean<PagerVo<WmsAnsBillVo>> listPage(@RequestBody PagerQuery<WmsAnsBillQuery> pagerQuery) {
ResultBean<PagerVo<WmsAnsBillVo>> rb = ResultBean.fireFail();
PagerVo<WmsAnsBillVo> pv = wmsAnsBillService.listPages(pagerQuery);
return rb.success().setData(pv);
}
@GetMapping("details")
@ApiOperation("详情")
ResultBean<WmsAnsDetailsVo> details(@RequestParam("sid") String sid) {
return wmsAnsBillService.details(sid);
}
}

56
src/main/java/com/yxt/storage/apiadmin/WmsDistributeBillRest.java

@ -0,0 +1,56 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsdistributebill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Api(tags = "配货单据")
@RestController
@RequestMapping("/apiadmin/WmsDistributeBill")
public class WmsDistributeBillRest {
@Autowired
private WmsDistributeBillService wmsDistributeBillService;
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<WmsDistributeBillVo>> listPage(@RequestBody PagerQuery<WmsDistributeBillQuery> pagerQuery) {
ResultBean<PagerVo<WmsDistributeBillVo>> rb = ResultBean.fireFail();
PagerVo<WmsDistributeBillVo> pv = wmsDistributeBillService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("从出库新增配货单")
@GetMapping("/getInit")
ResultBean<WmsDistributeBillInitVo> getInit(@RequestParam("sid") String sid) {
return wmsDistributeBillService.getInit(sid);
}
@ApiOperation("详情/编辑初始化")
@GetMapping("/details")
ResultBean<WmsDistributeBillInitVo> details(@RequestParam("sid") String sid) {
return wmsDistributeBillService.details(sid);
}
@ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdateBill")
ResultBean<String> saveOrUpdateBill(@RequestBody WmsDistributeBillDto dto) {
return wmsDistributeBillService.saveOrUpdateBill(dto);
}
@ApiOperation("确认")
@PostMapping("/confirm")
ResultBean<String> confirm(@RequestBody WmsDistributeBillDto dto) {
return wmsDistributeBillService.confirm(dto);
}
}

39
src/main/java/com/yxt/storage/apiadmin/WmsInventoryRecordRest.java

@ -1,28 +1,61 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordListVo;
import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordService;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsinventoryrecord.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
@Api(tags = "库存出入库记录")
@RestController
@RequestMapping("/apiadmin/wmsinventoryrecord")
@RequestMapping("/apiadmin/inventory/wmsinventoryrecord")
public class WmsInventoryRecordRest {
@Autowired
private WmsInventoryRecordService wmsInventoryRecordService;
@Autowired
HttpServletResponse response;
@ApiOperation("根据库存sid获取出入库记录")
@GetMapping("/getWmsInventoryRecordList")
ResultBean<List<WmsInventoryRecordListVo>> getWmsInventoryRecordList(@RequestParam("sid") String sid) {
return wmsInventoryRecordService.getWmsInventoryRecordList(sid);
}
@ApiOperation("出入库查询")
@PostMapping("/pageList")
ResultBean<PagerVo<WmsInventoryRecordsVo>> pageList(@RequestBody PagerQuery<WmsInventoryRecordsQuery> pagerQuery) {
ResultBean<PagerVo<WmsInventoryRecordsVo>> rb = ResultBean.fireFail();
PagerVo<WmsInventoryRecordsVo> pv = wmsInventoryRecordService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@PostMapping("/exportExcel")
@ApiOperation(value = "导出")
public void exportExcel(@RequestBody WmsInventoryRecordsQuery query) {
//得到所有要导出的数据
List<WmsInventoryRecordsExcelVo> exportVoList = wmsInventoryRecordService.listExcel(query);
//定义导出的excel名字
String excelName = "出入库查询";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, WmsInventoryRecordsExcelVo.class, response);
}
}

51
src/main/java/com/yxt/storage/apiadmin/WmsInventoryRest.java

@ -0,0 +1,51 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsinventory.WmsInventory;
import com.yxt.storage.biz.wmsinventory.WmsInventoryQuery;
import com.yxt.storage.biz.wmsinventory.WmsInventoryService;
import com.yxt.storage.biz.wmsinventory.WmsInventoryVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
/**
* @author wangpengfei
* @date 2024/2/28 10:51
*/
@Api(tags = "库存信息")
@RestController
@RequestMapping("/apiadmin/inventory/wmsinventory")
public class WmsInventoryRest {
@Autowired
WmsInventoryService wmsInventoryService;
@Autowired
HttpServletResponse response;
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WmsInventoryVo>> listPage(@RequestBody PagerQuery<WmsInventoryQuery> pq) {
ResultBean<PagerVo<WmsInventoryVo>> rb = ResultBean.fireFail();
PagerVo<WmsInventoryVo> pv = wmsInventoryService.listPage(pq);
return rb.success().setData(pv);
}
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids) {
return wmsInventoryService.delAllBySids(sids);
}
}

44
src/main/java/com/yxt/storage/apiadmin/WmsOutBillRest.java

@ -0,0 +1,44 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsoutbill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Api(tags = "出库单据")
@RestController
@RequestMapping("/apiadmin/WmsOutBill")
public class WmsOutBillRest {
@Autowired
private WmsOutBillService wmsOutBillService;
@ApiOperation("分页列表")
@PostMapping("/listPage")
ResultBean<PagerVo<WmsOutBillVo>> pageList(@RequestBody PagerQuery<WmsOutBillQuery> pagerQuery) {
ResultBean<PagerVo<WmsOutBillVo>> rb = ResultBean.fireFail();
PagerVo<WmsOutBillVo> pv = wmsOutBillService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@ApiOperation("出库保存修改")
@PostMapping("/saveOrUpdateOutBill")
ResultBean saveOrUpdateOutBill(@RequestBody WmsOutBillDto dto) {
return wmsOutBillService.saveOrUpdateOutBill(dto);
}
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<WmsOutBillDetailsVo> details(@RequestParam("sid") String sid) {
return wmsOutBillService.details(sid);
}
}

64
src/main/java/com/yxt/storage/apiadmin/WmsReceiptBillRest.java

@ -0,0 +1,64 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsreceiptbill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Api(tags = "收货单据")
@RestController
@RequestMapping("/apiadmin/inventory/WmsReceiptBill")
public class WmsReceiptBillRest {
@Autowired
private WmsReceiptBillService wmsReceiptBillService;
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WmsReceiptBillPageVo>> listPage(@RequestBody PagerQuery<WmsReceiptBillQuery> pq) {
ResultBean<PagerVo<WmsReceiptBillPageVo>> rb = ResultBean.fireFail();
PagerVo<WmsReceiptBillPageVo> pv = wmsReceiptBillService.listPage(pq);
return rb.success().setData(pv);
}
@ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdate")
ResultBean<String> saveOrUpdate(@RequestBody WmsReceiptBillDto2 dto) {
return wmsReceiptBillService.saveOrUpdateBill2(dto);
}
@ApiOperation("通知单收货单初始化")
@GetMapping("/getInitDetails")
ResultBean<WmsReceiptBillVo> getInitDetails(@RequestParam("sourceSid") String sourceSid) {
return wmsReceiptBillService.getInitDetails(sourceSid);
}
@ApiOperation("收货单据编辑初始化/详情")
@GetMapping("/getDetailsInit")
ResultBean<WmsReceiptBillInitVo> getDetailsInit(@RequestParam("sid") String sid) {
return wmsReceiptBillService.getDetailsInit(sid);
}
@ApiOperation("确认")
@PostMapping("/confirm")
ResultBean<String> confirm(@RequestBody WmsReceiptBillDto2 dto) {
return wmsReceiptBillService.confirm(dto);
}
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids) {
return wmsReceiptBillService.delAllBySids(sids);
}
}

69
src/main/java/com/yxt/storage/apiadmin/WmsShelfBillRest.java

@ -0,0 +1,69 @@
package com.yxt.storage.apiadmin;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsshelfbill.*;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Api(tags = "上货架")
@RestController
@RequestMapping("/apiadmin/WmsShelfBill")
public class WmsShelfBillRest {
@Autowired
private WmsShelfBillService wmsShelfBillService;
@ApiOperation("分页列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WmsShelfBillVo>> listPage(@RequestBody PagerQuery<WmsShelfBillQuery> pq) {
ResultBean<PagerVo<WmsShelfBillVo>> rb = ResultBean.fireFail();
PagerVo<WmsShelfBillVo> pv = wmsShelfBillService.listPage(pq);
return rb.success().setData(pv);
}
@ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdate")
ResultBean saveOrUpdate(@RequestBody WmsShelfBillDto dto) {
return wmsShelfBillService.saveOrUpdateShelf(dto);
}
@ApiOperation("删除/批量删除")
@DeleteMapping("/delBySids")
ResultBean delBySids(@RequestBody String[] sids) {
return wmsShelfBillService.delAllBySids(sids);
}
@ApiOperation("详情")
@GetMapping("/details")
ResultBean<ShelfDetailsVo> details(@RequestParam("sid") String sid) {
return wmsShelfBillService.details(sid);
}
/**
* 新增初始化
*
* @param sid 收货单据sid
* @return
*/
@ApiOperation("新增初始化")
@GetMapping("/getInit")
ResultBean<ShelfInitVo> getInit(@RequestParam("sid") String sid, @RequestParam("orgPath") String orgPath, @RequestParam("userSid") String userSid) {
return wmsShelfBillService.getInit(sid, orgPath, userSid);
}
@ApiOperation("确认")
@PostMapping("/confirm")
ResultBean<String> confirm(@RequestBody WmsShelfBillDto dto) {
return wmsShelfBillService.confirm(dto);
}
}

51
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBill.java

@ -0,0 +1,51 @@
package com.yxt.storage.biz.wmsansbill;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description: 预期到货通知单
* @author: dimengzhe
* @date: 2024/4/9
**/
@Data
public class WmsAnsBill extends BaseEntity {
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)")
private String busTypeValue;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("货物状态(在途、部分收货、已收货、已取消)")
private Integer billState;
@ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)")
private String reviewStatus;
@ApiModelProperty("拒绝原因")
private String refuseReason;
@ApiModelProperty("联系人")
private String contact;
@ApiModelProperty("联系人手机")
private String mobile;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("货主sid")
private String goodsOwnerSid;
@ApiModelProperty("货主")
private String goodsOwner;
@ApiModelProperty("预计到货日期")
private Date deliveryDate;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
}

55
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillDto.java

@ -0,0 +1,55 @@
package com.yxt.storage.biz.wmsansbill;
import com.yxt.storage.biz.wmsansbilldetail.WmsAnsBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Data
public class WmsAnsBillDto {
private String sid;
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
@ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)")
private String busTypeValue;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("货物状态(在途、部分收货、已收货、已取消)")
private Integer billState;
@ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)")
private String reviewStatus;
@ApiModelProperty("拒绝原因")
private String refuseReason;
@ApiModelProperty("联系人")
private String contact;
@ApiModelProperty("联系人手机")
private String mobile;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("货主sid")
private String goodsOwnerSid;
@ApiModelProperty("货主")
private String goodsOwner;
@ApiModelProperty("预计到货日期")
private Date deliveryDate;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
}

24
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.java

@ -0,0 +1,24 @@
package com.yxt.storage.biz.wmsansbill;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetail;
import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Mapper
public interface WmsAnsBillMapper extends BaseMapper<WmsAnsBill> {
IPage<WmsAnsBillDetailVo> listPage(IPage<WmsAnsBillDetail> page, @Param(Constants.WRAPPER) QueryWrapper<WmsAnsBillDetail> qw);
IPage<WmsAnsBillVo> listPages(IPage<WmsAnsBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsAnsBill> qw);
WmsAnsDetailsVo details(String sid);
}

48
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillMapper.xml

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillMapper">
<select id="listPage" resultType="com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailVo">
select wd.goodsSkuSid, wd.goodsSpuName, wd.goodsSkuCode, wd.goodsSkuTitle, wd.goodSpuSid
from wms_ans_bill_detail wd
<where>
${ew.sqlSegment}
</where>
</select>
<select id="listPages" resultType="com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo">
select wab.sid,
wab.billNo,
DATE_FORMAT(wab.createTime, '%Y-%m-%d') as createTime,
wab.createByName,
wab.sourceBillNo,
wab.busTypeValue,
wab.supplierName,
wab.contact,
wab.mobile,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
wab.billState,
wab.reviewStatus,
wab.refuseReason
from wms_ans_bill wab
<where>
${ew.sqlSegment}
</where>
order by wab.id desc
</select>
<select id="details" resultType="com.yxt.wms.biz.inventory.wmsansbill.WmsAnsDetailsVo">
select wab.billNo,
wab.createByName,
DATE_FORMAT(wab.createTime, '%Y-%m-%d') as createTime,
wab.sourceBillNo,
wab.busTypeKey,
wab.busTypeValue,
wab.supplierSid,
wab.supplierName,
DATE_FORMAT(wab.deliveryDate, '%Y-%m-%d') as deliveryDate,
wab.billState,
wab.reviewStatus
from wms_ans_bill wab
where sid = #{sid}
</select>
</mapper>

37
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillQuery.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsansbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Data
public class WmsAnsBillQuery implements Query {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("开始时间")
private String createTimeStart;
@ApiModelProperty("结束时间")
private String createTimeEnd;
@ApiModelProperty("业务类型")
private String busTypeKey;
@ApiModelProperty("供应商")
private String supplierName;
@ApiModelProperty("预期到货日期开始时间")
private String deliveryDateStart;
@ApiModelProperty("预期到货日期结束时间")
private String deliveryDateEnd;
//单据状态
private String billState;
@ApiModelProperty("审核状态")
private String reviewStatus;
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
}

125
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillService.java

@ -0,0 +1,125 @@
package com.yxt.storage.biz.wmsansbill;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsansbilldetail.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Service
public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsAnsBill> {
@Autowired
private WmsAnsBillDetailService wmsAnsBillDetailService;
public ResultBean<String> saveOrUpdateBill(WmsAnsBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
WmsAnsBill wmsAnsBill = new WmsAnsBill();
BeanUtil.copyProperties(dto, wmsAnsBill, "sid");
sid = wmsAnsBill.getSid();
List<WmsAnsBillDetailDto> wmsAnsBillDetailList = dto.getWmsAnsBillDetailList();
wmsAnsBillDetailList.removeAll(Collections.singleton(null));
if (!wmsAnsBillDetailList.isEmpty()) {
wmsAnsBillDetailService.saveOrUpdateDetailsList(sid, wmsAnsBillDetailList);
} else {
return rb.setMsg("单据明细不能为空");
}
baseMapper.insert(wmsAnsBill);
} else {
WmsAnsBill wmsAnsBill = fetchBySid(sid);
if (wmsAnsBill == null) {
return rb.setMsg("该单据不存在");
}
BeanUtil.copyProperties(dto, wmsAnsBill, "sid");
List<WmsAnsBillDetailDto> wmsAnsBillDetailList = dto.getWmsAnsBillDetailList();
wmsAnsBillDetailList.removeAll(Collections.singleton(null));
if (!wmsAnsBillDetailList.isEmpty()) {
wmsAnsBillDetailService.saveOrUpdateDetailsList(sid, wmsAnsBillDetailList);
} else {
return rb.setMsg("单据明细不能为空");
}
baseMapper.updateById(wmsAnsBill);
}
return rb.success().setData(sid);
}
public PagerVo<WmsAnsBillVo> listPages(PagerQuery<WmsAnsBillQuery> pagerQuery) {
WmsAnsBillQuery query = pagerQuery.getParams();
QueryWrapper<WmsAnsBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
if (query != null) {
//单据编号
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wab.billNo", query.getBillNo());
}
//单据日期开始时间-单据日期结束时间
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wab.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wab.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//业务类型
if (StringUtils.isNotBlank(query.getBusTypeKey())) {
qw.eq("wab.busTypeKey", query.getBusTypeKey());
}
//供应商
if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("wab.supplierName", query.getSupplierName());
}
//预期到货日期开始时间-预期到货日期结束时间
qw.apply(StringUtils.isNotBlank(query.getDeliveryDateStart()), "date_format (wab.deliveryDate,'%Y-%m-%d') >= date_format('" + query.getDeliveryDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getDeliveryDateEnd()), "date_format (wab.deliveryDate,'%Y-%m-%d') <= date_format('" + query.getDeliveryDateEnd() + "','%Y-%m-%d')"
);
//单据状态
if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wab.billState", query.getBillState());
}
//审核状态
if (StringUtils.isNotBlank(query.getReviewStatus())) {
qw.like("wab.reviewStatus", query.getReviewStatus());
}
//外部编号
if (StringUtils.isNotBlank(query.getSourceBillNo())) {
qw.like("wab.sourceBillNo", query.getSourceBillNo());
}
}
IPage<WmsAnsBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<WmsAnsBillVo> pagging = baseMapper.listPages(page, qw);
PagerVo<WmsAnsBillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<WmsAnsDetailsVo> details(String sid) {
ResultBean<WmsAnsDetailsVo> rb = ResultBean.fireFail();
WmsAnsDetailsVo wmsAnsDetailsVo = baseMapper.details(sid);
if (wmsAnsDetailsVo != null) {
List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
wmsAnsDetailsVo.setList(list);
}
} else {
return rb.setMsg("该单据不存在");
}
return rb.success().setData(wmsAnsDetailsVo);
}
}

44
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsBillVo.java

@ -0,0 +1,44 @@
package com.yxt.storage.biz.wmsansbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Data
public class WmsAnsBillVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
@ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)")
private String busTypeValue;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("联系人")
private String contact;
@ApiModelProperty("联系人手机")
private String mobile;
@ApiModelProperty("预计到货日期")
private String deliveryDate;
//单据状态
private String billState;
@ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)")
private String reviewStatus;
@ApiModelProperty("拒绝原因")
private String refuseReason;
}

44
src/main/java/com/yxt/storage/biz/wmsansbill/WmsAnsDetailsVo.java

@ -0,0 +1,44 @@
package com.yxt.storage.biz.wmsansbill;
import com.yxt.storage.biz.wmsansbilldetail.WmsAnsListDetailsVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/12
**/
@Data
public class WmsAnsDetailsVo {
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("外部单号(业务单据编号)")
private String sourceBillNo;
@ApiModelProperty("业务类型key(采购预约、调拨预约、其他预约)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购预约、调拨预约、其他预约)")
private String busTypeValue;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("预计到货日期")
private String deliveryDate;
//单据状态
private String billState;
@ApiModelProperty("审核状态(待审核、审核通过、审核拒绝)")
private String reviewStatus;
@ApiModelProperty("拒绝原因")
private String refuseReason;
private List<WmsAnsListDetailsVo> list = new ArrayList<>();
}

47
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetail.java

@ -0,0 +1,47 @@
package com.yxt.storage.biz.wmsansbilldetail;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Data
public class WmsAnsBillDetail extends BaseEntity {
@ApiModelProperty("单据sid")
private String billSid;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
@ApiModelProperty("待入库数量-根据收货单计算")
private Integer waitInCount;
@ApiModelProperty("实际入库数量-根据收货单计算")
private Integer actualInCount;
@ApiModelProperty("税额")
private BigDecimal taxAmount;
@ApiModelProperty("含税价")
private BigDecimal taxPrice;
@ApiModelProperty("金额")
private BigDecimal amount;
}

38
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailDto.java

@ -0,0 +1,38 @@
package com.yxt.storage.biz.wmsansbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Data
public class WmsAnsBillDetailDto {
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
@ApiModelProperty("税额")
private String taxAmount;
@ApiModelProperty("含税价")
private String taxPrice;
@ApiModelProperty("金额")
private String amount;
}

18
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.java

@ -0,0 +1,18 @@
package com.yxt.storage.biz.wmsansbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Mapper
public interface WmsAnsBillDetailMapper extends BaseMapper<WmsAnsBillDetail> {
int deleteDetails(String sid);
List<WmsAnsListDetailsVo> selectByBillSid(String sid);
}

25
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailMapper.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsansbilldetail.WmsAnsBillDetailMapper">
<delete id="deleteDetails">
delete
from wms_ans_bill_detail
where billSid = #{sid}
</delete>
<select id="selectByBillSid" resultType="com.yxt.storage.biz.wmsansbilldetail.WmsAnsListDetailsVo">
select wd.goodsSkuTitle,
wd.goodsSkuCode,
wd.goodsSkuOwnSpec,
wd.unit,
wd.orderCount,
wd.waitInCount,
wd.actualInCount,
wd.cost,
wd.taxAmount,
wd.taxPrice,
wd.amount
from wms_ans_bill_detail wd
where billSid = #{sid}
</select>
</mapper>

29
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailService.java

@ -0,0 +1,29 @@
package com.yxt.storage.biz.wmsansbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/9
**/
@Service
public class WmsAnsBillDetailService extends MybatisBaseService<WmsAnsBillDetailMapper, WmsAnsBillDetail> {
public void saveOrUpdateDetailsList(String sid, List<WmsAnsBillDetailDto> wmsAnsBillDetailList) {
baseMapper.deleteDetails(sid);
wmsAnsBillDetailList.forEach(v->{
WmsAnsBillDetail wmsAnsBillDetail = new WmsAnsBillDetail();
BeanUtil.copyProperties(v,wmsAnsBillDetail,"sid");
wmsAnsBillDetail.setBillSid(sid);
baseMapper.insert(wmsAnsBillDetail);
});
}
public List<WmsAnsListDetailsVo> selectByBillSid(String sid) {
return baseMapper.selectByBillSid(sid);
}
}

30
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsBillDetailVo.java

@ -0,0 +1,30 @@
package com.yxt.storage.biz.wmsansbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/10
**/
@Data
public class WmsAnsBillDetailVo {
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("来源单号")
private String sourceBillNo;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
}

56
src/main/java/com/yxt/storage/biz/wmsansbilldetail/WmsAnsListDetailsVo.java

@ -0,0 +1,56 @@
package com.yxt.storage.biz.wmsansbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Data
public class WmsAnsListDetailsVo {
@ApiModelProperty("商品名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
//仓库
private String warehouseName;
//库位
private String warehouseRack;
//预约数量
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
//待收货数量
@ApiModelProperty("待入库数量-根据收货单计算")
private Integer waitInCount;
//已收货数量
@ApiModelProperty("实际入库数量-根据收货单计算")
private Integer actualInCount;
//入库价
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ApiModelProperty("税额")
private String taxAmount;
@ApiModelProperty("含税价")
private String taxPrice;
//采购金额
@ApiModelProperty("金额")
private String amount;
/* @ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;*/
}

37
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBill.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBill extends BaseEntity {
@ApiModelProperty("出库单sid")
private String sourceBillSid;
@ApiModelProperty("来源单号(出库单)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据状态")
private Integer billState;
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private Integer isHandUp;
@ApiModelProperty("优先级")
private Integer priority;
@ApiModelProperty("实际发货时间")
private Date actualDeliveTime;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
}

37
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillDto.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.yxt.wms.biz.inventory.wmsdistributebilldetail.WmsDistributeBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillDto {
@ApiModelProperty("出库单sid")
private String sourceBillSid;
@ApiModelProperty("来源单号(出库单)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("制单人sid")
private String createBySid;
private String createTime;
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
private List<WmsDistributeBillDetailDto> detailList = new ArrayList<>();
}

42
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillInitVo.java

@ -0,0 +1,42 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.yxt.storage.biz.wmsdistributebilldetail.WmsDistributeBillDetailVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillInitVo {
//单据编号
private String billNo;
//制单人
@ApiModelProperty("制单人姓名")
private String createByName;
//单据日期
@ApiModelProperty("单据日期")
private String createTime;
//来源单号
@ApiModelProperty("来源单号(出库单)")
private String sourceBillNo;
//单据状态
@ApiModelProperty("单据状态")
private String billState;
//备注
private String remarks;
private List<WmsDistributeBillDetailVo> detailsList = new ArrayList<>();
}

13
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.java

@ -0,0 +1,13 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Mapper
public interface WmsDistributeBillMapper extends BaseMapper<WmsDistributeBill> {
}

4
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.wms.biz.inventory.wmsdistributebill.WmsDistributeBillMapper">
</mapper>

37
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillQuery.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillQuery implements Query {
//单据编号
@ApiModelProperty("单据编号")
private String billNo;
//单据日期开始时间
private String createTimeStart;
//单据日期结束时间
private String createTimeEnd;
//业务类型
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
//单据状态
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private String isHandUp;
@ApiModelProperty("优先级")
private String priority;
}

35
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillService.java

@ -0,0 +1,35 @@
package com.yxt.storage.biz.wmsdistributebill;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Service
public class WmsDistributeBillService extends MybatisBaseService<WmsDistributeBillMapper, WmsDistributeBill> {
public PagerVo<WmsDistributeBillVo> listPage(PagerQuery<WmsDistributeBillQuery> pagerQuery) {
return null;
}
public ResultBean<WmsDistributeBillInitVo> getInit(String sid) {
return null;
}
public ResultBean<WmsDistributeBillInitVo> details(String sid) {
return null;
}
public ResultBean<String> saveOrUpdateBill(WmsDistributeBillDto dto) {
return null;
}
public ResultBean<String> confirm(WmsDistributeBillDto dto) {
return null;
}
}

33
src/main/java/com/yxt/storage/biz/wmsdistributebill/WmsDistributeBillVo.java

@ -0,0 +1,33 @@
package com.yxt.storage.biz.wmsdistributebill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillVo {
private String sid;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("来源单号(出库单)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("优先级")
private String priority;
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private String isHandUp;
@ApiModelProperty("实际发货时间")
private String actualDeliveTime;
}

50
src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetail.java

@ -0,0 +1,50 @@
package com.yxt.storage.biz.wmsdistributebilldetail;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillDetail extends BaseEntity {
@ApiModelProperty("出库单明细sid")
private String outBillDetailSid;
@ApiModelProperty("单据sid")
private String billSid;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("配货数量")
private BigDecimal distributeCount;
@ApiModelProperty("发货数量")
private BigDecimal deliveryCount;
@ApiModelProperty("状态(配货中/已完成)")
private Integer billState;
}

42
src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailDto.java

@ -0,0 +1,42 @@
package com.yxt.storage.biz.wmsdistributebilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillDetailDto {
@ApiModelProperty("出库单明细sid")
private String outBillDetailSid;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("配货数量")
private String distributeCount;
}

42
src/main/java/com/yxt/storage/biz/wmsdistributebilldetail/WmsDistributeBillDetailVo.java

@ -0,0 +1,42 @@
package com.yxt.storage.biz.wmsdistributebilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsDistributeBillDetailVo {
@ApiModelProperty("出库单明细sid")
private String outBillDetailSid;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("配货数量")
private String distributeCount;
}

58
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventory.java

@ -0,0 +1,58 @@
package com.yxt.storage.biz.wmsinventory;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @author wangpengfei
* @date 2024/2/28 8:38
*/
@Data
public class WmsInventory extends BaseEntity {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private BigDecimal count;
@ApiModelProperty("分配量(锁定数量,出库申请通过,但未实际出库)")
private BigDecimal allocateCount;
@ApiModelProperty("拣货量")
private BigDecimal pickCount;
@ApiModelProperty("冻结量")
private BigDecimal freezeCount;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期-计算库龄的依据")
private Date firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
}

21
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.java

@ -0,0 +1,21 @@
package com.yxt.storage.biz.wmsinventory;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author wangpengfei
* @date 2024/2/26 13:40
*/
@Mapper
public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
IPage<WmsInventoryVo> listPage(IPage<WmsInventory> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
}

25
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryMapper.xml

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsinventory.WmsInventoryMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="listPage" resultType="com.yxt.storage.biz.wmsinventory.WmsInventoryVo">
select a.goodsID,
a.sid,
a.goodsSpuName,
a.goodsSkuCode,
a.goodsSkuOwnSpec,
a.unit,
a.warehouseName,
a.warehouseRackCode,
a.count,
a.allocateCount,
a.batchNumber,
DATE_FORMAT(a.firstInDate, '%Y-%m-%d') as firstInDate
from wms_inventory a
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

32
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryQuery.java

@ -0,0 +1,32 @@
package com.yxt.storage.biz.wmsinventory;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/2/26 13:37
*/
@Data
public class WmsInventoryQuery implements Query {
@ApiModelProperty("goodsID")
private String goodsID;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("仓库")
private String warehouseName;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("批次号")
private String batchNumber;
//供应商
}

57
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventorySaveDto.java

@ -0,0 +1,57 @@
package com.yxt.storage.biz.wmsinventory;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/19
**/
@Data
public class WmsInventorySaveDto {
private String sid;
@ApiModelProperty("创建者sid")
private String createBySid;
@ApiModelProperty("批次号(入库日期+生产日期,如240320-240109)")
private String batchNumber;
@ApiModelProperty("商品ID(唯一编码,入库时生成,生成规则为商品编码+YYMMdd+4位流水)")
private String goodsID;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private String count;
@ApiModelProperty("分配量")
private String allocateCount;
@ApiModelProperty("拣货量")
private String pickCount;
@ApiModelProperty("冻结量")
private String freezeCount;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("首次入库日期")
private String firstInDate;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
}

73
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryService.java

@ -0,0 +1,73 @@
package com.yxt.storage.biz.wmsinventory;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.List;
/**
* @author wangpengfei
* @date 2024/2/26 13:40
*/
@Service
public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper, WmsInventory> {
public PagerVo<WmsInventoryVo> listPage(PagerQuery<WmsInventoryQuery> pq) {
WmsInventoryQuery query = pq.getParams();
QueryWrapper<WmsInventory> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getGoodsID())) {
qw.like("a.goodsID", query.getGoodsID());
}
if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("a.warehouseName", query.getWarehouseName());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("a.goodsSkuCode", query.getGoodsSkuCode());
}
if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
qw.like("a.goodsSpuName", query.getGoodsSpuName());
}
if (StringUtils.isNotBlank(query.getBatchNumber())) {
qw.like("a.batchNumber", query.getBatchNumber());
}
IPage<WmsInventory> page = PagerUtil.queryToPage(pq);
IPage<WmsInventoryVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WmsInventoryVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveWmsInventory(WmsInventorySaveDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
WmsInventory wmsInventory = new WmsInventory();
BeanUtil.copyProperties(dto, wmsInventory, "sid");
sid = wmsInventory.getSid();
baseMapper.insert(wmsInventory);
} else {
WmsInventory wmsInventory = fetchBySid(sid);
if (wmsInventory == null) {
return rb.setMsg("该商品库存不存在");
}
BeanUtil.copyProperties(dto, wmsInventory, "sid");
baseMapper.updateById(wmsInventory);
}
return rb.success().setData(sid);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidss = Arrays.asList(sids);
delBySids(sids);
return rb.success().setMsg("删除成功");
}
}

42
src/main/java/com/yxt/storage/biz/wmsinventory/WmsInventoryVo.java

@ -0,0 +1,42 @@
package com.yxt.storage.biz.wmsinventory;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/2/26 13:37
*/
@Data
public class WmsInventoryVo implements Vo {
private String sid;
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位名称")
private String warehouseRackCode;
@ApiModelProperty("现有库存")
private String count;
@ApiModelProperty("分配库存")
private String allocateCount;
@ApiModelProperty("可用库存")
private String useCount;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("首次入库日期")
private String firstInDate;
@ApiModelProperty("库龄")
private String dateAge;
}

63
src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordDto.java

@ -0,0 +1,63 @@
package com.yxt.storage.biz.wmsinventoryrecord;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
@ApiModel(value = "库存出入库记录 数据传输对象", description = "库存出入库记录 数据传输对象")
public class WmsInventoryRecordDto implements Dto {
private String sid;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("来源单sid(业务单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单据编号")
private String billNo;
@ApiModelProperty("单据类型(1入库、0出库)")
private String billType;
@ApiModelProperty("业务类型key(采购入库、维修出入库、销售出入库等)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
private String busTypeValue;
@ApiModelProperty("客户/供应商sid,出库是为客户,入库时为供应商")
private String billObjSid;
@ApiModelProperty("客户/供应商名称")
private String billObjName;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("出入库后的库存量")
private BigDecimal currentCount;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("数量")
private BigDecimal count;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
}

37
src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordService.java

@ -1,7 +1,11 @@
package com.yxt.storage.biz.wmsinventoryrecord;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.Collections;
@ -20,4 +24,37 @@ public class WmsInventoryRecordService extends MybatisBaseService<WmsInventoryRe
list.removeAll(Collections.singleton(null));
return rb.success().setData(list);
}
public void saveOrUpdateDto(WmsInventoryRecordDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(WmsInventoryRecordDto dto) {
WmsInventoryRecord entity = new WmsInventoryRecord();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(WmsInventoryRecordDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
WmsInventoryRecord entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public PagerVo<WmsInventoryRecordsVo> listPage(PagerQuery<WmsInventoryRecordsQuery> pagerQuery) {
return null;
}
public List<WmsInventoryRecordsExcelVo> listExcel(WmsInventoryRecordsQuery query) {
return null;
}
}

66
src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsExcelVo.java

@ -0,0 +1,66 @@
package com.yxt.storage.biz.wmsinventoryrecord;
import com.yxt.common.core.utils.ExportEntityMap;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsInventoryRecordsExcelVo {
@ExportEntityMap(CnName = "序号", EnName = "rankNo")
private Integer rankNo;
@ApiModelProperty("商品ID")
@ExportEntityMap(CnName = "商品ID", EnName = "goodsID")
private String goodsID;
@ApiModelProperty("商品名称")
@ExportEntityMap(CnName = "商品名称", EnName = "goodsSpuName")
private String goodsSpuName;
@ApiModelProperty("商品编码")
@ExportEntityMap(CnName = "商品编码", EnName = "goodsSkuCode")
private String goodsSkuCode;
@ApiModelProperty("规格")
@ExportEntityMap(CnName = "规格", EnName = "goodsSkuOwnSpec")
private String goodsSkuOwnSpec;
@ApiModelProperty("单位")
@ExportEntityMap(CnName = "单位", EnName = "unit")
private String unit;
@ApiModelProperty("仓库")
@ExportEntityMap(CnName = "仓库", EnName = "warehouseName")
private String warehouseName;
@ApiModelProperty("库位")
@ExportEntityMap(CnName = "库位", EnName = "warehouseRackCode")
private String warehouseRackCode;
@ApiModelProperty("来源单号")
@ExportEntityMap(CnName = "来源单号", EnName = "billNo")
private String billNo;
@ApiModelProperty("单据类型(1入库、0出库)")
@ExportEntityMap(CnName = "单据类型", EnName = "billType")
private String billType;
@ExportEntityMap(CnName = "发生时间", EnName = "createTime")
private String createTime;
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
@ExportEntityMap(CnName = "业务类型", EnName = "busTypeValue")
private String busTypeValue;
@ApiModelProperty("客户/供应商名称")
@ExportEntityMap(CnName = "客户/供应商名称", EnName = "billObjName")
private String billObjName;
@ApiModelProperty("批次号")
@ExportEntityMap(CnName = "批次号", EnName = "batchNumber")
private String batchNumber;
@ApiModelProperty("数量")
@ExportEntityMap(CnName = "数量", EnName = "count")
private String count;
@ApiModelProperty("出入库后的库存量")
@ExportEntityMap(CnName = "出入库后的库存量", EnName = "currentCount")
private String currentCount;
}

39
src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsQuery.java

@ -0,0 +1,39 @@
package com.yxt.storage.biz.wmsinventoryrecord;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsInventoryRecordsQuery implements Query {
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("客户/供应商名称")
private String billObjName;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("来源单据编号")
private String billNo;
@ApiModelProperty("单据类型(1入库、0出库)")
private String billType;
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
private String busTypeValue;
@ApiModelProperty("发生开始时间")
private String createTimeStart;
@ApiModelProperty("发生结束时间")
private String createTimeEnd;
}

44
src/main/java/com/yxt/storage/biz/wmsinventoryrecord/WmsInventoryRecordsVo.java

@ -0,0 +1,44 @@
package com.yxt.storage.biz.wmsinventoryrecord;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsInventoryRecordsVo {
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品编码(图号)")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("来源单据编号")
private String billNo;
@ApiModelProperty("单据类型(1入库、0出库)")
private String billType;
private String createTime;
@ApiModelProperty("业务类型value(采购入库、调拨入库、退货入库、盘盈入库等销售出库、调拨出库、采购退货出库、报损出库、盘亏出库等)")
private String busTypeValue;
@ApiModelProperty("客户/供应商名称")
private String billObjName;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("出入库后的库存量")
private String currentCount;
@ApiModelProperty("数量")
private String count;
@ApiModelProperty("计量单位")
private String unit;
}

45
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBill.java

@ -0,0 +1,45 @@
package com.yxt.storage.biz.wmsoutbill;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBill extends BaseEntity {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("来源单号")
private String sourceBillNo;
@ApiModelProperty("制单人")
private String createByName;
@ApiModelProperty("业务类型key")
private String busTypeKey;
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
@ApiModelProperty("货主sid")
private String goodsOwnerSid;
@ApiModelProperty("货主")
private String goodsOwner;
@ApiModelProperty("已完成/已发货")
private Integer billState;
@ApiModelProperty("是否一起发货(否0,是1)")
private Integer isTogether;
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private Integer isHandUp;
@ApiModelProperty("优先级")
private Integer priority;
@ApiModelProperty("实际发货时间")
private Date actualDeliveTime;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
}

39
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDetailsVo.java

@ -0,0 +1,39 @@
package com.yxt.storage.biz.wmsoutbill;
import com.yxt.wms.biz.inventory.wmsoutbilldetail.WmsOutBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillDetailsVo {
private String sid;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("制单人")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("外部单号")
private String sourceBillNo;
@ApiModelProperty("业务类型key")
private String busTypeKey;
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("备注")
private String remarks;
private List<WmsOutBillDetailDto> detailsList = new ArrayList<>();
}

41
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillDto.java

@ -0,0 +1,41 @@
package com.yxt.storage.biz.wmsoutbill;
import com.yxt.wms.biz.inventory.wmsoutbilldetail.WmsOutBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillDto {
private String sid;
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("制单人")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("外部单号")
private String sourceBillNo;
@ApiModelProperty("业务类型key")
private String busTypeKey;
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
@ApiModelProperty("单据状态")
private String billState;
@ApiModelProperty("备注")
private String remarks;
private List<WmsOutBillDetailDto> detailsList = new ArrayList<>();
}

13
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.java

@ -0,0 +1,13 @@
package com.yxt.storage.biz.wmsoutbill;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Mapper
public interface WmsOutBillMapper extends BaseMapper<WmsOutBill> {
}

4
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillMapper.xml

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsoutbill.WmsOutBillMapper">
</mapper>

44
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillQuery.java

@ -0,0 +1,44 @@
package com.yxt.storage.biz.wmsoutbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillQuery implements Query {
//单据编号
@ApiModelProperty("单据编号")
private String billNo;
//单据日期开始时间
private String createTimeStart;
//单据日期结束时间
private String createTimeEnd;
//外部单号
@ApiModelProperty("来源单号")
private String sourceBillNo;
//业务类型
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
//单据状态
@ApiModelProperty("已完成/已发货")
private String billState;
//挂起状态
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private String isHandUp;
//优先级
@ApiModelProperty("优先级")
private String priority;
}

27
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillService.java

@ -0,0 +1,27 @@
package com.yxt.storage.biz.wmsoutbill;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Service
public class WmsOutBillService extends MybatisBaseService<WmsOutBillMapper, WmsOutBill> {
public PagerVo<WmsOutBillVo> listPage(PagerQuery<WmsOutBillQuery> pagerQuery) {
return null;
}
public ResultBean saveOrUpdateOutBill(WmsOutBillDto dto) {
return null;
}
public ResultBean<WmsOutBillDetailsVo> details(String sid) {
return null;
}
}

48
src/main/java/com/yxt/storage/biz/wmsoutbill/WmsOutBillVo.java

@ -0,0 +1,48 @@
package com.yxt.storage.biz.wmsoutbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillVo {
private String sid;
//单据编号
@ApiModelProperty("单据编号")
private String billNo;
//单据日期
private String createTime;
//制单人
@ApiModelProperty("制单人")
private String createByName;
//外部单号
@ApiModelProperty("来源单号")
private String sourceBillNo;
//业务类型
@ApiModelProperty("业务类型value((销售出库、采购退货出库等))")
private String busTypeValue;
//单据状态
@ApiModelProperty("已完成/已发货")
private String billState;
//优先级
@ApiModelProperty("优先级")
private String priority;
//挂起状态
@ApiModelProperty("挂起状态(1挂起,0不挂起,2解锁)")
private String isHandUp;
}

49
src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetail.java

@ -0,0 +1,49 @@
package com.yxt.storage.biz.wmsoutbilldetail;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillDetail extends BaseEntity {
@ApiModelProperty("单据sid")
private String billSid;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("订单数量")
private BigDecimal orderCount;
@ApiModelProperty("未结数量")
private BigDecimal remainingCount;
@ApiModelProperty("调整数量")
private BigDecimal adjustCount;
@ApiModelProperty("分配数量")
private BigDecimal distributeCount;
@ApiModelProperty("发货数量")
private BigDecimal deliveryCount;
@ApiModelProperty("状态(新建/已发货完成、部分分配、全部分配等)")
private Integer billState;
@ApiModelProperty("发货时间")
private Date deliveTime;
}

32
src/main/java/com/yxt/storage/biz/wmsoutbilldetail/WmsOutBillDetailDto.java

@ -0,0 +1,32 @@
package com.yxt.storage.biz.wmsoutbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/24
**/
@Data
public class WmsOutBillDetailDto {
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("出库数量")
private String outCount;
}

45
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBill.java

@ -0,0 +1,45 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Data
public class WmsReceiptBill extends BaseEntity {
@ApiModelProperty("来源单sid(asn单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单号(asn单号)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("业务类型key(采购入库、销售退库等)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购入库、销售退库等)")
private String busTypeValue;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("货主sid")
private String goodsOwnerSid;
@ApiModelProperty("货主")
private String goodsOwner;
@ApiModelProperty("到货日期")
private Date deliveryDate;
@ApiModelProperty("待收货/部分收货/已收货(默认)")
private String billState;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
}

53
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillDto2.java

@ -0,0 +1,53 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsReceiptBillDto2 {
private String sid;
@ApiModelProperty("来源单sid(asn单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单号(asn单号)")
private String sourceBillNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("业务类型key(采购入库、销售退库等)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购入库、销售退库等)")
private String busTypeValue;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("到货日期")
private String deliveryDate;
//单据状态:新建/已完成
@ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)")
private String billState;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("商品列表")
private List<WmsReceiptBillDetailDto2> list = new ArrayList<>();
@ApiModelProperty("批次列表")
private List<WmsReceiptBillDetailBatchDto2> pcList = new ArrayList<>();
}

55
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillInitVo.java

@ -0,0 +1,55 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsReceiptBillInitVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("来源单sid(asn单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单号(asn单号)")
private String sourceBillNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("业务类型key(采购入库、销售退库等)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购入库、销售退库等)")
private String busTypeValue;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("到货日期")
private String deliveryDate;
//单据状态:新建/已完成
@ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)")
private String billState;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("商品列表")
private List<WmsReceiptBillDetailDto2> list = new ArrayList<>();
@ApiModelProperty("批次列表")
private List<WmsReceiptBillDetailBatchDto2> pcList = new ArrayList<>();
}

20
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.java

@ -0,0 +1,20 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Mapper
public interface WmsReceiptBillMapper extends BaseMapper<WmsReceiptBill> {
IPage<WmsReceiptBillPageVo> listPage(IPage<WmsReceiptBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsReceiptBill> qw);
WmsReceiptBillInitVo getDetailsInit(String sid);
}

42
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillMapper.xml

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBillMapper">
<select id="listPage" resultType="com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBillPageVo">
select wrb.sid,
wrb.billNo,
wrb.createByName,
wrb.sourceBillNo,
wrb.busTypeValue,
wrb.supplierName,
DATE_FORMAT(wrb.createTime, '%Y-%m-%d') as createTime,
DATE_FORMAT(wrb.deliveryDate, '%Y-%m-%d') as deliveryDate,
wrb.billState
from wms_receipt_bill wrb
<where>
${ew.sqlSegment}
</where>
order by wrb.id desc
</select>
<select id="getDetailsInit" resultType="com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBillInitVo">
select wrb.sid,
wrb.billNo,
wrb.sourceBillSid,
wrb.sourceBillNo,
wrb.createBySid,
wrb.createByName,
wrb.busTypeKey,
wrb.busTypeValue,
wrb.supplierSid,
wrb.supplierName,
DATE_FORMAT(wrb.deliveryDate, '%Y-%m-%d') as deliveryDate,
case wrb.billState
when '0' then '新建'
when '1' then '已完成' end as billState,
wrb.remarks,
wrb.useOrgSid,
wrb.createOrgSid
from wms_receipt_bill wrb
where wrb.sid = #{sid}
</select>
</mapper>

38
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillPageVo.java

@ -0,0 +1,38 @@
package com.yxt.storage.biz.wmsreceiptbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/12
**/
@Data
public class WmsReceiptBillPageVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("来源单号(asn单号)")
private String sourceBillNo;
@ApiModelProperty("业务类型value(采购入库、销售退库等)")
private String busTypeValue;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("到货日期")
private String deliveryDate;
//单据状态:新建/已完成
@ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)")
private String billState;
}

33
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillQuery.java

@ -0,0 +1,33 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Data
public class WmsReceiptBillQuery implements Query {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("单据日期开始时间")
private String createTimeStart;
@ApiModelProperty("单据日期结束时间")
private String createTimeEnd;
@ApiModelProperty("来源编号")
private String sourceBillNo;
@ApiModelProperty("业务类型Key")
private String busTypeKey;
@ApiModelProperty("到货日期开始时间")
private String deliveryDateStart;
@ApiModelProperty("到货日期结束时间")
private String deliveryDateEnd;
@ApiModelProperty("单据状态")
private String billState;
}

192
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillService.java

@ -0,0 +1,192 @@
package com.yxt.storage.biz.wmsreceiptbill;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsansbill.WmsAnsBill;
import com.yxt.storage.biz.wmsansbill.WmsAnsBillService;
import com.yxt.storage.biz.wmsansbilldetail.WmsAnsBillDetailService;
import com.yxt.storage.biz.wmsansbilldetail.WmsAnsListDetailsVo;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailMapper;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailService;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailVo;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Service
public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapper, WmsReceiptBill> {
@Autowired
private WmsReceiptBillDetailService wmsReceiptBillDetailService;
@Autowired
private WmsAnsBillService wmsAnsBillService;
@Autowired
private WmsAnsBillDetailService wmsAnsBillDetailService;
@Autowired
private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService;
@Autowired
private WmsReceiptBillDetailMapper wmsReceiptBillDetailMapper;
@Autowired
private WmsReceiptBillDetailBatchMapper wmsReceiptBillDetailBatchMapper;
public PagerVo<WmsReceiptBillPageVo> listPage(PagerQuery<WmsReceiptBillQuery> pq) {
WmsReceiptBillQuery query = pq.getParams();
QueryWrapper<WmsReceiptBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wrb.billNo", query.getBillNo());
}
//单据日期开始时间-单据日期结束时间
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wrb.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wrb.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//预期到货日期开始时间-预期到货日期结束时间
qw.apply(StringUtils.isNotBlank(query.getDeliveryDateStart()), "date_format (wrb.deliveryDate,'%Y-%m-%d') >= date_format('" + query.getDeliveryDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getDeliveryDateEnd()), "date_format (wrb.deliveryDate,'%Y-%m-%d') <= date_format('" + query.getDeliveryDateEnd() + "','%Y-%m-%d')"
);
//单据状态
if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wrb.billState", query.getBillState());
}
//外部编号
if (StringUtils.isNotBlank(query.getSourceBillNo())) {
qw.like("wrb.sourceBillNo", query.getSourceBillNo());
}
IPage<WmsReceiptBill> page = PagerUtil.queryToPage(pq);
IPage<WmsReceiptBillPageVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WmsReceiptBillPageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
WmsReceiptBill wmsReceiptBill = new WmsReceiptBill();
sid = wmsReceiptBill.getSid();
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid");
List<WmsReceiptBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList();
pcList.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
}
baseMapper.insert(wmsReceiptBill);
} else {
WmsReceiptBill wmsReceiptBill = fetchBySid(sid);
if (wmsReceiptBill == null) {
return rb.setMsg("该单据不存在");
}
BeanUtil.copyProperties(dto, wmsReceiptBill, "sid");
List<WmsReceiptBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
List<WmsReceiptBillDetailBatchDto2> pcList = dto.getPcList();
pcList.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
wmsReceiptBillDetailService.saveOrUpdateDetailsList2(sid, list, pcList);
}
baseMapper.updateById(wmsReceiptBill);
}
return rb.success().setData(sid);
}
public ResultBean<WmsReceiptBillVo> getInitDetails(String sourceSid) {
ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail();
WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo();
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(sourceSid);
BeanUtil.copyProperties(wmsAnsBill, wmsReceiptBillVo, "sid");
wmsReceiptBillVo.setSourceBillNo(wmsAnsBill.getBillNo());
wmsReceiptBillVo.setSourceBillSid(wmsAnsBill.getSid());
wmsReceiptBillVo.setCreateTime(DateUtil.today());
List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sourceSid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
List<WmsReceiptBillDetailVo> lists = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsReceiptBillDetailVo.class)).collect(Collectors.toList());
wmsReceiptBillVo.setList(lists);
}
return rb.success().setData(wmsReceiptBillVo);
}
public ResultBean<WmsReceiptBillInitVo> getDetailsInit(String sid) {
ResultBean<WmsReceiptBillInitVo> rb = ResultBean.fireFail();
WmsReceiptBillInitVo wmsReceiptBillInitVo = baseMapper.getDetailsInit(sid);
List<WmsReceiptBillDetailBatchDto2> pcList = new ArrayList<>();
if (wmsReceiptBillInitVo != null) {
List<WmsReceiptBillDetailDto2> list = wmsReceiptBillDetailService.getDetailsInit(sid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i);
int a = i + 1;
wmsReceiptBillDetailDto2.setXh(String.valueOf(a));
List<WmsReceiptBillDetailBatchDto2> pcList2 = wmsReceiptBillDetailBatchService.getDetailsInit(sid, wmsReceiptBillDetailDto2.getDetailsSid());
pcList2.removeAll(Collections.singleton(null));
if (!pcList2.isEmpty()) {
for (int j = 0; j < pcList2.size(); j++) {
WmsReceiptBillDetailBatchDto2 wmsReceiptBillDetailBatchDto2 = pcList2.get(j);
wmsReceiptBillDetailBatchDto2.setXh(String.valueOf(a));
}
pcList.addAll(pcList2);
}
}
}
wmsReceiptBillInitVo.setList(list);
wmsReceiptBillInitVo.setPcList(pcList);
} else {
return rb.setMsg("该单据不存在");
}
return rb.success().setData(wmsReceiptBillInitVo);
}
public ResultBean<String> confirm(WmsReceiptBillDto2 dto) {
ResultBean<String> rb = ResultBean.fireFail();
dto.setBillState("1");
List<WmsReceiptBillDetailDto2> list = dto.getList();
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
for (int i = 0; i < list.size(); i++) {
WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i);
wmsReceiptBillDetailDto2.setState(1);
}
}
dto.setList(list);
ResultBean<String> resultBean = saveOrUpdateBill2(dto);
String sid = resultBean.getData();
return rb.success().setData(sid);
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidss = Arrays.asList(sids);
for (int i = 0; i < sidss.size(); i++) {
String s = sidss.get(i);
wmsReceiptBillDetailMapper.deleteByBillSid(s);
wmsReceiptBillDetailBatchMapper.deleteByDetails(s);
}
delBySids(sids);
return rb.success().setMsg("删除成功");
}
}

51
src/main/java/com/yxt/storage/biz/wmsreceiptbill/WmsReceiptBillVo.java

@ -0,0 +1,51 @@
package com.yxt.storage.biz.wmsreceiptbill;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Data
public class WmsReceiptBillVo {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("来源单sid(asn单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单号(asn单号)")
private String sourceBillNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("业务类型key(采购入库、销售退库等)")
private String busTypeKey;
@ApiModelProperty("业务类型value(采购入库、销售退库等)")
private String busTypeValue;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
@ApiModelProperty("到货日期")
private Date deliveryDate;
//单据状态:新建/已完成
@ApiModelProperty("单据状态:待收货/部分收货/已收货(默认)")
private String billState;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
private List<WmsReceiptBillDetailVo> list = new ArrayList<>();
}

56
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetail.java

@ -0,0 +1,56 @@
package com.yxt.storage.biz.wmsreceiptbilldetail;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Data
public class WmsReceiptBillDetail extends BaseEntity {
@ApiModelProperty("单据sid")
private String billSid;
@ApiModelProperty("商品基础信息Sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("实收数量")
private BigDecimal actualInCount;
@ApiModelProperty("拒收数量")
private BigDecimal rejectCount;
@ApiModelProperty("拒收原因")
private String rejectReason;
@ApiModelProperty("收货时间")
private Date receivingGoodsTime;
@ApiModelProperty("是否需要质检(不需要0,需要1)")
private Integer isQuality;
@ApiModelProperty("质检状态(合格0,不合格1)")
private Integer qualityState;
@ApiModelProperty("载具说明")
private String packageRemark;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位名称")
private String warehouseRackName;
}

69
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailDto2.java

@ -0,0 +1,69 @@
package com.yxt.storage.biz.wmsreceiptbilldetail;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsReceiptBillDetailDto2 {
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("实收数量")
private String actualInCount;
@ApiModelProperty("拒收数量")
private String rejectCount;
@ApiModelProperty("拒收原因")
private String rejectReason;
@ApiModelProperty("是否需要质检(不需要0,需要1)")
private Integer isQuality;
@ApiModelProperty("质检状态(合格0,不合格1)")
private Integer qualityState;
@ApiModelProperty("载具说明")
private String packageRemark;
@ApiModelProperty("单据明细状态:0新建,1已完成")
private Integer state;
@ApiModelProperty("序号")
private String xh;
@JsonIgnore
private String detailsSid;
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
//入库价
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ApiModelProperty("税额")
private String taxAmount;
@ApiModelProperty("含税价")
private String taxPrice;
//采购金额
@ApiModelProperty("金额")
private String amount;
@ApiModelProperty("有效天数")
private String shelfLife;
}

21
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java

@ -0,0 +1,21 @@
package com.yxt.storage.biz.wmsreceiptbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Mapper
public interface WmsReceiptBillDetailMapper extends BaseMapper<WmsReceiptBillDetail> {
int deleteByBillSid(String sid);
List<WmsReceiptBillDetailDto2> getDetailsInit(String sid);
List<WmsReceiptBillDetail> selectByBillSid(@Param("sid") String sid, @Param("sidList") List<String> sidList);
}

42
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailMapper">
<delete id="deleteByBillSid">
delete
from wms_receipt_bill_detail
where billSid = #{sid}
</delete>
<select id="getDetailsInit" resultType="com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailDto2">
select wrbd.goodsSkuSid,
wrbd.goodsSkuTitle,
wrbd.goodsSkuCode,
wrbd.goodsSkuOwnSpec,
wrbd.unit,
wrbd.warehouseSid,
wrbd.warehouseName,
wrbd.warehouseRackSid,
wrbd.warehouseRackName,
wrbd.actualInCount,
wrbd.rejectCount,
wrbd.rejectReason,
wrbd.isQuality,
wrbd.qualityState,
wrbd.packageRemark,
wrbd.state,
wrbd.sid detailsSid
from wms_receipt_bill_detail wrbd
where billSid = #{sid}
</select>
<select id="selectByBillSid" resultType="com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail where billSid = #{sid}
<if test="sidList != null and sidList.size() != 0">
and sid not in
<foreach collection="sidList" item="item" open="(" close=")" separator=",">
#{item}
</foreach>
</if>
</select>
</mapper>

53
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailService.java

@ -0,0 +1,53 @@
package com.yxt.storage.biz.wmsreceiptbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/3
**/
@Service
public class WmsReceiptBillDetailService extends MybatisBaseService<WmsReceiptBillDetailMapper, WmsReceiptBillDetail> {
@Autowired
private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService;
public void saveOrUpdateDetailsList2(String sid, List<WmsReceiptBillDetailDto2> list, List<WmsReceiptBillDetailBatchDto2> pcList) {
baseMapper.deleteByBillSid(sid);
list.forEach(v -> {
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(v, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid);
baseMapper.insert(wmsReceiptBillDetail);
wmsReceiptBillDetailBatchService.deleteByDetails(sid);
pcList.removeAll(Collections.singleton(null));
if (!pcList.isEmpty()) {
List<WmsReceiptBillDetailBatchDto2> pcList2 = pcList.stream().filter(c -> c.getXh().equals(v.getXh())).collect(Collectors.toList());
pcList2.removeAll(Collections.singleton(null));
if (!pcList2.isEmpty()) {
wmsReceiptBillDetailBatchService.saveBatchs2(sid, wmsReceiptBillDetail.getSid(), pcList2);
}
}
});
}
public List<WmsReceiptBillDetailDto2> getDetailsInit(String sid) {
return baseMapper.getDetailsInit(sid);
}
public List<WmsReceiptBillDetail> selectByBillSid(String sid, List<String> sidList) {
return baseMapper.selectByBillSid(sid, sidList);
}
}

61
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetail/WmsReceiptBillDetailVo.java

@ -0,0 +1,61 @@
package com.yxt.storage.biz.wmsreceiptbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/12
**/
@Data
public class WmsReceiptBillDetailVo {
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("实收数量")
private String actualInCount;
@ApiModelProperty("拒收数量")
private String rejectCount;
@ApiModelProperty("拒收原因")
private String rejectReason;
@ApiModelProperty("是否需要质检(不需要0,需要1)")
private Integer isQuality;
@ApiModelProperty("质检状态(合格0,不合格1)")
private Integer qualityState;
@ApiModelProperty("载具说明")
private String packageRemark;
//入库价
@ApiModelProperty("单位成本(采购价)")
private String cost;
@ApiModelProperty("税额")
private String taxAmount;
@ApiModelProperty("含税价")
private String taxPrice;
//采购金额
@ApiModelProperty("金额")
private String amount;
@ApiModelProperty("有效期天数")
private Integer shelfLife;
@ApiModelProperty("预约数量(采购订单数量)")
private String orderCount;
}

30
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatch.java

@ -0,0 +1,30 @@
package com.yxt.storage.biz.wmsreceiptbilldetailbatch;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/10
**/
@Data
public class WmsReceiptBillDetailBatch extends BaseEntity {
@ApiModelProperty("收货单sid")
private String billSid;
@ApiModelProperty("收货明细sid")
private String detailSid;
@ApiModelProperty("批次号(收货日期+有效日期,如240320-241009)")
private String batchNumber;
@ApiModelProperty("生产日期")
private Date manufactureDate;
@ApiModelProperty("有效期(根据spu中有效天数、生产日期计算)")
private Date expirationDate;
@ApiModelProperty("数量")
private BigDecimal batchCount;
}

45
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchDto2.java

@ -0,0 +1,45 @@
package com.yxt.storage.biz.wmsreceiptbilldetailbatch;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsReceiptBillDetailBatchDto2 {
@ApiModelProperty("批次号(收货日期+有效日期,如240320-241009)")
private String batchNumber;
@ApiModelProperty("生产日期")
private String manufactureDate;
@ApiModelProperty("有效期(根据spu中有效天数、生产日期计算)")
private String expirationDate;
@ApiModelProperty("数量")
private String batchCount;
@ApiModelProperty("有效期天数")
private Integer shelfLife;
private String xh;
//商品名称
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
//商品编码
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
//规格
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
//单位
@ApiModelProperty("计量单位")
private String unit;
//仓库
@ApiModelProperty("仓库名称")
private String warehouseName;
//库位
@ApiModelProperty("库位名称")
private String warehouseRackName;
}

21
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.java

@ -0,0 +1,21 @@
package com.yxt.storage.biz.wmsreceiptbilldetailbatch;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/12
**/
@Mapper
public interface WmsReceiptBillDetailBatchMapper extends BaseMapper<WmsReceiptBillDetailBatch> {
int deleteByDetails(String sid);
List<WmsReceiptBillDetailBatchDto2> getDetailsInit(@Param("sid") String sid, @Param("detailsSid") String detailsSid);
WmsReceiptBillDetailBatch selectByDetails(String sid);
}

27
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchMapper.xml

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchMapper">
<delete id="deleteByDetails">
delete
from wms_receipt_bill_detail_batch
where billSid = #{sid}
</delete>
<select id="getDetailsInit"
resultType="com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchDto2">
select wb.batchNumber,
DATE_FORMAT(wb.manufactureDate, '%Y-%m-%d') as manufactureDate,
DATE_FORMAT(wb.expirationDate, '%Y-%m-%d') as expirationDate,
wb.batchCount
from wms_receipt_bill_detail_batch wb
where wb.billSid = #{sid}
and wb.detailSid = #{detailsSid}
</select>
<select id="selectByDetails"
resultType="com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatch">
select *
from wms_receipt_bill_detail_batch
where detailSid = #{sid}
</select>
</mapper>

37
src/main/java/com/yxt/storage/biz/wmsreceiptbilldetailbatch/WmsReceiptBillDetailBatchService.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsreceiptbilldetailbatch;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/12
**/
@Service
public class WmsReceiptBillDetailBatchService extends MybatisBaseService<WmsReceiptBillDetailBatchMapper, WmsReceiptBillDetailBatch> {
public int deleteByDetails(String sid) {
return baseMapper.deleteByDetails(sid);
}
public void saveBatchs2(String sid, String sid1, List<WmsReceiptBillDetailBatchDto2> list) {
list.forEach(v -> {
WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = new WmsReceiptBillDetailBatch();
BeanUtil.copyProperties(v, wmsReceiptBillDetailBatch, "sid");
wmsReceiptBillDetailBatch.setBillSid(sid);
wmsReceiptBillDetailBatch.setDetailSid(sid1);
baseMapper.insert(wmsReceiptBillDetailBatch);
});
}
public List<WmsReceiptBillDetailBatchDto2> getDetailsInit(String sid, String detailsSid) {
return baseMapper.getDetailsInit(sid, detailsSid);
}
public WmsReceiptBillDetailBatch selectByDetails(String sid) {
return baseMapper.selectByDetails(sid);
}
}

37
src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfDetailsVo.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.yxt.storage.biz.wmsshelfbilldetail.ShelfDetailsListVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/17
**/
@Data
public class ShelfDetailsVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人名称")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("来源单号")
private String sourceBillNo;
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("单据状态:0新建,1已完成")
private Integer billState;
private String remarks;
private List<ShelfDetailsListVo> list = new ArrayList<>();
}

37
src/main/java/com/yxt/storage/biz/wmsshelfbill/ShelfInitVo.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.yxt.storage.biz.wmsshelfbilldetail.ShelfInitListVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/23
**/
@Data
public class ShelfInitVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人名称")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("来源单号")
private String sourceBillNo;
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("单据状态:0新建,1已完成")
private Integer billState;
private String remarks;
private List<ShelfInitListVo> list = new ArrayList<>();
}

28
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBill.java

@ -0,0 +1,28 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/10
**/
@Data
public class WmsShelfBill extends BaseEntity {
@ApiModelProperty("来源单sid(收货单sid)")
private String sourceBillSid;
@ApiModelProperty("来源单号(收货单号)")
private String sourceBillNo;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("0新建,1已完成")
private Integer billState;
private String createOrgSid;
private String useOrgSid;
}

36
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillDto.java

@ -0,0 +1,36 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.yxt.storage.biz.wmsshelfbilldetail.WmsShelfBillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsShelfBillDto {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人名称")
private String createByName;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("来源单号")
private String sourceBillNo;
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("单据状态:0新建,1已完成")
private Integer billState;
private String remarks;
private List<WmsShelfBillDetailDto> list = new ArrayList<>();
}

22
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.java

@ -0,0 +1,22 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Mapper
public interface WmsShelfBillMapper extends BaseMapper<WmsShelfBill> {
IPage<WmsShelfBillVo> listPage(IPage<WmsShelfBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsShelfBill> qw);
ShelfDetailsVo details(String sid);
String selectNum(String goodsId);
}

39
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillMapper.xml

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsshelfbill.WmsShelfBillMapper">
<select id="listPage" resultType="com.yxt.storage.biz.wmsshelfbill.WmsShelfBillVo">
select wsb.sid,
wsb.billNo,
DATE_FORMAT(wsb.createTime, '%Y-%m-%d') as createTime,
wsb.createByName,
wsb.sourceBillNo,
case wsb.billState
when 0 then '新建'
when 1 then '已完成' end as billState
from wms_shelf_bill wsb
<where>
${ew.sqlSegment}
</where>
</select>
<select id="details" resultType="com.yxt.storage.biz.wmsshelfbill.ShelfDetailsVo">
select wsb.sid,
wsb.billNo,
wsb.createBySid,
wsb.createByName,
DATE_FORMAT(wsb.createTime, '%Y-%m-%d') as createTime,
wsb.sourceBillNo,
wsb.sourceBillSid,
wsb.billState
from wms_shelf_bill wsb
where sid = #{sid}
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT(goodsID, 4)
from wms_inventory
where goodsID LIKE concat(#{bill}, '%')
order by id desc
limit 1
</select>
</mapper>

23
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillQuery.java

@ -0,0 +1,23 @@
package com.yxt.storage.biz.wmsshelfbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsShelfBillQuery implements Query {
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("单据日期开始时间")
private String createTimeStart;
@ApiModelProperty("单据日期结束时间")
private String createTimeEnd;
@ApiModelProperty("单据状态")
private String billState;
}

261
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillService.java

@ -0,0 +1,261 @@
package com.yxt.storage.biz.wmsshelfbill;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.storage.biz.wmsinventory.WmsInventorySaveDto;
import com.yxt.storage.biz.wmsinventory.WmsInventoryService;
import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordDto;
import com.yxt.storage.biz.wmsinventoryrecord.WmsInventoryRecordService;
import com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBill;
import com.yxt.storage.biz.wmsreceiptbill.WmsReceiptBillService;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetail;
import com.yxt.storage.biz.wmsreceiptbilldetail.WmsReceiptBillDetailService;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatch;
import com.yxt.storage.biz.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.storage.biz.wmsshelfbilldetail.*;
import com.yxt.storage.feign.goods.basegoodssku.BaseGoodsSkuDetailsVo;
import com.yxt.storage.feign.goods.basegoodssku.BaseGoodsSkuFeign;
import com.yxt.storage.utils.Rule;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/11
**/
@Service
public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper, WmsShelfBill> {
@Autowired
private WmsShelfBillDetailService wmsShelfBillDetailService;
@Autowired
private WmsShelfBillDetailMapper wmsShelfBillDetailMapper;
@Autowired
private WmsInventoryService wmsInventoryService;
@Resource
private BaseGoodsSkuFeign baseGoodsSkuFeign;
@Autowired
private WmsInventoryRecordService wmsInventoryRecordService;
@Autowired
private WmsReceiptBillService wmsReceiptBillService;
@Autowired
private WmsReceiptBillDetailService wmsReceiptBillDetailService;
@Autowired
private WmsReceiptBillDetailBatchService wmsReceiptBillDetailBatchService;
public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) {
WmsShelfBillQuery query = pq.getParams();
QueryWrapper<WmsShelfBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wsb.billNo", query.getBillNo());
}
//单据日期开始时间-单据日期结束时间
qw.apply(StringUtils.isNotBlank(query.getCreateTimeStart()), "date_format (wsb.createTime,'%Y-%m-%d') >= date_format('" + query.getCreateTimeStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(query.getCreateTimeEnd()), "date_format (wsb.createTime,'%Y-%m-%d') <= date_format('" + query.getCreateTimeEnd() + "','%Y-%m-%d')"
);
//单据状态
if (StringUtils.isNotBlank(query.getBillState())) {
qw.like("wsb.billState", query.getBillState());
}
IPage<WmsShelfBill> page = PagerUtil.queryToPage(pq);
IPage<WmsShelfBillVo> pagging = baseMapper.listPage(page, qw);
PagerVo<WmsShelfBillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateShelf(WmsShelfBillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
WmsShelfBill wmsShelfBill = new WmsShelfBill();
BeanUtil.copyProperties(dto, wmsShelfBill, "sid");
List<WmsShelfBillDetailDto> list = dto.getList();
list.removeAll(Collections.singleton(null));
sid = wmsShelfBill.getSid();
if (!list.isEmpty()) {
wmsShelfBillDetailService.saveShelfDetails(sid, list);
}
baseMapper.insert(wmsShelfBill);
} else {
WmsShelfBill wmsShelfBill = fetchBySid(sid);
if (wmsShelfBill == null) {
return rb.setMsg("该单据不存在");
}
BeanUtil.copyProperties(dto, wmsShelfBill, "sid");
List<WmsShelfBillDetailDto> list = dto.getList();
list.removeAll(Collections.singleton(null));
sid = wmsShelfBill.getSid();
if (!list.isEmpty()) {
wmsShelfBillDetailService.saveShelfDetails(sid, list);
}
baseMapper.updateById(wmsShelfBill);
}
saveWmsInventory(sid);
//新增出入库记录
return rb.success().setData(sid);
}
public void saveWmsInventory(String sid) {
WmsShelfBill wmsShelfBill = fetchBySid(sid);
List<WmsShelfBillDetailVos> detailList = wmsShelfBillDetailService.selectByBillSid(sid);
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
for (int i = 0; i < detailList.size(); i++) {
WmsShelfBillDetailVos s = detailList.get(i);
WmsInventorySaveDto dto = new WmsInventorySaveDto();
dto.setCreateBySid(wmsShelfBill.getCreateBySid());
dto.setBatchNumber(s.getBatchNumber());
dto.setGoodsID(getGoodsId(s.getGoodsSkuSid()));
dto.setGoodSpuSid(s.getGoodSpuSid());
dto.setGoodsSpuName(s.getGoodsSpuName());
dto.setGoodsSkuSid(s.getGoodsSkuSid());
dto.setGoodsSkuTitle(s.getGoodsSkuTitle());
dto.setGoodsSkuCode(s.getGoodsSkuCode());
dto.setGoodsSkuOwnSpec(s.getGoodsSkuOwnSpec());
dto.setUnit(s.getUnit());
dto.setCount(s.getCount());
dto.setWarehouseSid(s.getWarehouseSid());
dto.setWarehouseName(s.getWarehouseName());
dto.setWarehouseRackSid(s.getWarehouseRackSid());
dto.setWarehouseRackCode(s.getWarehouseRackCode());
dto.setFirstInDate(DateUtil.today());
dto.setCreateOrgSid(wmsShelfBill.getCreateOrgSid());
dto.setUseOrgSid(wmsShelfBill.getUseOrgSid());
dto.setSid(s.getInventorySid());
String inventorySid = wmsInventoryService.saveWmsInventory(dto).getData();
WmsShelfBillDetail wmsShelfBillDetail = wmsShelfBillDetailService.fetchBySid(s.getDetailsSid());
wmsShelfBillDetail.setInventorySid(inventorySid);
wmsShelfBillDetailService.updateById(wmsShelfBillDetail);
WmsInventoryRecordDto wmsInventoryRecordDto = new WmsInventoryRecordDto();
wmsInventoryRecordDto.setInventorySid(inventorySid);
wmsInventoryRecordDto.setGoodsID(dto.getGoodsID());
wmsInventoryRecordDto.setSourceBillSid(wmsShelfBill.getSourceBillSid());
wmsInventoryRecordDto.setBillNo(wmsShelfBill.getSourceBillNo());
wmsInventoryRecordDto.setBillType("1");
wmsInventoryRecordDto.setBatchNumber(dto.getBatchNumber());
wmsInventoryRecordDto.setGoodSpuSid(dto.getGoodSpuSid());
wmsInventoryRecordDto.setGoodsSpuName(dto.getGoodsSpuName());
wmsInventoryRecordDto.setGoodsSkuSid(dto.getGoodsSkuSid());
wmsInventoryRecordDto.setGoodsSkuCode(dto.getGoodsSkuCode());
wmsInventoryRecordDto.setUnit(dto.getUnit());
wmsInventoryRecordDto.setCurrentCount(StringUtils.isNotBlank(dto.getCount()) ? new BigDecimal(dto.getCount()) : BigDecimal.ZERO);
wmsInventoryRecordDto.setWarehouseSid(dto.getWarehouseSid());
wmsInventoryRecordDto.setWarehouseName(dto.getWarehouseName());
wmsInventoryRecordDto.setWarehouseRackSid(dto.getWarehouseRackSid());
wmsInventoryRecordDto.setWarehouseRackCode(dto.getWarehouseRackCode());
wmsInventoryRecordService.saveOrUpdateDto(wmsInventoryRecordDto);
}
}
}
/**
* 获取商品唯一的goodsID
*
* @param goodsSkuSid
* @return
*/
private String getGoodsId(String goodsSkuSid) {
String goodsId = "";
ResultBean<BaseGoodsSkuDetailsVo> resultBean = baseGoodsSkuFeign.getDetails(goodsSkuSid);
if (resultBean.getSuccess()) {
BaseGoodsSkuDetailsVo baseGoodsSkuDetailsVo = resultBean.getData();
goodsId = baseGoodsSkuDetailsVo.getGoodsCode();
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
goodsId = goodsId + date;
String i = baseMapper.selectNum(goodsId);
if (StringUtils.isNotBlank(i)) {
goodsId = Rule.getBillNo(goodsId, Integer.valueOf(i).intValue());
} else {
goodsId = Rule.getBillNo(goodsId, 0);
}
}
return goodsId;
}
public ResultBean delAllBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
List<String> sidss = Arrays.asList(sids);
for (int i = 0; i < sidss.size(); i++) {
String s = sidss.get(i);
wmsShelfBillDetailMapper.deleteByMainSid(s);
}
delBySids(sids);
return rb.success().setMsg("删除成功");
}
public ResultBean<ShelfDetailsVo> details(String sid) {
ResultBean<ShelfDetailsVo> rb = ResultBean.fireFail();
ShelfDetailsVo shelfDetailsVo = baseMapper.details(sid);
if (shelfDetailsVo == null) {
return rb.setMsg("该单据不存在");
}
List<ShelfDetailsListVo> list = wmsShelfBillDetailService.details(sid);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
shelfDetailsVo.setList(list);
}
return rb.success().setData(shelfDetailsVo);
}
public ResultBean<ShelfInitVo> getInit(String sid, String orgPath, String userSid) {
ResultBean<ShelfInitVo> rb = ResultBean.fireFail();
ShelfInitVo shelfInitVo = new ShelfInitVo();
//查询所有已上架的商品
List<String> stringList = wmsShelfBillDetailService.selectReceiptSidList();
stringList.removeAll(Collections.singleton(null));
//获取收货单据
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sid);
shelfInitVo.setCreateTime(DateUtil.today());//单据日期
shelfInitVo.setSourceBillNo(wmsReceiptBill.getBillNo());//来源单编号
shelfInitVo.setSourceBillSid(wmsReceiptBill.getSid());//来源单sid
shelfInitVo.setBillState(0);
List<ShelfInitListVo> list = new ArrayList<>();
//获取收货单据的明细
List<WmsReceiptBillDetail> wmsReceiptBillDetailsList = wmsReceiptBillDetailService.selectByBillSid(sid, stringList);
wmsReceiptBillDetailsList.removeAll(Collections.singleton(null));
if (!wmsReceiptBillDetailsList.isEmpty()) {
for (int i = 0; i < wmsReceiptBillDetailsList.size(); i++) {
WmsReceiptBillDetail v = wmsReceiptBillDetailsList.get(i);
WmsReceiptBillDetailBatch wmsReceiptBillDetailBatch = wmsReceiptBillDetailBatchService.selectByDetails(v.getSid());
ShelfInitListVo shelfInitListVo = new ShelfInitListVo();
BeanUtil.copyProperties(v, shelfInitListVo, "sid");
shelfInitListVo.setBatchNumber(wmsReceiptBillDetailBatch.getBatchNumber());
shelfInitListVo.setWarehouseSid(v.getWarehouseSid());
shelfInitListVo.setWarehouseRackSid(v.getWarehouseRackSid());
shelfInitListVo.setWarehouseRackCode("");
list.add(shelfInitListVo);
}
}
shelfInitVo.setList(list);
return rb.success().setData(shelfInitVo);
}
public ResultBean<String> confirm(WmsShelfBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
dto.setBillState(1);
ResultBean<String> resultBean = saveOrUpdateShelf(dto);
String sid = resultBean.getData();
return rb.success().setData(sid);
}
}

27
src/main/java/com/yxt/storage/biz/wmsshelfbill/WmsShelfBillVo.java

@ -0,0 +1,27 @@
package com.yxt.storage.biz.wmsshelfbill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsShelfBillVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("单据日期")
private String createTime;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("来源单号(收货单号)")
private String sourceBillNo;
@ApiModelProperty("单据状态:0新建,1已完成")
private String billState;
}

52
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfDetailsListVo.java

@ -0,0 +1,52 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/18
**/
@Data
public class ShelfDetailsListVo implements Vo {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("上架数量")
private String count;
//商品名称
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
//商品编码
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
//规格
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
//单位
@ApiModelProperty("计量单位")
private String unit;
//仓库
@ApiModelProperty("仓库名称")
private String warehouseName;
//库位
@ApiModelProperty("库位名称")
private String warehouseRackName;
//已上架数量
private String actualCount;
//载具编号
private String packageNo;
}

49
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/ShelfInitListVo.java

@ -0,0 +1,49 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/23
**/
@Data
public class ShelfInitListVo {
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("上架数量")
private String count;
//商品名称
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
//商品编码
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
//规格
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
//单位
@ApiModelProperty("计量单位")
private String unit;
//仓库
@ApiModelProperty("仓库名称")
private String warehouseName;
//库位
@ApiModelProperty("库位名称")
private String warehouseRackName;
//已上架数量
private String actualCount;
//载具编号
private String packageNo;
}

32
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetail.java

@ -0,0 +1,32 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/10
**/
@Data
public class WmsShelfBillDetail extends BaseEntity {
@ApiModelProperty("单据sid")
private String billSid;
@ApiModelProperty("收货单明细sid")
private String receiptDetailSid;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("上架数量")
private BigDecimal count;
}

53
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailDto.java

@ -0,0 +1,53 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/15
**/
@Data
public class WmsShelfBillDetailDto {
@ApiModelProperty("收货单明细sid")
private String receiptDetailSid;
@ApiModelProperty("批次号")
private String batchNumber;
@ApiModelProperty("库存sid")
private String inventorySid;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编号")
private String warehouseRackCode;
@ApiModelProperty("需上架数量")
private String count;
//商品名称
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
//商品编码
@ApiModelProperty("商品sku编码")
private String goodsSkuCode;
//规格
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
//单位
@ApiModelProperty("计量单位")
private String unit;
//仓库
@ApiModelProperty("仓库名称")
private String warehouseName;
//库位
@ApiModelProperty("库位名称")
private String warehouseRackName;
//已上架数量
private String actualCount;
//载具编号
private String packageNo;
}

22
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.java

@ -0,0 +1,22 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/17
**/
@Mapper
public interface WmsShelfBillDetailMapper extends BaseMapper<WmsShelfBillDetail> {
int deleteByMainSid(String sid);
List<ShelfDetailsListVo> details(String sid);
List<WmsShelfBillDetailVos> selectByBillSid(String sid);
List<String> selectReceiptSidList();
}

46
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailMapper.xml

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.storage.biz.wmsshelfbilldetail.WmsShelfBillDetailMapper">
<delete id="deleteByMainSid">
delete
from wms_shelf_bill_detail
where billSid = #{sid}
</delete>
<select id="details" resultType="com.yxt.storage.biz.wmsshelfbilldetail.ShelfDetailsListVo">
select wsd.batchNumber,
wsd.inventorySid,
wsd.warehouseSid,
wsd.warehouseRackCode,
wsd.warehouseRackSid,
wsd.count
from wms_shelf_bill_detail wsd
where billSid = #{sid}
</select>
<select id="selectByBillSid" resultType="com.yxt.storage.biz.wmsshelfbilldetail.WmsShelfBillDetailVos">
select wrbd.goodSpuSid,
wrbd.goodsSpuName,
wrbd.goodsSkuSid,
wrbd.goodsSkuTitle,
wrbd.goodsSkuCode,
wrbd.goodsSkuOwnSpec,
wrbd.unit,
wsbd.actualCount count,
wrbd.warehouseSid,
wrbd.warehouseName,
wrbd.warehouseRackSid,
wsbd.warehouseRackCode,
wsbd.batchNumber,
wsbd.inventorySid,
wsbd.sid detailsSid
from wms_shelf_bill_detail wsbd
left join wms_receipt_bill_detail wrbd on wrbd.sid = wsbd.receiptDetailSid
where wsbd.billSid = #{sid}
</select>
<select id="selectReceiptSidList" resultType="java.lang.String">
select receiptDetailSid
from wms_shelf_bill_detail
</select>
</mapper>

37
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailService.java

@ -0,0 +1,37 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/17
**/
@Service
public class WmsShelfBillDetailService extends MybatisBaseService<WmsShelfBillDetailMapper, WmsShelfBillDetail> {
public void saveShelfDetails(String sid, List<WmsShelfBillDetailDto> list) {
baseMapper.deleteByMainSid(sid);
list.forEach(v -> {
WmsShelfBillDetail wmsShelfBillDetail = new WmsShelfBillDetail();
BeanUtil.copyProperties(v, wmsShelfBillDetail, "sid");
wmsShelfBillDetail.setBillSid(sid);
baseMapper.insert(wmsShelfBillDetail);
});
}
public List<ShelfDetailsListVo> details(String sid) {
return baseMapper.details(sid);
}
public List<WmsShelfBillDetailVos> selectByBillSid(String sid) {
return baseMapper.selectByBillSid(sid);
}
public List<String> selectReceiptSidList() {
return baseMapper.selectReceiptSidList();
}
}

44
src/main/java/com/yxt/storage/biz/wmsshelfbilldetail/WmsShelfBillDetailVos.java

@ -0,0 +1,44 @@
package com.yxt.storage.biz.wmsshelfbilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/19
**/
@Data
public class WmsShelfBillDetailVos {
private String detailsSid;
@ApiModelProperty("商品基础信息sid")
private String goodSpuSid;
@ApiModelProperty("商品名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品Sku名称")
private String goodsSkuTitle;
@ApiModelProperty("商品编码")
private String goodsSkuCode;
@ApiModelProperty("规格型号")
private String goodsSkuOwnSpec;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("现有量")
private String count;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("批次号")
private String batchNumber;
private String inventorySid;
}

48
src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuDetailsVo.java

@ -0,0 +1,48 @@
package com.yxt.storage.feign.goods.basegoodssku;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@Data
public class BaseGoodsSkuDetailsVo {
@ApiModelProperty("商品代码")
private String goodsCode;
@ApiModelProperty("条形码")
private String barCode;
@ApiModelProperty("商品名称")
private String goodsName;
@ApiModelProperty("副标题")
private String subTitle;
@ApiModelProperty("拼音缩写")
private String goodsPY;
@ApiModelProperty("商品简称")
private String goodsShortName;
@ApiModelProperty("商品分类sid")
private String goodsTypeSid;
@ApiModelProperty("品牌sid")
private String brandSid;
@ApiModelProperty("厂家sid")
private String manufacturersid;
@ApiModelProperty("商品单位sid")
private String goodsUnitSid;
@ApiModelProperty("商品单位名称")
private String goodsUnitName;
@ApiModelProperty("商品Sku代码")
private String goodsSkuCode;
@ApiModelProperty("商品标题")
private String title;
@ApiModelProperty("是否一品一码(goodID),0否,1是")
@JsonProperty("isGoodsID")
private int isGoodsID;
@ApiModelProperty("商品类别名称")
private String goodsTypeName;
}

24
src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeign.java

@ -0,0 +1,24 @@
package com.yxt.storage.feign.goods.basegoodssku;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@FeignClient(
contextId = "yxt-base-BaseGoodsSku",
name = "yxt-base",
path = "/apiadmin/base/basegoodssku",
fallback = BaseGoodsSkuFeignFallback.class)
public interface BaseGoodsSkuFeign {
@ApiOperation("获取商品信息")
@GetMapping("/getDetails")
ResultBean<BaseGoodsSkuDetailsVo> getDetails(@RequestParam("sid") String sid);
}

17
src/main/java/com/yxt/storage/feign/goods/basegoodssku/BaseGoodsSkuFeignFallback.java

@ -0,0 +1,17 @@
package com.yxt.storage.feign.goods.basegoodssku;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@Component
public class BaseGoodsSkuFeignFallback implements BaseGoodsSkuFeign{
@Override
public ResultBean<BaseGoodsSkuDetailsVo> getDetails(String sid) {
return null;
}
}

15
src/main/java/com/yxt/storage/utils/Rule.java

@ -0,0 +1,15 @@
package com.yxt.storage.utils;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
public class Rule {
public static String getBillNo(String bill, int i) {
String num = String.format("%04d", i + 1); // 不足4位补0
String billNo = bill + num;
return billNo;
}
}

30
src/main/resources/application-dev.yml

@ -0,0 +1,30 @@
spring:
datasource:
hikari:
max-lifetime: 500000
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://39.104.100.138:3306/yxt_wms?serverTimezone=GMT%2B8&autoReconnect=true&useUnicode=true&characterEncoding=UTF-8&nullCatalogMeansCurrent=true
username: root
password: yxt_mysql_138
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848
redis:
database: 3 # Redis数据库索引(默认为0)
host: 127.0.0.1
jedis:
pool:
max-active: -1 #连接池最大连接数(使用负值表示没有限制)
max-idle: 8 #连接池中的最大空闲连接
max-wait: -1 # 连接池最大阻塞等待时间(使用负值表示没有限制)
min-idle: 0 # 连接池中的最小空闲连接
password: 123456
port: 6379
timeout: 0 # 连接超时时间(毫秒)
image:
upload:
path: D:/works/projects/yxt/yxtgit/lipinka/yxt-yythmall-biz/target/classes/static/upload/
url:
prefix: http://192.168.2.111:7211/upload/

43
src/main/resources/application.yml

@ -0,0 +1,43 @@
spring:
application:
name: yxt-wms
profiles:
active: devv
messages:
# 国际化资源文件路径
basename: i18n/messages
servlet:
#上传文件
multipart:
max-file-size: 50MB
max-request-size: 100MB
devtools:
restart:
# 热部署开关
enabled: true
server:
port: 7301
max-http-header-size: 102400
undertow:
max-http-post-size: -1
#mybatis
mybatis-plus:
# 配置mapper的扫描,找到所有的mapper.xml映射文件
mapper-locations: classpath*:**Mapper.xml
global-config:
refresh: true
db-config:
#定义生成ID的类型
id-type: Auto
db-type: mysql
configuration:
map-underscore-to-camel-case: false
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

54
src/main/resources/logback-spring.xml

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="log.base" value="logs/yxt_storage"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 :
|%blue(%thread) 线程 如 :DiscoveryClient-CacheRefreshExecutor-0-->
<!--<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>-->
<pattern>%yellow(%date{yyyy-MM-dd HH:mm:ss}) |%highlight(%-5level) |%green(%logger:%line) |%blue(%msg%n)
</pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<appender name="FILEOUT"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.base}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.base}.%d{yyyyMMdd}.%i.log.zip
</fileNamePattern>
<!-- 当文件大小超过10MB时触发滚动 -->
<timeBasedFileNamingAndTriggeringPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>1MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<encoder>
<!--<pattern>%date [%thread] %-5level %logger{35} - %msg%n</pattern>-->
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
-%msg%n
</Pattern>
<!--<charset>UTF-8</charset> -->
</encoder>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILEOUT"/>
</root>
</configuration>
Loading…
Cancel
Save