Browse Source

旧件盘点

master
God 8 months ago
parent
commit
d3de5262fe
  1. 218
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsOldCheckbillRest.java
  2. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java
  3. 24
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  4. 8
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java
  5. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillMapper.java
  6. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillMapper.xml
  7. 12
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillService.java
  8. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailMapper.xml
  9. 78
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbill.java
  10. 84
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillDetailsVo.java
  11. 91
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillDto.java
  12. 73
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillMapper.java
  13. 278
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillMapper.xml
  14. 69
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillQuery.java
  15. 898
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillService.java
  16. 92
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillVo.java
  17. 35
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/CompleteOldCheckDto.java
  18. 23
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckDelegateQuery.java
  19. 18
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckNodeQuery.java
  20. 24
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckNodeVo.java
  21. 43
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckTaskQuery.java
  22. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/SubmitOldCheckDto.java
  23. 109
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetail.java
  24. 108
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailDetailsVo.java
  25. 108
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailDto.java
  26. 35
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailFile.java
  27. 64
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailGoodPageListQuery.java
  28. 94
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailGoodPageListVo.java
  29. 66
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailMapper.java
  30. 172
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailMapper.xml
  31. 65
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackGoodPageListQuery.java
  32. 94
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackGoodPageListVo.java
  33. 66
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackPageListQuery.java
  34. 86
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackPageListVo.java
  35. 191
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailService.java
  36. 44
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/HandleBean.java
  37. 35
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillGoodsDto.java
  38. 66
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillGoodsPyDto.java
  39. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillPageQuery.java
  40. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillPageVo.java
  41. 57
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReport.java
  42. 105
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportDetailsVo.java
  43. 57
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportDto.java
  44. 45
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportMapper.java
  45. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportMapper.xml
  46. 63
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportService.java
  47. 90
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportSumVo.java
  48. 4959
      yxt-wms-biz/src/main/resources/ftl/jjpdbg.ftl

218
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsOldCheckbillRest.java

@ -0,0 +1,218 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.apiadmin.inventroy;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillQuery;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillService;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable.*;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.*;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.*;
import com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportDetailsVo;
import com.yxt.wms.feign.flowable.flow.BusinessVariables;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@Api(tags = "旧件盘点")
@RestController
@RequestMapping("v1/oldpPartStocktaking")
public class WmsOldCheckbillRest {
@Autowired
private WmsOldCheckbillService wmsOldCheckbillService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<WmsOldCheckbillVo>> listPage(@RequestBody PagerQuery<WmsOldCheckbillQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WmsOldCheckbillVo> pv = wmsOldCheckbillService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("新建盘点单")
@PostMapping("/save")
public ResultBean save(@RequestBody WmsOldCheckbillDto dto) {
return wmsOldCheckbillService.saveOrUpdateDto(dto);
}
@ApiOperation("生成盘点报告")
@PostMapping("/createReport")
public ResultBean createReport(@RequestParam("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
wmsOldCheckbillService.createReport(sid);
return rb.success();
}
@ApiOperation("查看盘点报告")
@PostMapping("/viewReport")
public ResultBean<WmsOldCheckbillReportDetailsVo> viewReport(@RequestParam("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
WmsOldCheckbillReportDetailsVo wmsOldCheckbillReportDetailsVo = wmsOldCheckbillService.viewReport(sid);
return rb.success().success().setData(wmsOldCheckbillReportDetailsVo);
}
@ApiOperation("保存办理盘点报告")
@PostMapping("/saveReport")
public ResultBean saveReport(@RequestParam("sid") String sid,@RequestParam("remarks") String remarks) {
ResultBean rb = ResultBean.fireFail();
wmsOldCheckbillService.saveReport(sid,remarks);
return rb.success().success();
}
@ApiOperation("生成盘点报告PDF")
@PostMapping("/createPdf")
public ResultBean<String> createPdf(@RequestParam("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
String url = wmsOldCheckbillService.createPdf(sid);
return rb.success().success().setData(url);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {
return wmsOldCheckbillService.delAll(sids);
}
@ApiOperation("盘点-查看库位盘点列表")
@PostMapping("/detailRackPageList")
public ResultBean<PagerVo<WmsOldCheckbillDetailRackPageListVo>> detailRackPageList(@RequestBody PagerQuery<WmsOldCheckbillDetailRackPageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WmsOldCheckbillDetailRackPageListVo> pv = wmsOldCheckbillService.detailRackPageList(pq);
return rb.success().setData(pv);
}
@ApiOperation("盘点-查看商品盘点列表")
@PostMapping("/detailGoodPageList")
public ResultBean<PagerVo<WmsOldCheckbillDetailGoodPageListVo>> detailGoodPageList(@RequestBody PagerQuery<WmsOldCheckbillDetailGoodPageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WmsOldCheckbillDetailGoodPageListVo> pv = wmsOldCheckbillService.detailGoodPageList(pq);
return rb.success().setData(pv);
}
@ApiOperation("查看库位商品盘点列表")
@PostMapping("/detailRackGoodPageList")
public ResultBean<PagerVo<WmsOldCheckbillDetailRackGoodPageListVo>> detailRackGoodPageList(@RequestBody PagerQuery<WmsOldCheckbillDetailRackGoodPageListQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WmsOldCheckbillDetailRackGoodPageListVo> pv = wmsOldCheckbillService.detailRackGoodPageList(pq);
return rb.success().setData(pv);
}
/*********************************************************移动端************************************************************/
@ApiOperation("app-盘点-查看库位盘点列表")
@PostMapping("/appDetailRackPageList")
public ResultBean<PagerVo<WmsOldCheckbillPageVo>> appDetailRackPageList(@RequestBody PagerQuery<WmsOldCheckbillPageQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<WmsOldCheckbillPageVo> pv = wmsOldCheckbillService.appDetailRackPageList(pq);
return rb.success().setData(pv);
}
@ApiOperation("办理/扫码保存")
@PostMapping("/saveInventoryInfo")
@ResponseBody
ResultBean saveInventoryInfo(@RequestBody WmsOldCheckbillGoodsDto dto) {
return wmsOldCheckbillService.saveInventoryInfo(dto);
}
@ApiOperation("盘盈保存")
@PostMapping("/saveInventoryInfo2")
@ResponseBody
ResultBean saveInventoryInfo2(@RequestBody WmsOldCheckbillGoodsPyDto dto){
return wmsOldCheckbillService.saveInventoryInfo2(dto);
}
@ApiOperation("扫描商品码")
@GetMapping("/scan")
@ResponseBody
public ResultBean<HandleBean> scan(@RequestParam("sid") String sid, @RequestParam("content") String content, @RequestParam("houseSid") String houseSid) {
return wmsOldCheckbillService.scan(sid, content, houseSid);
}
/*********************************************************流程************************************************************/
@ApiOperation("提交")
@PostMapping("/submitApply")
public ResultBean submitApply(@Valid @RequestBody SubmitOldCheckDto dto) {
return wmsOldCheckbillService.submitApply(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteOldCheckDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return wmsOldCheckbillService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<OldCheckNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap OldCheckNodeQuery query) {
return wmsOldCheckbillService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<OldCheckNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap OldCheckNodeQuery query) {
return wmsOldCheckbillService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody OldCheckTaskQuery query) {
return wmsOldCheckbillService.taskReject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody OldCheckTaskQuery query) {
return wmsOldCheckbillService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody OldCheckTaskQuery query) {
return wmsOldCheckbillService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody OldCheckDelegateQuery query) {
return wmsOldCheckbillService.delegate(query);
}
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.java

@ -80,4 +80,8 @@ public interface WmsInventoryMapper extends BaseMapper<WmsInventory> {
List<StorageListVo> appStorage(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<OldStorageListVo> appOldStorage(@Param(Constants.WRAPPER) QueryWrapper<WmsInventory> qw);
List<WmsInventory> selJJByDeptSidAndRackSid(@Param("deptSid") String deptSid,@Param("rackSids") List<String> rackSids);
List<WmsInventory> selJJByDeptSid(String deptSid);
}

24
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml

@ -582,4 +582,28 @@
AND wi.goodsSkuCode = #{goodsSkuCode}
AND wi.useOrgSid = #{deptSid}
</select>
<select id="selJJByDeptSidAndRackSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND RIGHT(wi.`goodsID`,2) = '-O'
AND wi.warehouseRackSid in
<foreach item="rackSid" collection="rackSids" open="(" separator="," close=")">
#{rackSid}
</foreach>
</select>
<select id="selJJByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
SELECT wi.*
FROM wms_inventory wi
LEFT JOIN wms_warehouse_info wwi
ON wi.`warehouseSid` = wwi.`sid`
WHERE wi.count > 0
AND wwi.`useOrgSid` = #{deptSid}
AND RIGHT(wi.`goodsID`,2) = '-O'
</select>
</mapper>

8
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java

@ -959,4 +959,12 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
List<WmsInventoryReturnFactSelectList> wmsInventoryReturnFactSelectListList = baseMapper.selBillNoAndCode(sourceBillNo,goodsSkuCode,deptSid);
return rb.success().setData(wmsInventoryReturnFactSelectListList);
}
public List<WmsInventory> selJJByDeptSidAndRackSid(String deptSid, List<String> rackSids) {
return baseMapper.selJJByDeptSidAndRackSid(deptSid,rackSids);
}
public List<WmsInventory> selJJByDeptSid(String deptSid) {
return baseMapper.selJJByDeptSid(deptSid);
}
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillMapper.java

@ -66,11 +66,6 @@ public interface WmsInventoryCheckbillMapper extends BaseMapper<WmsInventoryChec
IPage<WmsInventoryCheckbillDetailGoodPageListVo> detailGoodPageList(IPage<WmsInventoryCheckbill> page, @Param(Constants.WRAPPER) Wrapper<WmsInventoryCheckbill> qw);
IPage<WmsInventoryCheckbillDetailRackGoodPageListVo> detailRackGoodPageList(IPage<WmsInventoryCheckbill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsInventoryCheckbill> qw);
List<WmsInventoryCheckbillVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<WmsInventoryCheckbill> qw);
@Select("select * from wms_inventory_checkbill")
List<WmsInventoryCheckbillVo> selectListVo();
String selectNum(String billNo);

30
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillMapper.xml

@ -22,19 +22,19 @@
wic.`procDefId`,
wic.`procInstId`,
SUM(wicd.bookCount) AS bookCount,
SUM(wicd.bookCount) * cost AS bookAmount,
SUM(wicd.bookCount * cost) AS bookAmount,
SUM(wicd.realCount) AS realCount,
SUM(wicd.realCount) * cost AS realAmount,
SUM(wicd.realCount * cost) AS realAmount,
SUM(wicd.bookCount) - SUM(wicd.realCount) AS notCount,
(
SUM(wicd.bookCount) - SUM(wicd.realCount)
) * cost AS notAmount,
SUM(wicd.bookCount * cost) - SUM(wicd.realCount * cost)
) AS notAmount,
SUM(wicd.profitCount) AS profitCount,
SUM(wicd.profitCount) * cost AS profitAmount,
SUM(wicd.profitCount * cost) AS profitAmount,
SUM(wicd.loseCount) AS loseCount,
SUM(wicd.loseCount) * cost AS loseAmount,
SUM(wicd.loseCount * cost) AS loseAmount,
SUM(wicd.lossCount) AS lossCount,
SUM(wicd.lossCount) * cost AS lossAmount
SUM(wicd.lossCount * cost) AS lossAmount
FROM
wms_inventory_checkbill wic
LEFT JOIN wms_inventory_checkbill_detail wicd
@ -53,17 +53,17 @@
warehouseRackSid,
warehouseRackName,
SUM(bookCount) AS bookCount,
SUM(bookCount) * cost AS bookAmount,
SUM(bookCount * cost) AS bookAmount,
SUM(realCount) AS realCount,
SUM(realCount) * cost AS realAmount,
SUM(realCount * cost) AS realAmount,
SUM(bookCount) - SUM(realCount) AS notCount,
(SUM(bookCount) - SUM(realCount)) * cost AS notAmount,
(SUM(bookCount * cost) - SUM(realCount * cost)) AS notAmount,
SUM(profitCount) AS profitCount,
SUM(profitCount) * cost AS profitAmount,
SUM(profitCount * cost) AS profitAmount,
SUM(loseCount) AS loseCount,
SUM(loseCount) * cost AS loseAmount,
SUM(loseCount * cost) AS loseAmount,
SUM(lossCount) AS lossCount,
SUM(lossCount) * cost AS lossAmount
SUM(lossCount * cost) AS lossAmount
FROM
wms_inventory_checkbill_detail
<where> ${ew.sqlSegment} </where>
@ -170,10 +170,6 @@
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.wms.biz.inventory.wmsinventorycheckbill.WmsInventoryCheckbillVo">
SELECT * FROM wms_inventory_checkbill <where> ${ew.sqlSegment} </where>
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from wms_inventory_checkbill

12
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbill/WmsInventoryCheckbillService.java

@ -288,7 +288,7 @@ public class WmsInventoryCheckbillService extends MybatisBaseService<WmsInventor
public ResultBean<String> saveOrUpdateDto(WmsInventoryCheckbillDto dto) {
ResultBean rb = ResultBean.fireFail();
String checkState = baseMapper.checkState(dto.getDeptSid());
if (!"2".equals(checkState)) {
if (!"2".equals(checkState) && StringUtils.isNotBlank(checkState)) {
return rb.setMsg("存在盘点中数据,无法生成新的盘点单");
}
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(dto.getDeptSid()).getData();
@ -356,16 +356,6 @@ public class WmsInventoryCheckbillService extends MybatisBaseService<WmsInventor
return entity.getSid();
}
public void updateByDto(WmsInventoryCheckbillDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
WmsInventoryCheckbill entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public WmsInventoryCheckbillDetailsVo fetchDetailsVoBySid(String sid) {
WmsInventoryCheckbill entity = fetchBySid(sid);
WmsInventoryCheckbillDetailsVo vo = new WmsInventoryCheckbillDetailsVo();

30
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventorycheckbilldetail/WmsInventoryCheckbillDetailMapper.xml

@ -22,15 +22,15 @@
resultType="com.yxt.wms.biz.inventory.wmsinventorycheckbillreport.WmsInventoryCheckbillReportSumVo">
SELECT
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount) * cost AS ypMoney,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount) * cost AS spMoney,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount) * cost AS pyMoney,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount) * cost AS pkMoney,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount) * cost AS psMoney
SUM(lossCount * cost) AS psMoney
FROM
wms_inventory_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}
@ -42,15 +42,15 @@
SELECT
wicd.warehouseName,
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount) * cost AS ypMoney,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount) * cost AS spMoney,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount) * cost AS pyMoney,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount) * cost AS pkMoney,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount) * cost AS psMoney
SUM(lossCount * cost) AS psMoney
FROM
wms_inventory_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}
@ -66,15 +66,15 @@
wicd.warehouseArea
) AS warehouseAreaeName,
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount) * cost AS ypMoney,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount) * cost AS spMoney,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount) * cost AS pyMoney,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount) * cost AS pkMoney,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount) * cost AS psMoney
SUM(lossCount * cost) AS psMoney
FROM
wms_inventory_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}

78
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbill.java

@ -0,0 +1,78 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@TableName("wms_old_checkbill")
public class WmsOldCheckbill extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("盘点类型key")
private String checkTypeKey;
@ApiModelProperty("盘点类型value")
private String checkTypeValue;
@ApiModelProperty("监盘人sid")
private String superviseSid; // 监盘人sid
@ApiModelProperty("监盘人姓名")
private String superviseName; // 监盘人姓名
@ApiModelProperty("盘点状态(盘点中1,盘点完成2)")
private Integer checkState; // 盘点状态(盘点中1,盘点完成2)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结时间")
private Date finishTime; // 办结时间
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeId; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
}

84
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillDetailsVo.java

@ -0,0 +1,84 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailDetailsVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class WmsOldCheckbillDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("盘点类型key")
private String checkTypeKey;
@ApiModelProperty("盘点类型value")
private String checkTypeValue;
@ApiModelProperty("监盘人sid")
private String superviseSid; // 监盘人sid
@ApiModelProperty("监盘人姓名")
private String superviseName; // 监盘人姓名
@ApiModelProperty("盘点状态(盘点中1,盘点完成2)")
private Integer checkState; // 盘点状态(盘点中1,盘点完成2)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结时间")
private Date finishTime; // 办结时间
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeId; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("盘库明细")
private List<WmsOldCheckbillDetailDetailsVo> wmsOldCheckbillDetailList;
}

91
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillDto.java

@ -0,0 +1,91 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
public class WmsOldCheckbillDto implements Dto {
private String sid; // sid
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称
@ApiModelProperty("盘点类型key")
private String checkTypeKey;
@ApiModelProperty("盘点类型value")
private String checkTypeValue;
@ApiModelProperty("监盘人sid")
private String superviseSid; // 监盘人sid
@ApiModelProperty("监盘人姓名")
private String superviseName; // 监盘人姓名
@ApiModelProperty("盘点状态(盘点中1,盘点完成2)")
private Integer checkState; // 盘点状态(盘点中1,盘点完成2)
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("办结时间")
private Date finishTime; // 办结时间
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeId; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("盘库明细")
private List<WmsOldCheckbillDetailDto> wmsOldCheckbillDetailList;
/*
* 月度抽盘
* */
@ApiModelProperty("库位sid")
private List<String> rackSids = new ArrayList<>();
}

73
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillMapper.java

@ -0,0 +1,73 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.wmsinventoryprofitin.InventoryBillVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailGoodPageListVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailRackGoodPageListVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailRackPageListVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillPageVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
import java.util.Map;
@Mapper
public interface WmsOldCheckbillMapper extends BaseMapper<WmsOldCheckbill> {
IPage<WmsOldCheckbillVo> selectPageVo(IPage<WmsOldCheckbill> page, @Param(Constants.WRAPPER) Wrapper<WmsOldCheckbill> qw);
IPage<WmsOldCheckbillDetailRackPageListVo> detailRackPageList(IPage<WmsOldCheckbill> page, @Param(Constants.WRAPPER) Wrapper<WmsOldCheckbill> qw);
IPage<WmsOldCheckbillDetailGoodPageListVo> detailGoodPageList(IPage<WmsOldCheckbill> page, @Param(Constants.WRAPPER) Wrapper<WmsOldCheckbill> qw);
IPage<WmsOldCheckbillDetailRackGoodPageListVo> detailRackGoodPageList(IPage<WmsOldCheckbill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsOldCheckbill> qw);
String selectNum(String billNo);
int selectBySid(String join);
@Update("update wms_old_checkbill set state = 0,checkState = 2 where sid = #{sid}")
void createReport(String sid);
String checkState(String deptSid);
int updateFlowFiled(Map<String, Object> beanToMap);
IPage<WmsOldCheckbillPageVo> appDetailRackPageList(IPage<WmsOldCheckbill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsOldCheckbill> qw);
List<InventoryBillVo> selPyByDeptSid(String deptSid);
List<InventoryBillVo> selPkByDeptSid(String deptSid);
}

278
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillMapper.xml

@ -0,0 +1,278 @@
<?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.wmsoldcheckbill.WmsOldCheckbillMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillVo">
SELECT
wic.sid,
wic.state,
wic.`remarks`,
wic.`nodeState`,
wic.`deptName`,
wic.`billNo`,
wic.`createTime`,
wic.`createByName`,
wic.`superviseName`,
IF(
wic.`checkState` = '1',
'盘点中',
'盘点完成'
) AS checkState,
wic.`procDefId`,
wic.`procInstId`,
SUM(wicd.bookCount) AS bookCount,
SUM(wicd.bookCount * cost) AS bookAmount,
SUM(wicd.realCount) AS realCount,
SUM(wicd.realCount * cost) AS realAmount,
SUM(wicd.bookCount) - SUM(wicd.realCount) AS notCount,
(
SUM(wicd.bookCount * cost) - SUM(wicd.realCount * cost)
) AS notAmount,
SUM(wicd.profitCount) AS profitCount,
SUM(wicd.profitCount * cost) AS profitAmount,
SUM(wicd.loseCount) AS loseCount,
SUM(wicd.loseCount * cost) AS loseAmount,
SUM(wicd.lossCount) AS lossCount,
SUM(wicd.lossCount * cost) AS lossAmount
FROM
wms_old_checkbill wic
LEFT JOIN wms_old_checkbill_detail wicd
ON wic.sid = wicd.`billSid`
LEFT JOIN anrui_portal.sys_organization AS s
ON wic.deptSid = s.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="detailRackPageList"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailRackPageListVo">
SELECT
billSid,
warehouseName,
warehouseArea,
warehouseRackSid,
warehouseRackName,
SUM(bookCount) AS bookCount,
SUM(bookCount * cost) AS bookAmount,
SUM(realCount) AS realCount,
SUM(realCount * cost) AS realAmount,
SUM(bookCount) - SUM(realCount) AS notCount,
(SUM(bookCount * cost) - SUM(realCount * cost)) AS notAmount,
SUM(profitCount) AS profitCount,
SUM(profitCount * cost) AS profitAmount,
SUM(loseCount) AS loseCount,
SUM(loseCount * cost) AS loseAmount,
SUM(lossCount) AS lossCount,
SUM(lossCount * cost) AS lossAmount
FROM
wms_old_checkbill_detail
<where> ${ew.sqlSegment} </where>
</select>
<select id="detailGoodPageList"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailGoodPageListVo">
SELECT
goodsID,
goodsSkuTitle,
goodsSkuCode,
warehouseName,
warehouseArea,
warehouseRackName,
unit,
cost,
bookCount,
bookCount * cost AS bookAmount,
realCount,
realCount * cost AS realAmount,
CASE
state
WHEN 2
THEN '正常'
WHEN 3
THEN '盘盈'
WHEN 4
THEN '盘亏'
END AS state,
CASE
state
WHEN 2
THEN 0
WHEN 3
THEN profitCount
WHEN 4
THEN loseCount
END AS profitAndLoseCount,
CASE
state
WHEN 2
THEN 0
WHEN 3
THEN profitCount * cost
WHEN 4
THEN loseCount * cost
END AS profitAndLoseAmount,
lossCount,
lossCount * cost AS lossAmount,
remarks
FROM
wms_old_checkbill_detail
<where> ${ew.sqlSegment} </where>
</select>
<select id="detailRackGoodPageList"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailRackGoodPageListVo">
SELECT
sid,
goodsID,
goodsSkuTitle,
goodsSkuCode,
warehouseName,
warehouseArea,
warehouseRackName,
unit,
cost,
bookCount,
bookCount * cost AS bookAmount,
realCount,
realCount * cost AS realAmount,
CASE
state
WHEN 2
THEN '正常'
WHEN 3
THEN '盘盈'
WHEN 4
THEN '盘亏'
END AS state,
CASE
state
WHEN 2
THEN 0
WHEN 3
THEN profitCount
WHEN 4
THEN loseCount
END AS profitAndLoseCount,
CASE
state
WHEN 2
THEN 0
WHEN 3
THEN profitCount * cost
WHEN 4
THEN loseCount * cost
END AS profitAndLoseAmount,
lossCount,
lossCount * cost AS lossAmount,
remarks
FROM
wms_old_checkbill_detail
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from wms_old_checkbill
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
<select id="selectBySid" resultType="int">
SELECT COUNT(*)
FROM wms_old_checkbill
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<select id="checkState" resultType="java.lang.String">
SELECT
checkState
FROM
wms_old_checkbill
WHERE deptSid = #{deptSid}
ORDER BY createTime DESC
LIMIT 1
</select>
<update id="updateFlowFiled">
UPDATE wms_old_checkbill
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
<select id="appDetailRackPageList"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillPageVo">
SELECT
c.sid,
d.warehouseRackSid AS houseSid,
CONCAT(
d.warehouseName,
'-',
d.warehouseArea,
'-',
d.warehouseRackName
) AS title,
SUM(bookCount) - SUM(realCount) AS surplusNumber,
SUM(bookCount) AS totalNumber,
SUM(loseCount) AS lossNumber,
SUM(lossCount) AS damageNumber,
SUM(profitCount) AS profitNumber,
SUM(realCount) AS actualNumber
FROM
wms_old_checkbill_detail d
LEFT JOIN wms_old_checkbill c
ON d.billSid = c.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="selPyByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventoryprofitin.InventoryBillVo">
SELECT
wc.sid AS billSid,
wc.billNo
FROM
wms_old_checkbill wc
JOIN
(SELECT
SUM(wd.profitCount) AS total,
wd.billSid AS billSid
FROM
wms_old_checkbill_detail wd
GROUP BY wd.billSid) AS total_goods
WHERE wc.deptSid = #{deptSid}
AND total_goods.billSid = wc.sid
AND total_goods.total > 0
AND wc.checkState = 2
</select>
<select id="selPkByDeptSid" resultType="com.yxt.wms.biz.inventory.wmsinventoryprofitin.InventoryBillVo">
SELECT
wc.sid AS billSid,
wc.billNo
FROM
wms_old_checkbill wc
JOIN
(SELECT
SUM(wd.loseCount) AS total,
wd.billSid AS billSid
FROM
wms_old_checkbill_detail wd
GROUP BY wd.billSid) AS total_goods
WHERE wc.deptSid = #{deptSid}
AND total_goods.billSid = wc.sid
AND total_goods.total > 0
AND wc.checkState = 2
</select>
</mapper>

69
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillQuery.java

@ -0,0 +1,69 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillQuery.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbill.WmsInventoryCheckbillQuery <br/>
* Description: 库存盘点 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:01 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillQuery implements Query {
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("生成开始日期")
private String createStartTime;
@ApiModelProperty("生成结束日期")
private String createEndTime;
@ApiModelProperty("盘点状态(盘点中1,盘点完成2)")
private String checkState;
@ApiModelProperty("盘点人姓名")
private String createByName;
@ApiModelProperty("监盘人姓名")
private String superviseName;
private String userSid;
private String orgPath;
private String menuUrl;
private String menuSid;
}

898
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillService.java

@ -0,0 +1,898 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
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.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseArea;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaService;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsappendix.WmsAppendix;
import com.yxt.wms.biz.inventory.wmsappendix.WmsAppendixService;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventory;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService;
import com.yxt.wms.biz.inventory.wmsinventoryprofitin.InventoryBillVo;
import com.yxt.wms.biz.inventory.wmsinventoryrecord.WmsInventoryRecordService;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable.*;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.*;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillGoodsDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillGoodsPyDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillPageQuery;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillPageVo;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.HandleBean;
import com.yxt.wms.biz.inventory.wmsoldcheckbillreport.*;
import com.yxt.wms.feign.flowable.flow.BusinessVariables;
import com.yxt.wms.feign.flowable.flow.FlowableFeign;
import com.yxt.wms.feign.flowable.flow.ProcDefEnum;
import com.yxt.wms.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.wms.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.wms.feign.flowable.flow2.FlowFeign;
import com.yxt.wms.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.wms.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.wms.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.wms.feign.message.MessageFeign;
import com.yxt.wms.feign.message.MessageFlowVo;
import com.yxt.wms.feign.message.MessageFlowableQuery;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.wms.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.wms.feign.portal.sysuser.SysUserFeign;
import com.yxt.wms.utils.Rule;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service
public class WmsOldCheckbillService extends MybatisBaseService<WmsOldCheckbillMapper, WmsOldCheckbill> {
@Autowired
private WmsOldCheckbillDetailService wmsOldCheckbillDetailService;
@Autowired
private WmsOldCheckbillReportService wmsOldCheckbillReportService;
@Autowired
private WmsAppendixService wmsAppendixService;
@Autowired
private WmsInventoryService wmsInventoryService;
@Autowired
private WmsInventoryRecordService wmsInventoryRecordService;
@Autowired
private WmsWarehouseRackService wmsWarehouseRackService;
@Autowired
private WmsWarehouseAreaService wmsWarehouseAreaService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
public PagerVo<WmsOldCheckbillVo> listPageVo(PagerQuery<WmsOldCheckbillQuery> pq) {
WmsOldCheckbillQuery query = pq.getParams();
QueryWrapper<WmsOldCheckbill> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuUrl()) || StringUtils.isNotBlank(query.getMenuSid())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("s.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("s.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("wic.createBySid", query.getUserSid());
} else {
PagerVo<WmsOldCheckbillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<WmsOldCheckbillVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("wic.deptName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wic.billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getCheckState())) {
qw.eq("wic.checkState", query.getCheckState());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("wic.createByName", query.getCreateByName());
}
if (StringUtils.isNotBlank(query.getSuperviseName())) {
qw.like("wic.superviseName", query.getSuperviseName());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (wic.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (wic.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.groupBy("wic.sid");
IPage<WmsOldCheckbill> page = PagerUtil.queryToPage(pq);
IPage<WmsOldCheckbillVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<WmsOldCheckbillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<WmsOldCheckbillDetailRackPageListVo> detailRackPageList(PagerQuery<WmsOldCheckbillDetailRackPageListQuery> pq) {
WmsOldCheckbillDetailRackPageListQuery query = pq.getParams();
QueryWrapper<WmsOldCheckbill> qw = new QueryWrapper<>();
qw.eq("billSid", query.getBillSid());
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("warehouseSid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getWarehouseAreaSid())) {
qw.eq("warehouseAreaSid", query.getWarehouseAreaSid());
}
if (StringUtils.isNotBlank(query.getWarehouseRackSid())) {
qw.eq("warehouseRackSid", query.getWarehouseRackSid());
}
qw.groupBy("warehouseRackSid");
IPage<WmsOldCheckbill> page = PagerUtil.queryToPage(pq);
IPage<WmsOldCheckbillDetailRackPageListVo> pagging = baseMapper.detailRackPageList(page, qw);
PagerVo<WmsOldCheckbillDetailRackPageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<WmsOldCheckbillDetailGoodPageListVo> detailGoodPageList(PagerQuery<WmsOldCheckbillDetailGoodPageListQuery> pq) {
WmsOldCheckbillDetailGoodPageListQuery query = pq.getParams();
QueryWrapper<WmsOldCheckbill> qw = new QueryWrapper<>();
qw.eq("billSid", query.getBillSid());
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("warehouseSid", query.getWarehouseSid());
}
if (StringUtils.isNotBlank(query.getWarehouseAreaSid())) {
qw.eq("warehouseAreaSid", query.getWarehouseAreaSid());
}
if (StringUtils.isNotBlank(query.getWarehouseRackSid())) {
qw.eq("warehouseRackSid", query.getWarehouseRackSid());
}
if (StringUtils.isNotBlank(query.getGoodsID())) {
qw.like("goodsID", query.getGoodsID());
}
if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) {
qw.like("goodsSkuTitle", query.getGoodsSkuTitle());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("goodsSkuCode", query.getGoodsSkuCode());
}
IPage<WmsOldCheckbill> page = PagerUtil.queryToPage(pq);
IPage<WmsOldCheckbillDetailGoodPageListVo> pagging = baseMapper.detailGoodPageList(page, qw);
PagerVo<WmsOldCheckbillDetailGoodPageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<WmsOldCheckbillDetailRackGoodPageListVo> detailRackGoodPageList(PagerQuery<WmsOldCheckbillDetailRackGoodPageListQuery> pq) {
WmsOldCheckbillDetailRackGoodPageListQuery query = pq.getParams();
QueryWrapper<WmsOldCheckbill> qw = new QueryWrapper<>();
qw.eq("billSid", query.getBillSid());
qw.eq("warehouseRackSid", query.getWarehouseRackSid());
if (StringUtils.isNotBlank(query.getGoodsID())) {
qw.like("goodsID", query.getGoodsID());
}
if (StringUtils.isNotBlank(query.getGoodsSkuTitle())) {
qw.like("goodsSkuTitle", query.getGoodsSkuTitle());
}
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) {
qw.like("goodsSkuCode", query.getGoodsSkuCode());
}
//移动端查询条件
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("goodsID", query.getName()).or().like("goodsSkuTitle", query.getName()).or().like("goodsSkuCode", query.getName()));
}
IPage<WmsOldCheckbill> page = PagerUtil.queryToPage(pq);
IPage<WmsOldCheckbillDetailRackGoodPageListVo> pagging = baseMapper.detailRackGoodPageList(page, qw);
for (WmsOldCheckbillDetailRackGoodPageListVo record : pagging.getRecords()) {
List<WmsAppendix> wmsAppendices = wmsAppendixService.fetchByLinkSid(record.getSid());
List<WmsOldCheckbillDetailFile> wmsOldCheckbillDetailFiles = new ArrayList<>();
for (WmsAppendix wmsAppendix : wmsAppendices) {
WmsOldCheckbillDetailFile wmsOldCheckbillDetailFile = new WmsOldCheckbillDetailFile();
String url = fileUploadComponent.getUrlPrefix() + wmsAppendix.getFilePath();
wmsOldCheckbillDetailFile.setUrl(url);
wmsOldCheckbillDetailFiles.add(wmsOldCheckbillDetailFile);
}
record.setFileList(wmsOldCheckbillDetailFiles);
}
PagerVo<WmsOldCheckbillDetailRackGoodPageListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveOrUpdateDto(WmsOldCheckbillDto dto) {
ResultBean rb = ResultBean.fireFail();
String checkState = baseMapper.checkState(dto.getDeptSid());
if (!"2".equals(checkState) && StringUtils.isNotBlank(checkState)) {
return rb.setMsg("存在盘点中数据,无法生成新的盘点单");
}
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(dto.getDeptSid()).getData();
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(createOrgSid).getData();
dto.setCreateOrgSid(createOrgSid);
dto.setCreateOrgName(organizationVo.getName());
//生成单据编号
String billNo = "";
String date = DateUtil.format(DateUtil.date(), "yyyyMM");
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(createOrgSid).getData();
billNo = "JJPD" + sysOrganizationVo.getOrgCode() + date;
String i = baseMapper.selectNum(billNo);
if (StringUtils.isNotBlank(i)) {
billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue());
} else {
billNo = Rule.getBillNo(billNo, 0);
}
dto.setBillNo(billNo);
List<WmsInventory> wmsInventories = null;
if ("1".equals(dto.getCheckTypeKey())) {
//查询本部门指定库位下,库存数量大0并且旧件的库存
wmsInventories = wmsInventoryService.selJJByDeptSidAndRackSid(dto.getDeptSid(), dto.getRackSids());
} else if ("2".equals(dto.getCheckTypeKey())) {
//查询本部门下,库存数量大0并且是旧件的库存
wmsInventories = wmsInventoryService.selJJByDeptSid(dto.getDeptSid());
}
if (wmsInventories.size() == 0) {
return rb.setMsg("该库位下没有商品库存信息");
}
String sid = this.insertByDto(dto);
for (WmsInventory wmsInventory : wmsInventories) {
WmsOldCheckbillDetailDto wmsOldCheckbillDetailDto = new WmsOldCheckbillDetailDto();
wmsOldCheckbillDetailDto.setBillSid(sid);
wmsOldCheckbillDetailDto.setGoodsID(wmsInventory.getGoodsID());
wmsOldCheckbillDetailDto.setGoodsSpuSid(wmsInventory.getGoodsSpuSid());
wmsOldCheckbillDetailDto.setGoodsSpuName(wmsInventory.getGoodsSpuName());
wmsOldCheckbillDetailDto.setGoodsSkuSid(wmsInventory.getGoodsSkuSid());
wmsOldCheckbillDetailDto.setGoodsSkuTitle(wmsInventory.getGoodsSkuTitle());
wmsOldCheckbillDetailDto.setGoodsSkuCode(wmsInventory.getGoodsSkuCode());
wmsOldCheckbillDetailDto.setGoodsSkuOwnSpec(wmsInventory.getGoodsSkuOwnSpec());
wmsOldCheckbillDetailDto.setManufacturerSid(wmsInventory.getManufacturerSid());
wmsOldCheckbillDetailDto.setManufacturerName(wmsInventory.getManufacturerName());
wmsOldCheckbillDetailDto.setCost(wmsInventory.getCost());
wmsOldCheckbillDetailDto.setUnit(wmsInventory.getUnit());
wmsOldCheckbillDetailDto.setWarehouseSid(wmsInventory.getWarehouseSid());
wmsOldCheckbillDetailDto.setWarehouseName(wmsInventory.getWarehouseName());
WmsWarehouseRack wmsWarehouseRack = wmsWarehouseRackService.fetchBySid(wmsInventory.getWarehouseRackSid());
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(wmsWarehouseRack.getLocationSid());
wmsOldCheckbillDetailDto.setWarehouseAreaSid(wmsWarehouseArea.getSid());
wmsOldCheckbillDetailDto.setWarehouseArea(wmsWarehouseArea.getAreaName());
wmsOldCheckbillDetailDto.setWarehouseRackSid(wmsInventory.getWarehouseRackSid());
wmsOldCheckbillDetailDto.setWarehouseRackName(wmsWarehouseRack.getRackName());
wmsOldCheckbillDetailDto.setBookCount(wmsInventory.getCount());
wmsOldCheckbillDetailService.insertByDto(wmsOldCheckbillDetailDto);
}
return rb.success().setData(sid);
}
public String insertByDto(WmsOldCheckbillDto dto) {
WmsOldCheckbill entity = new WmsOldCheckbill();
BeanUtil.copyProperties(dto, entity, "id", "sid");
entity.setNodeState("待提交");
baseMapper.insert(entity);
return entity.getSid();
}
public WmsOldCheckbillDetailsVo fetchDetailsVoBySid(String sid) {
WmsOldCheckbill entity = fetchBySid(sid);
WmsOldCheckbillDetailsVo vo = new WmsOldCheckbillDetailsVo();
BeanUtil.copyProperties(entity, vo);
List<WmsOldCheckbillDetailDetailsVo> wmsOldCheckbillDetailDetailsVos = wmsOldCheckbillDetailService.selByMainSid(sid);
vo.setWmsOldCheckbillDetailList(wmsOldCheckbillDetailDetailsVos);
return vo;
}
public ResultBean delAll(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败");
}
delBySids(sids);
for (String sid : sids) {
wmsOldCheckbillDetailService.delByMainSid(sid);
wmsOldCheckbillReportService.delByMainSid(sid);
wmsAppendixService.delByLinkSid(sid);
}
return rb.success();
}
public void createReport(String sid) {
baseMapper.createReport(sid);
WmsOldCheckbillReportDto wmsOldCheckbillReportDto = new WmsOldCheckbillReportDto();
wmsOldCheckbillReportDto.setBillSid(sid);
wmsOldCheckbillReportService.insertByDto(wmsOldCheckbillReportDto);
}
public WmsOldCheckbillReportDetailsVo viewReport(String sid) {
WmsOldCheckbillReportDetailsVo wmsOldCheckbillReportDetailsVo = new WmsOldCheckbillReportDetailsVo();
//表头
WmsOldCheckbill wmsOldCheckbill = fetchBySid(sid);
wmsOldCheckbillReportDetailsVo.setSid(sid);
wmsOldCheckbillReportDetailsVo.setCreateByName(wmsOldCheckbill.getCreateByName());
wmsOldCheckbillReportDetailsVo.setCreateName(wmsOldCheckbill.getCreateByName());
wmsOldCheckbillReportDetailsVo.setDeptName(wmsOldCheckbill.getDeptName());
wmsOldCheckbillReportDetailsVo.setCreateTime(wmsOldCheckbill.getCreateTime());
wmsOldCheckbillReportDetailsVo.setFinances(wmsOldCheckbill.getSuperviseName());
//盘点报告备注
WmsOldCheckbillReport wmsOldCheckbillReport = wmsOldCheckbillReportService.selByBillSid(sid);
wmsOldCheckbillReportDetailsVo.setRemarks(wmsOldCheckbillReport.getRemarks());
//盘点报告PDF路径
wmsOldCheckbillReportDetailsVo.setPdfUrl(wmsOldCheckbillReport.getPdfUrl());
//总体盘点情况
List<WmsOldCheckbillReportSumVo> total = wmsOldCheckbillDetailService.reportSum(sid, "total");
for (WmsOldCheckbillReportSumVo totalSum : total) {
wmsOldCheckbillReportDetailsVo.setYpNum(totalSum.getYpNum());
wmsOldCheckbillReportDetailsVo.setYpMoney(totalSum.getYpMoney());
wmsOldCheckbillReportDetailsVo.setPyNum(totalSum.getPyNum());
wmsOldCheckbillReportDetailsVo.setPyMoney(totalSum.getPyMoney());
wmsOldCheckbillReportDetailsVo.setSpNum(totalSum.getSpNum());
wmsOldCheckbillReportDetailsVo.setSpMoney(totalSum.getSpMoney());
wmsOldCheckbillReportDetailsVo.setPyNum(totalSum.getPyNum());
wmsOldCheckbillReportDetailsVo.setPyMoney(totalSum.getPyMoney());
wmsOldCheckbillReportDetailsVo.setPkNum(totalSum.getPkNum());
wmsOldCheckbillReportDetailsVo.setPkMoney(totalSum.getPkMoney());
wmsOldCheckbillReportDetailsVo.setPsNum(totalSum.getPsNum());
wmsOldCheckbillReportDetailsVo.setPsMoney(totalSum.getPsMoney());
wmsOldCheckbillReportDetailsVo.setVirtualNum(totalSum.getVirtualNum());
wmsOldCheckbillReportDetailsVo.setUnInStorageNum(totalSum.getUnInStorageNum());
}
//仓库盘点情况
List<WmsOldCheckbillReportSumVo> ware = wmsOldCheckbillDetailService.reportSum(sid, "ware");
wmsOldCheckbillReportDetailsVo.setWarehouseStocktakList(ware);
//库区盘点情况
List<WmsOldCheckbillReportSumVo> area = wmsOldCheckbillDetailService.reportSum(sid, "area");
wmsOldCheckbillReportDetailsVo.setArehouseAreaeStocktakList(area);
return wmsOldCheckbillReportDetailsVo;
}
public String createPdf(String sid) {
WmsOldCheckbillReportDetailsVo wmsOldCheckbillReportDetailsVo = viewReport(sid);
Map<String, Object> map = new HashMap<>();
//发起人
map.put("createName", wmsOldCheckbillReportDetailsVo.getCreateByName());
//发起部门
map.put("deptName", wmsOldCheckbillReportDetailsVo.getDeptName());
//发起日期
map.put("createTime", DateUtil.formatDate(wmsOldCheckbillReportDetailsVo.getCreateTime()));
//盘点人
map.put("pdrName", wmsOldCheckbillReportDetailsVo.getCreateByName());
//监盘人
map.put("jprName", wmsOldCheckbillReportDetailsVo.getFinances());
//备注
map.put("remarks", wmsOldCheckbillReportDetailsVo.getRemarks());
//总体应盘数量
map.put("ypsl", wmsOldCheckbillReportDetailsVo.getYpNum());
//总体应盘金额
map.put("ypje", wmsOldCheckbillReportDetailsVo.getYpMoney());
//总体实盘数量
map.put("spsl", wmsOldCheckbillReportDetailsVo.getSpNum());
//总体实盘金额
map.put("spje", wmsOldCheckbillReportDetailsVo.getSpMoney());
//总体盘盈数量
map.put("pysl", wmsOldCheckbillReportDetailsVo.getPyNum());
//总体盘盈金额
map.put("pyje", wmsOldCheckbillReportDetailsVo.getPyMoney());
//总体盘亏数量
map.put("pksl", wmsOldCheckbillReportDetailsVo.getPkNum());
//总体盘亏金额
map.put("pkje", wmsOldCheckbillReportDetailsVo.getPkMoney());
//总体盘损数量
map.put("pssl", wmsOldCheckbillReportDetailsVo.getPsNum());
//总体盘损金额
map.put("psje", wmsOldCheckbillReportDetailsVo.getPsMoney());
//总体虚拟件数量
map.put("xnsl", wmsOldCheckbillReportDetailsVo.getVirtualNum());
//总体未入库数量
map.put("wrksl", wmsOldCheckbillReportDetailsVo.getUnInStorageNum());
List<WmsOldCheckbillReportSumVo> ware = wmsOldCheckbillReportDetailsVo.getWarehouseStocktakList();
for (int i = 0; i < ware.size(); i++) {
WmsOldCheckbillReportSumVo wmsOldCheckbillReportSumVo = ware.get(i);
wmsOldCheckbillReportSumVo.setId(i + 1);
}
map.put("ware", ware);
List<WmsOldCheckbillReportSumVo> area = wmsOldCheckbillReportDetailsVo.getArehouseAreaeStocktakList();
for (int i = 0; i < area.size(); i++) {
WmsOldCheckbillReportSumVo wmsOldCheckbillReportSumVo = area.get(i);
wmsOldCheckbillReportSumVo.setId(i + 1);
}
map.put("area", area);
InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/" + "jjpdbg" + ".ftl");
//生成word文件名
String targetPath = docPdfComponent.getUploadTemplateUrl();
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String typeName = dateStr + seconds + ".doc";
File file = new File(targetPath + "pdbg" + seconds + ".ftl");
File dir = new File(targetPath);
WordConvertUtils.inputStreamToFile(inputStream, file);
WordConvertUtils.creatWord1(map, file, targetPath, typeName, dir);
//新生成的word路径
String wordPath = targetPath + typeName;
//生成出门证文件名
String pdfName = "旧件盘点报告_" + dateStr + seconds + ".pdf";
WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName);
wmsOldCheckbillReportService.updatePdf(sid,pdfName);
return "/template/" + pdfName;
}
public ResultBean submitApply(SubmitOldCheckDto dto) {
ResultBean rb = ResultBean.fireFail();
WmsOldCheckbill wmsOldCheckbill = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, wmsOldCheckbill);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
String businessSid = saveOrUpdateDto(dto).getData();
wmsOldCheckbill = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(wmsOldCheckbill.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.WMSINVENCHECKREPORT.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
wmsOldCheckbill = fetchBySid(businessSid);
//==================================添加线程
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
WmsOldCheckbill finalWmsOldCheckbill = wmsOldCheckbill;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("盘点报告审批");
messageFlowableQuery.setMsgContent(finalWmsOldCheckbill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("盘点报告审批");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(wmsOldCheckbill.getTaskId());
bv.setTaskDefKey(wmsOldCheckbill.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
private int submitBusinessData(SubmitOldCheckDto dto, WmsOldCheckbill wmsOldCheckbill) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (wmsOldCheckbill != null) {
String businessTaskId = wmsOldCheckbill.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
WmsOldCheckbill wmsOldCheckbill = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(wmsOldCheckbill.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setModelId(wmsOldCheckbill.getProcDefId());
if (bv.getTaskId().equals(wmsOldCheckbill.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
wmsOldCheckbill = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(wmsOldCheckbill.getProcDefId());
messageFlowVo.setProcInsId(wmsOldCheckbill.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("盘点报告审批");
messageFlowableQuery.setMsgContent(wmsOldCheckbill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("盘点报告审批");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<OldCheckNodeVo>> getPreviousNodesForReject(OldCheckNodeQuery query) {
ResultBean<List<OldCheckNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
WmsOldCheckbill wmsOldCheckbill = fetchBySid(query.getBusinessSid());
bv.setModelId(wmsOldCheckbill.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<OldCheckNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OldCheckNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<OldCheckNodeVo>> getNextNodesForSubmit(OldCheckNodeQuery query) {
ResultBean<List<OldCheckNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
WmsOldCheckbill wmsOldCheckbill = fetchBySid(query.getBusinessSid());
bv.setModelId(wmsOldCheckbill.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<OldCheckNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), OldCheckNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(OldCheckTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
WmsOldCheckbill wmsOldCheckbill = fetchBySid(businessSid);
if (wmsOldCheckbill == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = wmsOldCheckbill.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
wmsOldCheckbill = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = wmsOldCheckbill.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(wmsOldCheckbill.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("盘点报告审批");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(wmsOldCheckbill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("盘点报告审批");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(OldCheckTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
WmsOldCheckbill wmsOldCheckbill = fetchBySid(query.getBusinessSid());
String businessTaskId = wmsOldCheckbill.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(OldCheckTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
WmsOldCheckbill wmsOldCheckbill = fetchBySid(query.getBusinessSid());
String businessTaskId = wmsOldCheckbill.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(wmsOldCheckbill.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(OldCheckDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
public PagerVo<WmsOldCheckbillPageVo> appDetailRackPageList(PagerQuery<WmsOldCheckbillPageQuery> pq) {
WmsOldCheckbillPageQuery query = pq.getParams();
QueryWrapper<WmsOldCheckbill> qw = new QueryWrapper<>();
//========================================数据授权开始
if (StringUtils.isNotBlank(query.getMenuSid())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("s.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("s.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("s.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("s.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("c.createBySid", query.getUserSid());
} else {
PagerVo<WmsOldCheckbillPageVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<WmsOldCheckbillPageVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("d.warehouseName", query.getName()).or().like("d.warehouseArea", query.getName()).or().like("d.warehouseRackName", query.getName()));
}
qw.eq("c.checkState", '1');
qw.groupBy("d.warehouseRackSid");
IPage<WmsOldCheckbill> page = PagerUtil.queryToPage(pq);
IPage<WmsOldCheckbillPageVo> pagging = baseMapper.appDetailRackPageList(page, qw);
PagerVo<WmsOldCheckbillPageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveInventoryInfo(WmsOldCheckbillGoodsDto dto) {
ResultBean rb = ResultBean.fireFail();
wmsOldCheckbillDetailService.saveInventoryInfo(dto);
return rb.success();
}
public ResultBean<HandleBean> scan(String sid, String content, String houseSid) {
ResultBean rb = ResultBean.fireFail();
if (content.contains("#")) {
return rb.setMsg("请扫描商品码");
}
HandleBean handleBean = wmsOldCheckbillDetailService.scan(sid, content, houseSid);
if (handleBean == null) {
List<WmsInventory> wmsInventories = wmsInventoryService.getListByGoodsID(content).getData();
if (!wmsInventories.isEmpty()) {
for (WmsInventory wmsInventory : wmsInventories) {
WmsWarehouseRack wmsWarehouseRack = wmsWarehouseRackService.fetchBySid(wmsInventory.getWarehouseRackSid());
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(wmsWarehouseRack.getLocationSid());
return rb.setMsg("本商品不属于本库位,属于" + wmsWarehouseArea.getAreaName() + "库区" + wmsWarehouseRack.getRackName() + "库位。");
}
} else {
String billNo = wmsInventoryRecordService.selByGoodsID(content);
if (StringUtils.isBlank(billNo)) {
return rb.setMsg("商品码不正确");
} else {
return rb.setMsg("本商品已在" + billNo + "单据编号中出库。");
}
}
}
return rb.success().setData(handleBean);
}
public ResultBean saveInventoryInfo2(WmsOldCheckbillGoodsPyDto dto) {
ResultBean rb = ResultBean.fireFail();
wmsOldCheckbillDetailService.saveInventoryInfo2(dto);
return rb.success();
}
public void saveReport(String billSid, String remarks) {
wmsOldCheckbillReportService.saveReport(billSid, remarks);
}
public List<InventoryBillVo> selPyByDeptSid(String deptSid) {
return baseMapper.selPyByDeptSid(deptSid);
}
public List<InventoryBillVo> selPkByDeptSid(String deptSid) {
return baseMapper.selPkByDeptSid(deptSid);
}
}

92
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/WmsOldCheckbillVo.java

@ -0,0 +1,92 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbill;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class WmsOldCheckbillVo implements Vo {
private String sid; // sid
@ApiModelProperty("是否生成盘库报告")
private String state;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("生成日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("盘点人")
private String createByName;
@ApiModelProperty("监盘人姓名")
private String superviseName;
@ApiModelProperty("盘点状态(盘点中1,盘点完成2)")
private String checkState;
@ApiModelProperty("应盘数量")
private BigDecimal bookCount;
@ApiModelProperty("应盘金额")
private BigDecimal bookAmount;
@ApiModelProperty("实盘数量")
private BigDecimal realCount;
@ApiModelProperty("实盘金额")
private BigDecimal realAmount;
@ApiModelProperty("未盘数量")
private BigDecimal notCount;
@ApiModelProperty("未盘金额")
private BigDecimal notAmount;
@ApiModelProperty("盘盈数量")
private BigDecimal profitCount;
@ApiModelProperty("盘盈金额")
private BigDecimal profitAmount;
@ApiModelProperty("盘亏数量")
private BigDecimal loseCount;
@ApiModelProperty("盘亏金额")
private BigDecimal loseAmount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount;
@ApiModelProperty("盘损金额")
private BigDecimal lossAmount;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
}

35
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/CompleteOldCheckDto.java

@ -0,0 +1,35 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class CompleteOldCheckDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

23
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckDelegateQuery.java

@ -0,0 +1,23 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class OldCheckDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

18
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckNodeQuery.java

@ -0,0 +1,18 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class OldCheckNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

24
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckNodeVo.java

@ -0,0 +1,24 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class OldCheckNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/OldCheckTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class OldCheckTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

19
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbill/flowable/SubmitOldCheckDto.java

@ -0,0 +1,19 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbill.flowable;
import com.yxt.wms.biz.inventory.wmsoldcheckbill.WmsOldCheckbillDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class SubmitOldCheckDto extends WmsOldCheckbillDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

109
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetail.java

@ -0,0 +1,109 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetail.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetail <br/>
* Description: 库存盘点-明细. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@TableName("wms_old_checkbill_detail")
public class WmsOldCheckbillDetail extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("盘点单sid")
private String billSid; // 盘点单sid
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品spuSid")
private String goodsSpuSid;
@ApiModelProperty("商品spu名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品sku名称")
private String goodsSkuTitle;
@ApiModelProperty("图号")
private String goodsSkuCode;
@ApiModelProperty("规格")
private String goodsSkuOwnSpec;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("成本单价")
private BigDecimal cost; // 成本单价
@ApiModelProperty("单位")
private String unit; // 单位
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("仓库名称")
private String warehouseName; // 仓库名称
@ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid
@ApiModelProperty("库区名称")
private String warehouseArea; // 库区名称
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
@ApiModelProperty("库位名称")
private String warehouseRackName; // 库位名称
@ApiModelProperty("库存数量")
private BigDecimal bookCount; // 库存数量
@ApiModelProperty("实盘数量")
private BigDecimal realCount; // 实盘数量
@ApiModelProperty("盘盈数量")
private BigDecimal profitCount;
@ApiModelProperty("盘亏数量")
private BigDecimal loseCount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount; // 盘损数量
@ApiModelProperty("虚拟件数量")
private BigDecimal vrCount;
@ApiModelProperty("未入库数量")
private BigDecimal notInCount;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
}

108
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailDetailsVo.java

@ -0,0 +1,108 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("盘点单sid")
private String billSid; // 盘点单sid
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品spuSid")
private String goodsSpuSid;
@ApiModelProperty("商品spu名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品sku名称")
private String goodsSkuTitle;
@ApiModelProperty("图号")
private String goodsSkuCode;
@ApiModelProperty("规格")
private String goodsSkuOwnSpec;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("成本单价")
private BigDecimal cost; // 成本单价
@ApiModelProperty("单位")
private String unit; // 单位
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("仓库名称")
private String warehouseName; // 仓库名称
@ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid
@ApiModelProperty("库区名称")
private String warehouseArea; // 库区名称
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
@ApiModelProperty("库位名称")
private String warehouseRackName; // 库位名称
@ApiModelProperty("库存数量")
private BigDecimal bookCount; // 库存数量
@ApiModelProperty("实盘数量")
private BigDecimal realCount; // 实盘数量
@ApiModelProperty("盘盈数量")
private BigDecimal profitCount;
@ApiModelProperty("盘亏数量")
private BigDecimal loseCount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount; // 盘损数量
@ApiModelProperty("虚拟件数量")
private BigDecimal vrCount;
@ApiModelProperty("未入库数量")
private BigDecimal notInCount;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
}

108
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailDto.java

@ -0,0 +1,108 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailDto.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailDto <br/>
* Description: 库存盘点-明细 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailDto implements Dto {
private String sid;
@ApiModelProperty("盘点单sid")
private String billSid; // 盘点单sid
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品spuSid")
private String goodsSpuSid;
@ApiModelProperty("商品spu名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品sku名称")
private String goodsSkuTitle;
@ApiModelProperty("图号")
private String goodsSkuCode;
@ApiModelProperty("规格")
private String goodsSkuOwnSpec;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("成本单价")
private BigDecimal cost; // 成本单价
@ApiModelProperty("单位")
private String unit; // 单位
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("仓库名称")
private String warehouseName; // 仓库名称
@ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid
@ApiModelProperty("库区名称")
private String warehouseArea; // 库区名称
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
@ApiModelProperty("库位名称")
private String warehouseRackName; // 库位名称
@ApiModelProperty("库存数量")
private BigDecimal bookCount; // 库存数量
@ApiModelProperty("实盘数量")
private BigDecimal realCount; // 实盘数量
@ApiModelProperty("盘盈数量")
private BigDecimal profitCount;
@ApiModelProperty("盘亏数量")
private BigDecimal loseCount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount; // 盘损数量
@ApiModelProperty("虚拟件数量")
private BigDecimal vrCount;
@ApiModelProperty("未入库数量")
private BigDecimal notInCount;
@ApiModelProperty("供应商sid")
private String supplierSid;
@ApiModelProperty("供应商名称")
private String supplierName;
}

35
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailFile.java

@ -0,0 +1,35 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
@Data
public class WmsOldCheckbillDetailFile implements Vo {
private String url;
}

64
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailGoodPageListQuery.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailGoodPageListQuery implements Query {
@ApiModelProperty("盘点sid")
private String billSid;
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ApiModelProperty("商品名称")
private String goodsSkuTitle; // 商品名称
@ApiModelProperty("图号")
private String goodsSkuCode; // 图号
}

94
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailGoodPageListVo.java

@ -0,0 +1,94 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailGoodPageListVo implements Vo {
private String sid; // sid
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ApiModelProperty("商品名称")
private String goodsSkuTitle; // 商品名称
@ApiModelProperty("图号")
private String goodsSkuCode; // 图号
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库区名称")
private String warehouseArea;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("成本单价")
private BigDecimal cost;
@ApiModelProperty("应盘数量")
private BigDecimal bookCount;
@ApiModelProperty("应盘金额")
private BigDecimal bookAmount;
@ApiModelProperty("实盘数量")
private BigDecimal realCount;
@ApiModelProperty("实盘金额")
private BigDecimal realAmount;
@ApiModelProperty("状态")
private String state;
@ApiModelProperty("盈亏数量")
private BigDecimal profitAndLoseCount;
@ApiModelProperty("盈亏金额")
private BigDecimal profitAndLoseAmount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount;
@ApiModelProperty("盘损金额")
private BigDecimal lossAmount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("附件")
private List<WmsOldCheckbillDetailFile> fileList = new ArrayList<>();
}

66
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailMapper.java

@ -0,0 +1,66 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.wms.biz.inventory.wmsinventoryprofitindetail.WmsInventoryProfitinDetailDto;
import com.yxt.wms.biz.inventory.wmsinventoryprofitoutdetail.WmsInventoryProfitoutDetailDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.HandleBean;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillGoodsDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportSumVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.List;
@Mapper
public interface WmsOldCheckbillDetailMapper extends BaseMapper<WmsOldCheckbillDetail> {
@Delete("delete from wms_old_checkbill_detail where billSid = #{dtoSid}")
void delByMainSid(String dtoSid);
List<WmsOldCheckbillDetailDetailsVo> selByMainSid(String billSid);
WmsOldCheckbillReportSumVo reportSumTotal(String billSid);
List<WmsOldCheckbillReportSumVo> reportSumWare(String billSid);
List<WmsOldCheckbillReportSumVo> reportSumArea(String billSid);
void saveInventoryInfoZC(@Param("dto") WmsOldCheckbillGoodsDto dto, @Param("num") String num);
void saveInventoryInfoPY(@Param("dto") WmsOldCheckbillGoodsDto dto, @Param("pyCount") BigDecimal pyCount);
void saveInventoryInfoPK(@Param("dto") WmsOldCheckbillGoodsDto dto, @Param("pkCount") BigDecimal pkCount);
HandleBean scan(@Param("sid") String sid, @Param("content") String content, @Param("houseSid") String houseSid);
List<WmsInventoryProfitinDetailDto> sourceBillBySid(String sid);
List<WmsInventoryProfitoutDetailDto> sourceBillPkBySid(String sid);
}

172
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailMapper.xml

@ -0,0 +1,172 @@
<?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.wmsoldcheckbilldetail.WmsOldCheckbillDetailMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selByMainSid"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.WmsOldCheckbillDetailDetailsVo">
SELECT
wicd.*,
wicd.goodsModel as carModel,
wicd.goodsSid as goodsSpuSid,
wicd.goodsName as goodsSpuName,
wicd.goodsCode as goodsSkuCode
FROM
wms_old_checkbill_detail wicd
LEFT JOIN wms_inventory wi
ON wicd.inventorySid = wi.`sid`
WHERE billSid = #{billSid}
</select>
<select id="reportSumTotal"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportSumVo">
SELECT
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount * cost) AS psMoney,
SUM(vrCount) AS virtualNum,
SUM(notInCount) AS unInStorageNum
FROM
wms_old_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}
GROUP BY wicd.billSid
</select>
<select id="reportSumWare"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportSumVo">
SELECT
wicd.warehouseName,
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount * cost) AS psMoney,
SUM(vrCount) AS virtualNum,
SUM(vrCount * cost) AS virtualMoney,
SUM(notInCount) AS unInStorageNum,
SUM(notInCount * cost) AS unInStorageMoney
FROM
wms_old_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}
GROUP BY wicd.warehouseSid
</select>
<select id="reportSumArea"
resultType="com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportSumVo">
SELECT
CONCAT(
wicd.warehouseName,
'-',
wicd.warehouseArea
) AS warehouseAreaeName,
SUM(wicd.bookCount) AS ypNum,
SUM(wicd.bookCount * cost) AS ypMoney,
SUM(wicd.realCount) AS spNum,
SUM(wicd.realCount * cost) AS spMoney,
SUM(wicd.profitCount) AS pyNum,
SUM(wicd.profitCount * cost) AS pyMoney,
SUM(wicd.loseCount) AS pkNum,
SUM(wicd.loseCount * cost) AS pkMoney,
SUM(lossCount) AS psNum,
SUM(lossCount * cost) AS psMoney,
SUM(vrCount) AS virtualNum,
SUM(vrCount * cost) AS virtualMoney,
SUM(notInCount) AS unInStorageNum,
SUM(notInCount * cost) AS unInStorageMoney
FROM
wms_old_checkbill_detail AS wicd
WHERE wicd.billSid = #{billSid}
GROUP BY wicd.warehouseAreaSid
</select>
<update id="saveInventoryInfoZC">
update wms_old_checkbill_detail set lossCount = #{dto.badNum},realCount = #{dto.num},profitCount = 0,loseCount = 0,remarks = #{dto.remarks},state = 2 where sid = #{dto.sid}
</update>
<update id="saveInventoryInfoPY">
update wms_old_checkbill_detail set lossCount = #{dto.badNum},realCount = #{dto.num},profitCount = #{pyCount},loseCount = 0,remarks = #{dto.remarks},state = 3 where sid = #{dto.sid}
</update>
<update id="saveInventoryInfoPK">
update wms_old_checkbill_detail set lossCount = #{dto.badNum},realCount = #{dto.num},profitCount = 0,loseCount = #{pkCount},remarks = #{dto.remarks},state = 4 where sid = #{dto.sid}
</update>
<select id="scan" resultType="com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.HandleBean">
SELECT
lossCount AS badNum,
goodsID,
goodsSkuTitle AS goodsName,
goodsSkuCode,
bookCount AS lockNum,
realCount AS num,
remarks,
sid,
unit
FROM
wms_old_checkbill_detail
WHERE billSid = #{sid}
AND goodsID = #{content}
AND warehouseRackSid = #{houseSid}
</select>
<select id="sourceBillBySid" resultType="com.yxt.wms.biz.inventory.wmsinventoryprofitindetail.WmsInventoryProfitinDetailDto">
SELECT
goodsSpuSid AS goodsSid,
goodsSpuName,
goodsSkuSid,
goodsSkuTitle AS goodsName,
goodsSkuCode AS goodsCode,
goodsSkuOwnSpec AS goodsSpec,
manufacturerSid,
manufacturerName,
unit,
profitCount AS pyNum,
supplierSid,
supplierName,
profitCount AS inStorageNum
FROM
wms_old_checkbill_detail
WHERE billSid = #{sid}
AND profitCount > 0
</select>
<select id="sourceBillPkBySid"
resultType="com.yxt.wms.biz.inventory.wmsinventoryprofitoutdetail.WmsInventoryProfitoutDetailDto">
SELECT
d.goodsID,
d.goodsSpuSid AS goodsSid,
d.goodsSpuName,
d.goodsSkuSid,
d.goodsSkuTitle AS goodsName,
d.goodsSkuCode AS goodsCode,
d.goodsSkuOwnSpec AS goodsSpec,
d.manufacturerSid,
d.manufacturerName,
d.unit,
d.loseCount AS pKNum,
d.warehouseSid,
d.warehouseName,
d.warehouseRackSid,
d.warehouseRackName,
d.loseCount AS outStorageNum,
w.cost AS inStoragePrice
FROM
wms_old_checkbill_detail d
LEFT JOIN wms_inventory w
ON d.goodsID = w.goodsID
WHERE billSid = #{sid}
AND loseCount > 0
</select>
</mapper>

65
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackGoodPageListQuery.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailRackGoodPageListQuery implements Query {
@ApiModelProperty("盘点sid")
private String billSid;
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ApiModelProperty("商品名称")
private String goodsSkuTitle; // 商品名称
@ApiModelProperty("图号")
private String goodsSkuCode; // 图号
/*
* 移动端查询条件
* */
private String name;
}

94
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackGoodPageListVo.java

@ -0,0 +1,94 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailRackGoodPageListVo implements Vo {
private String sid; // sid
@ApiModelProperty("商品ID")
private String goodsID; // 商品ID
@ApiModelProperty("商品名称")
private String goodsSkuTitle; // 商品名称
@ApiModelProperty("图号")
private String goodsSkuCode; // 图号
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库区名称")
private String warehouseArea;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("成本单价")
private BigDecimal cost;
@ApiModelProperty("应盘数量")
private BigDecimal bookCount;
@ApiModelProperty("应盘金额")
private BigDecimal bookAmount;
@ApiModelProperty("实盘数量")
private BigDecimal realCount;
@ApiModelProperty("实盘金额")
private BigDecimal realAmount;
@ApiModelProperty("状态")
private String state;
@ApiModelProperty("盈亏数量")
private BigDecimal profitAndLoseCount;
@ApiModelProperty("盈亏金额")
private BigDecimal profitAndLoseAmount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount;
@ApiModelProperty("盘损金额")
private BigDecimal lossAmount;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("附件")
private List<WmsOldCheckbillDetailFile> fileList = new ArrayList<>();
}

66
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackPageListQuery.java

@ -0,0 +1,66 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailRackPageListQuery implements Query {
@ApiModelProperty("盘点sid")
private String billSid;
@ApiModelProperty("仓库sid")
private String warehouseSid; // 仓库sid
@ApiModelProperty("库区sid")
private String warehouseAreaSid; // 库区sid
@ApiModelProperty("库位sid")
private String warehouseRackSid; // 库位sid
/*
* 移动端查询条件
* */
private String userSid;
private String orgPath;
private String menuSid;
private String names;
}

86
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailRackPageListVo.java

@ -0,0 +1,86 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailVo <br/>
* Description: 库存盘点-明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillDetailRackPageListVo implements Vo {
private String billSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库区名称")
private String warehouseArea;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位名称")
private String warehouseRackName;
@ApiModelProperty("应盘数量")
private BigDecimal bookCount;
@ApiModelProperty("应盘金额")
private BigDecimal bookAmount;
@ApiModelProperty("实盘数量")
private BigDecimal realCount;
@ApiModelProperty("实盘金额")
private BigDecimal realAmount;
@ApiModelProperty("未盘数量")
private BigDecimal notCount;
@ApiModelProperty("未盘金额")
private BigDecimal notAmount;
@ApiModelProperty("盘盈数量")
private BigDecimal profitCount;
@ApiModelProperty("盘盈金额")
private BigDecimal profitAmount;
@ApiModelProperty("盘亏数量")
private BigDecimal loseCount;
@ApiModelProperty("盘亏金额")
private BigDecimal loseAmount;
@ApiModelProperty("盘损数量")
private BigDecimal lossCount;
@ApiModelProperty("盘损金额")
private BigDecimal lossAmount;
}

191
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/WmsOldCheckbillDetailService.java

@ -0,0 +1,191 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseArea;
import com.yxt.wms.biz.base.wmswarehousearea.WmsWarehouseAreaService;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfo;
import com.yxt.wms.biz.base.wmswarehouseinfo.WmsWarehouseInfoService;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsappendix.WmsAppendix;
import com.yxt.wms.biz.inventory.wmsappendix.WmsAppendixService;
import com.yxt.wms.biz.inventory.wmsappendix.WmsFileEnum;
import com.yxt.wms.biz.inventory.wmsinventorycheckbillreport.WmsInventoryCheckbillReportSumVo;
import com.yxt.wms.biz.inventory.wmsinventoryprofitindetail.WmsInventoryProfitinDetailDto;
import com.yxt.wms.biz.inventory.wmsinventoryprofitoutdetail.WmsInventoryProfitoutDetailDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.HandleBean;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillGoodsDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app.WmsOldCheckbillGoodsPyDto;
import com.yxt.wms.biz.inventory.wmsoldcheckbillreport.WmsOldCheckbillReportSumVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
* Project: yxt-wms(仓储) <br/>
* File: WmsInventoryCheckbillDetailService.java <br/>
* Class: com.yxt.wms.biz.wmsinventorycheckbilldetail.WmsInventoryCheckbillDetailService <br/>
* Description: 库存盘点-明细 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-22 09:25:02 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class WmsOldCheckbillDetailService extends MybatisBaseService<WmsOldCheckbillDetailMapper, WmsOldCheckbillDetail> {
@Autowired
private WmsAppendixService wmsAppendixService;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private WmsWarehouseRackService wmsWarehouseRackService;
@Autowired
private WmsWarehouseAreaService wmsWarehouseAreaService;
@Autowired
private WmsWarehouseInfoService wmsWarehouseInfoService;
public void insertByDto(WmsOldCheckbillDetailDto dto) {
WmsOldCheckbillDetail entity = new WmsOldCheckbillDetail();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public WmsOldCheckbillDetailDetailsVo fetchDetailsVoBySid(String sid) {
WmsOldCheckbillDetail entity = fetchBySid(sid);
WmsOldCheckbillDetailDetailsVo vo = new WmsOldCheckbillDetailDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void delByMainSid(String dtoSid) {
baseMapper.delByMainSid(dtoSid);
}
public List<WmsOldCheckbillDetailDetailsVo> selByMainSid(String billSid) {
return baseMapper.selByMainSid(billSid);
}
public List<WmsOldCheckbillReportSumVo> reportSum(String sid, String sumType) {
List<WmsOldCheckbillReportSumVo> wmsOldCheckbillReportSumVos = new ArrayList<>();
if ("total".equals(sumType)) {
WmsOldCheckbillReportSumVo wmsOldCheckbillReportSumVo = baseMapper.reportSumTotal(sid);
wmsOldCheckbillReportSumVos.add(wmsOldCheckbillReportSumVo);
} else if ("ware".equals(sumType)) {
wmsOldCheckbillReportSumVos = baseMapper.reportSumWare(sid);
} else if ("area".equals(sumType)) {
wmsOldCheckbillReportSumVos = baseMapper.reportSumArea(sid);
}
return wmsOldCheckbillReportSumVos;
}
public void saveInventoryInfo(WmsOldCheckbillGoodsDto dto) {
int i = new BigDecimal(dto.getLockNum()).compareTo(new BigDecimal(dto.getNum()));
if (i < 0) {//盘盈
BigDecimal pyCount = new BigDecimal(dto.getNum()).subtract(new BigDecimal(dto.getLockNum()));
baseMapper.saveInventoryInfoPY(dto, pyCount);
} else if (i > 0) {//盘亏
BigDecimal pkCount = new BigDecimal(dto.getLockNum()).subtract(new BigDecimal(dto.getNum()));
baseMapper.saveInventoryInfoPK(dto, pkCount);
} else {
baseMapper.saveInventoryInfoZC(dto, dto.getNum());
}
List<String> files = dto.getFiles();
wmsAppendixService.delByLinkSid(dto.getSid());
for (String file : files) {
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
WmsAppendix wmsAppendix = new WmsAppendix();
wmsAppendix.setLinkSid(dto.getSid());
wmsAppendix.setAttachType(WmsFileEnum.WMSINVENTORYCHECKBILLDETAIL.getAttachType());
wmsAppendix.setFilePath(filePath);
wmsAppendixService.save(wmsAppendix);
}
}
public HandleBean scan(String sid, String content, String houseSid) {
return baseMapper.scan(sid, content, houseSid);
}
public void saveInventoryInfo2(WmsOldCheckbillGoodsPyDto dto) {
WmsOldCheckbillDetail wmsOldCheckbillDetail = new WmsOldCheckbillDetail();
wmsOldCheckbillDetail.setState(3);
wmsOldCheckbillDetail.setBillSid(dto.getPanDianSid());
wmsOldCheckbillDetail.setGoodsSpuSid(dto.getGoodsSid());
wmsOldCheckbillDetail.setGoodsSpuName(dto.getGoodsSpuName());
wmsOldCheckbillDetail.setGoodsSkuSid(dto.getGoodsSkuSid());
wmsOldCheckbillDetail.setGoodsSkuTitle(dto.getGoodsName());
wmsOldCheckbillDetail.setGoodsSkuCode(dto.getGoodsSkuCode());
wmsOldCheckbillDetail.setGoodsSkuOwnSpec(dto.getGoodsSkuOwnSpec());
wmsOldCheckbillDetail.setManufacturerSid(dto.getManufacturerSid());
wmsOldCheckbillDetail.setManufacturerName(dto.getManufacturerName());
wmsOldCheckbillDetail.setUnit(dto.getUnit());
WmsWarehouseRack wmsWarehouseRack = wmsWarehouseRackService.fetchBySid(dto.getHouseSid());
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(wmsWarehouseRack.getLocationSid());
WmsWarehouseInfo wmsWarehouseInfo = wmsWarehouseInfoService.fetchBySid(wmsWarehouseArea.getWarehouseSid());
wmsOldCheckbillDetail.setWarehouseSid(wmsWarehouseInfo.getSid());
wmsOldCheckbillDetail.setWarehouseName(wmsWarehouseInfo.getWarehouseName());
wmsOldCheckbillDetail.setWarehouseAreaSid(wmsWarehouseArea.getSid());
wmsOldCheckbillDetail.setWarehouseArea(wmsWarehouseArea.getAreaName());
wmsOldCheckbillDetail.setWarehouseRackSid(wmsWarehouseRack.getSid());
wmsOldCheckbillDetail.setWarehouseRackName(wmsWarehouseRack.getRackName());
wmsOldCheckbillDetail.setSupplierSid(dto.getProviderSid());
wmsOldCheckbillDetail.setSupplierName(dto.getProvider());
wmsOldCheckbillDetail.setBookCount(new BigDecimal("0"));
wmsOldCheckbillDetail.setRealCount(new BigDecimal(dto.getNum()));
wmsOldCheckbillDetail.setLossCount(new BigDecimal(dto.getBadNum()));
wmsOldCheckbillDetail.setProfitCount(new BigDecimal(dto.getNum()));
wmsOldCheckbillDetail.setLoseCount(new BigDecimal("0"));
wmsOldCheckbillDetail.setRemarks(dto.getRemarks());
baseMapper.insert(wmsOldCheckbillDetail);
List<String> files = dto.getFiles();
for (String file : files) {
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
WmsAppendix wmsAppendix = new WmsAppendix();
wmsAppendix.setLinkSid(wmsOldCheckbillDetail.getSid());
wmsAppendix.setAttachType(WmsFileEnum.WMSINVENTORYCHECKBILLDETAIL.getAttachType());
wmsAppendix.setFilePath(filePath);
wmsAppendixService.save(wmsAppendix);
}
}
public List<WmsInventoryProfitinDetailDto> sourceBillBySid(String sid) {
return baseMapper.sourceBillBySid(sid);
}
public List<WmsInventoryProfitoutDetailDto> sourceBillPkBySid(String sid) {
return baseMapper.sourceBillPkBySid(sid);
}
}

44
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/HandleBean.java

@ -0,0 +1,44 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app;
import lombok.Data;
import java.util.List;
@Data
public class HandleBean {
/**
* 损坏数量默认 0
*/
private String badNum;
private List<String> files;
/**
* 商品ID
*/
private String goodsID;
/**
* 商品名称
*/
private String goodsName;
/**
* 图号
*/
private String goodsSkuCode;
/**
* 本库位库存
*/
private String lockNum;
/**
* 确认数量/数量赋值为库存数量
*/
private String num;
private String remarks;
/**
* 商品记录sid
*/
private String sid;
/**
* 单位
*/
private String unit;
}

35
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillGoodsDto.java

@ -0,0 +1,35 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
import java.util.List;
@Data
public class WmsOldCheckbillGoodsDto implements Dto {
/**
* 损坏数量
*/
private String badNum;
/**
* 附件
*/
private List<String> files;
/**
* 确认数量/数量
*/
private String num;
/**
* 库存数量
*/
private String lockNum;
/**
* 备注
*/
private String remarks;
/**
* 商品记录sid
*/
private String sid;
}

66
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillGoodsPyDto.java

@ -0,0 +1,66 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
import java.util.List;
@Data
public class WmsOldCheckbillGoodsPyDto implements Dto {
/**
* 损坏数量
*/
private String badNum;
/**
* 附件
*/
private List<String> files;
/**
* 确认数量/数量
*/
private String num;
/**
* 库存数量
*/
private String lockNum;
/**
* 备注
*/
private String remarks;
/**
* 商品名称
*/
private String goodsName;
/**
* 商品sid
*/
private String goodsSid;
/**
* 图号
*/
private String goodsSkuCode;
/**
* 库位sid
*/
private String houseSid;
/**
* 盘点单sid
*/
private String panDianSid;
/**
* 供应商
*/
private String provider;
private String providerSid;
/**
* 单位
*/
private String unit;
private String goodsSkuSid;
private String goodsSpuName;
private String goodsSkuOwnSpec;
private String manufacturerSid;
private String manufacturerName;
}

19
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillPageQuery.java

@ -0,0 +1,19 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app;
import com.yxt.common.core.query.Query;
import lombok.Data;
@Data
public class WmsOldCheckbillPageQuery implements Query {
private String menuSid;
/**
* 仓库/库区/库位
*/
private String name;
/**
* 组织机构sid
*/
private String orgPath;
private String userSid;
}

30
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbilldetail/app/WmsOldCheckbillPageVo.java

@ -0,0 +1,30 @@
package com.yxt.wms.biz.inventory.wmsoldcheckbilldetail.app;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class WmsOldCheckbillPageVo implements Vo {
@ApiModelProperty("盘点单sid")
private String sid;
@ApiModelProperty("库位sid")
private String houseSid;
@ApiModelProperty("仓库-库区-库位")
private String title;
@ApiModelProperty("应盘数量")
private String totalNumber;
@ApiModelProperty("未盘数量")
private String surplusNumber;
@ApiModelProperty("盘亏数量")
private String lossNumber;
@ApiModelProperty("盘损数量")
private String damageNumber;
@ApiModelProperty("盘盈数量")
private String profitNumber;
@ApiModelProperty("实盘数量")
private String actualNumber;
@ApiModelProperty("是否显示按钮")
private Boolean showBtn = true;
}

57
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReport.java

@ -0,0 +1,57 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(盘点报告) <br/>
* File: WmsInventoryCheckbillReport.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbillreport.WmsInventoryCheckbillReport <br/>
* Description: 盘点报告. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-19 09:52:51 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@TableName("wms_old_checkbill_report")
public class WmsOldCheckbillReport extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("盘点单sid")
private String billSid; // 盘点单sid
@ApiModelProperty("pdf路径")
private String pdfUrl; // pdf路径
}

105
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportDetailsVo.java

@ -0,0 +1,105 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Project: yxt-wms(盘点报告) <br/>
* File: WmsInventoryCheckbillReportVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbillreport.WmsInventoryCheckbillReportVo <br/>
* Description: 盘点报告 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-19 09:52:51 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillReportDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("生成日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("盘点人")
private String createName;
@ApiModelProperty("监盘人姓名")
private String finances;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("pdf路径")
private String pdfUrl;
//总体盘点情况
@ApiModelProperty("应盘数量")
private BigDecimal ypNum;
@ApiModelProperty("应盘金额")
private BigDecimal ypMoney;
@ApiModelProperty("实盘数量")
private BigDecimal spNum;
@ApiModelProperty("实盘金额")
private BigDecimal spMoney;
@ApiModelProperty("盘盈数量")
private BigDecimal pyNum;
@ApiModelProperty("盘盈金额")
private BigDecimal pyMoney;
@ApiModelProperty("盘亏数量")
private BigDecimal pkNum;
@ApiModelProperty("盘亏金额")
private BigDecimal pkMoney;
@ApiModelProperty("盘损数量")
private BigDecimal psNum;
@ApiModelProperty("盘损金额")
private BigDecimal psMoney;
@ApiModelProperty("虚拟件数量")
private BigDecimal virtualNum;
@ApiModelProperty("未入库数量")
private BigDecimal unInStorageNum;
//仓库盘点情况
List<WmsOldCheckbillReportSumVo> warehouseStocktakList = new ArrayList<>();
//库区盘点情况
List<WmsOldCheckbillReportSumVo> arehouseAreaeStocktakList = new ArrayList<>();
}

57
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportDto.java

@ -0,0 +1,57 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-wms(盘点报告) <br/>
* File: WmsInventoryCheckbillReportDto.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbillreport.WmsInventoryCheckbillReportDto <br/>
* Description: 盘点报告 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-19 09:52:51 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillReportDto implements Dto {
private String sid; // sid
@ApiModelProperty("盘点单sid")
private String billSid; // 盘点单sid
@ApiModelProperty("pdf路径")
private String pdfUrl; // pdf路径
}

45
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportMapper.java

@ -0,0 +1,45 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.*;
@Mapper
public interface WmsOldCheckbillReportMapper extends BaseMapper<WmsOldCheckbillReport> {
@Delete("delete from wms_old_checkbill_report where billSid = #{billSid}")
void delByMainSid(String billSid);
@Select("select * from wms_old_checkbill_report where billSid = #{billSid}")
WmsOldCheckbillReport selByBillSid(String billSid);
@Update("update wms_old_checkbill_report set remarks = #{remarks} where billSid = #{billSid}")
void saveReport(@Param("billSid") String billSid,@Param("remarks") String remarks);
@Update("update wms_old_checkbill_report set pdfUrl = #{pdfUrl} where billSid = #{billSid}")
void updatePdf(@Param("billSid") String billSid,@Param("pdfUrl") String pdfUrl);
}

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportMapper.xml

@ -0,0 +1,6 @@
<?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.wmsoldcheckbillreport.WmsOldCheckbillReportMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
</mapper>

63
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportService.java

@ -0,0 +1,63 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
@Service
public class WmsOldCheckbillReportService extends MybatisBaseService<WmsOldCheckbillReportMapper, WmsOldCheckbillReport> {
public void insertByDto(WmsOldCheckbillReportDto dto){
WmsOldCheckbillReport entity = new WmsOldCheckbillReport();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public WmsOldCheckbillReportDetailsVo fetchDetailsVoBySid(String sid){
WmsOldCheckbillReport entity = fetchBySid(sid);
WmsOldCheckbillReportDetailsVo vo = new WmsOldCheckbillReportDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public void delByMainSid(String billSid) {
baseMapper.delByMainSid(billSid);
}
public WmsOldCheckbillReport selByBillSid(String billSid) {
return baseMapper.selByBillSid(billSid);
}
public void saveReport(String billSid, String remarks) {
baseMapper.saveReport(billSid,remarks);
}
public void updatePdf(String billSid, String pdfUrl) {
baseMapper.updatePdf(billSid,pdfUrl);
}
}

90
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsoldcheckbillreport/WmsOldCheckbillReportSumVo.java

@ -0,0 +1,90 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsoldcheckbillreport;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: yxt-wms(盘点报告) <br/>
* File: WmsInventoryCheckbillReportVo.java <br/>
* Class: com.yxt.wms.api.wmsinventorycheckbillreport.WmsInventoryCheckbillReportVo <br/>
* Description: 盘点报告 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-07-19 09:52:51 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
public class WmsOldCheckbillReportSumVo implements Vo {
/*
* 盘点报告序号
* */
@ApiModelProperty("序号")
private Integer id;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("仓库-库区")
private String warehouseAreaeName;
@ApiModelProperty("应盘数量")
private BigDecimal ypNum;
@ApiModelProperty("应盘金额")
private BigDecimal ypMoney;
@ApiModelProperty("实盘数量")
private BigDecimal spNum;
@ApiModelProperty("实盘金额")
private BigDecimal spMoney;
@ApiModelProperty("盘盈数量")
private BigDecimal pyNum;
@ApiModelProperty("盘盈金额")
private BigDecimal pyMoney;
@ApiModelProperty("盘亏数量")
private BigDecimal pkNum;
@ApiModelProperty("盘亏金额")
private BigDecimal pkMoney;
@ApiModelProperty("盘损数量")
private BigDecimal psNum;
@ApiModelProperty("盘损金额")
private BigDecimal psMoney;
@ApiModelProperty("虚拟件数量")
private BigDecimal virtualNum;
@ApiModelProperty("虚拟件金额")
private BigDecimal virtualMoney;
@ApiModelProperty("未入库数量")
private BigDecimal unInStorageNum;
@ApiModelProperty("未入库金额")
private BigDecimal unInStorageMoney;
}

4959
yxt-wms-biz/src/main/resources/ftl/jjpdbg.ftl

File diff suppressed because it is too large
Loading…
Cancel
Save