Browse Source

Merge remote-tracking branch 'origin/master'

master
ligaode 2 months ago
parent
commit
0946a980cd
  1. 9
      doc/databases/统计报表更新.sql
  2. 29
      yxt-as-ui/src/api/storage/upShelf.js
  3. 2
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  4. 24
      yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue
  5. 23
      yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java
  6. 4
      yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDetailDto.java
  7. 1
      yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java
  8. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsReceiptBillRest.java
  9. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java
  10. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml
  11. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java
  12. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsDetailsVo.java
  13. 6
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailDto.java
  14. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.java
  15. 21
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.xml
  16. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailService.java
  17. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.java
  18. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml
  19. 128
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

9
doc/databases/统计报表更新.sql

@ -313,6 +313,11 @@ BEGIN
WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE(); WHERE DATE_FORMAT(createTime, '%Y-%m-%d') = CURDATE();
-- 销售订单-待交车累计(销售订单已办结且库存状态为库存和在途的) -- 销售订单-待交车累计(销售订单已办结且库存状态为库存和在途的)
/* --待交车累计总订单台数统计规则:
1.- 2.
3.
4.+退
=1+2+3-4*/
/* UPDATE daily_report r /* UPDATE daily_report r
INNER JOIN (select count(bv.id) as scount, bv.useOrgSid, bv.modelSid, bv.modelConfigSid, bo.contractNo INNER JOIN (select count(bv.id) as scount, bv.useOrgSid, bv.modelSid, bv.modelConfigSid, bo.contractNo
from anrui_base.base_vehicle bv from anrui_base.base_vehicle bv
@ -352,7 +357,7 @@ BEGIN
and bo.useOrgSid = a.useOrgSid and bo.useOrgSid = a.useOrgSid
and bm.modelSid = a.modelSid and bm.modelSid = a.modelSid
and bm.modelConfigSid = a.modelConfigSid and bm.modelConfigSid = a.modelConfigSid
and bo.contractNo = a.contractNo) as ssscount1, and bo.contractNo = a.contractNo and (bov.linkSid != '' or bov.linkSid != null)) as ssscount1,
(SELECT count(bov.id) AS scount (SELECT count(bov.id) AS scount
FROM anrui_base.base_vehicle bv FROM anrui_base.base_vehicle bv
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bov ON bov.linkSid = bv.sid LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bov ON bov.linkSid = bv.sid
@ -444,7 +449,7 @@ BEGIN
d.modelSid, d.modelSid,
d.modelConfigSid, d.modelConfigSid,
d.contractNo d.contractNo
) a) b) c ) a) b ) c
group by c.useOrgSid, c.modelSid, c.modelConfigSid group by c.useOrgSid, c.modelSid, c.modelConfigSid
) AS s ON r.useOrgSid = s.useOrgSid ) AS s ON r.useOrgSid = s.useOrgSid
AND r.vehModelSid = s.modelSid AND r.vehModelSid = s.modelSid

29
yxt-as-ui/src/api/storage/upShelf.js

@ -1,37 +1,39 @@
import request from '@/utils/request' import request from '@/utils/request'
export default { export default {
// 查询分页列表 // 查询分页列表
listPage: function(params) { listPage: function(params) {
return request({ return request({
url: '/wms/apiadmin/WmsShelfBill/listPage', url: '/wms/apiadmin/WmsShelfBill/listPage',
method: 'post', method: 'post',
data: params, data: params,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
}, },
// 详情回显
// 初始化
init: function(data) { init: function(data) {
return request({ return request({
url: '/wms/apiadmin/WmsShelfBill/details?sid='+data, url: '/wms/apiadmin/WmsShelfBill/details?sid=' + data,
method: 'get' method: 'get'
}); })
},
// 初始化
getInit: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/getInit',
method: 'get',
params: data
})
}, },
// 新增、保存 // 新增、保存
save: function(data) { save: function(data) {
return request({ return request({
url: '/wms/apiadmin/WmsShelfBill/saveOrUpdate', url: '/wms/apiadmin/WmsShelfBill/saveOrUpdate',
method: 'post', method: 'post',
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}); })
}, },
deleteBySids: function(data) { deleteBySids: function(data) {
return request({ return request({
url: '/wms/apiadmin/WmsShelfBill/delBySids', url: '/wms/apiadmin/WmsShelfBill/delBySids',
@ -39,6 +41,5 @@ export default {
data: data, data: data,
headers: { 'Content-Type': 'application/json' } headers: { 'Content-Type': 'application/json' }
}) })
}, }
} }

2
yxt-as-ui/src/views/storage/receivingGoods/index.vue

@ -382,7 +382,7 @@ export default {
return return
} }
this.viewState = 5 this.viewState = 5
this.$refs['upShelfAdd'].showEdit(this.selectionList[0]) this.$refs['upShelfAdd'].showEdit({ sid: this.selectionList[0].sid })
}, },
toEdit(row) { toEdit(row) {
this.viewState = 3 this.viewState = 3

24
yxt-as-ui/src/views/storage/upShelf/upShelfAdd.vue

@ -9,9 +9,6 @@
</div> </div>
<div class="listconadd"> <div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> <el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<div class="title">
<div>基础信息</div>
</div>
<el-row class="first_row"> <el-row class="first_row">
<el-col :span="8"> <el-col :span="8">
<div class="span-sty">制单人</div> <div class="span-sty">制单人</div>
@ -21,12 +18,6 @@
<div class="span-sty">制单部门</div> <div class="span-sty">制单部门</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.deptName }}</span></el-form-item> <el-form-item><span class="addinputw addinputInfo">{{ formobj.deptName }}</span></el-form-item>
</el-col> </el-col>
<el-col :span="8">
<div class="span-sty">制单人</div>
<el-form-item>
<el-input v-model="formobj.createByName" placeholder="" class="addinputw addinputInfo" clearable/>
</el-form-item>
</el-col>
<el-col :span="8"> <el-col :span="8">
<div class="span-sty"><span class="must">*</span>单据日期</div> <div class="span-sty"><span class="must">*</span>单据日期</div>
<el-form-item prop="createTime"> <el-form-item prop="createTime">
@ -70,7 +61,7 @@
<el-button type="primary" size="mini" @click="doGoodsBatch(scope.$index)">删除</el-button> <el-button type="primary" size="mini" @click="doGoodsBatch(scope.$index)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="商品名称" prop="goodsSkuTitle" align="center" width="200"/> <el-table-column label="商品名称" prop="goodsSpuName" align="center" width="200"/>
<el-table-column label="图号" prop="goodsSkuCode" align="center" width="150"/> <el-table-column label="图号" prop="goodsSkuCode" align="center" width="150"/>
<el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/> <el-table-column label="规格" prop="goodsSkuOwnSpec" align="center" width="150"/>
<el-table-column label="单位" prop="unit" align="center" width="120"/> <el-table-column label="单位" prop="unit" align="center" width="120"/>
@ -79,7 +70,7 @@
<el-input @keyup.native="scope.row.count = getNumber(scope.row.count, 0)" v-model="scope.row.count" clearable placeholder="" @input="inputCount(scope.row)"/> <el-input @keyup.native="scope.row.count = getNumber(scope.row.count, 0)" v-model="scope.row.count" clearable placeholder="" @input="inputCount(scope.row)"/>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column label="备注" align="center" width="180"> <el-table-column label="备注" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder=""/> <el-input v-model="scope.row.remarks" clearable placeholder=""/>
</template> </template>
@ -199,20 +190,13 @@ export default {
this.submitdisabled = false this.submitdisabled = false
this.$emit('doback') this.$emit('doback')
}, },
showAdd() {
this.title = '【新增】'
this.getAllOrgper()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
},
showEdit(row) { showEdit(row) {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs['form_obj'].clearValidate() this.$refs['form_obj'].clearValidate()
}) })
this.getAllOrgper() this.getAllOrgper()
this.title = '【修改】' this.title = '【新增】'
req.init({ sid: row.sid }).then(resp => { req.getInit({ sid: row.sid, orgPath: window.sessionStorage.getItem('defaultOrgPath'), userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) { if (resp.success) {
this.formobj = resp.data this.formobj = resp.data
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1) this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)

23
yxt-pms-biz/src/main/java/com/yxt/pms/biz/pms/pmspurchasebill/PmsPurchaseBillService.java

@ -26,15 +26,16 @@
package com.yxt.pms.biz.pms.pmspurchasebill; package com.yxt.pms.biz.pms.pmspurchasebill;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder; import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.pms.biz.pms.pmspurchasebackbill.PmsPurchasebackBillService; import com.yxt.common.core.vo.PagerVo;
import com.yxt.pms.biz.pms.pmspurchasebackdetail.PmsPurchasebackDetailService;
import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*; import com.yxt.pms.biz.pms.pmspurchasebill.flowable.*;
import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDetailsVo; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDetailsVo;
import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDto; import com.yxt.pms.biz.pms.pmspurchasebilldetail.PmsPurchaseBillDetailDto;
@ -48,7 +49,10 @@ import com.yxt.pms.biz.pms.pmspurchasepay.PmsPurchasePayService;
import com.yxt.pms.biz.pms.pmssupplierinfo.PmsSupplierInfoDetailsVo; import com.yxt.pms.biz.pms.pmssupplierinfo.PmsSupplierInfoDetailsVo;
import com.yxt.pms.biz.pms.pmssupplierinfo.PmsSupplierInfoService; import com.yxt.pms.biz.pms.pmssupplierinfo.PmsSupplierInfoService;
import com.yxt.pms.feign.base.Rule; import com.yxt.pms.feign.base.Rule;
import com.yxt.pms.feign.flowable.flow.*; import com.yxt.pms.feign.flowable.flow.BusinessVariables;
import com.yxt.pms.feign.flowable.flow.FlowableFeign;
import com.yxt.pms.feign.flowable.flow.ProcDefEnum;
import com.yxt.pms.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.pms.feign.flowable.flow2.FlowDelegateQuery; import com.yxt.pms.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.pms.feign.flowable.flow2.FlowFeign; import com.yxt.pms.feign.flowable.flow2.FlowFeign;
import com.yxt.pms.feign.flowable.flowtask.FlowTaskFeign; import com.yxt.pms.feign.flowable.flowtask.FlowTaskFeign;
@ -67,16 +71,10 @@ import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillDetailDto;
import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillDto; import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillDto;
import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillFeign; import com.yxt.pms.feign.wms.wmsansbill.WmsAnsBillFeign;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -453,6 +451,9 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
WmsAnsBillDto wmsAnsBillDto = new WmsAnsBillDto(); WmsAnsBillDto wmsAnsBillDto = new WmsAnsBillDto();
if (StringUtils.isNotBlank(pmsPurchaseBill.getRemarks())) {
wmsAnsBillDto.setRemarks(pmsPurchaseBill.getRemarks());
}
wmsAnsBillDto.setDeptName(pmsPurchaseBill.getDeptName()); wmsAnsBillDto.setDeptName(pmsPurchaseBill.getDeptName());
wmsAnsBillDto.setDeptSid(pmsPurchaseBill.getDeptSid()); wmsAnsBillDto.setDeptSid(pmsPurchaseBill.getDeptSid());
wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid()); wmsAnsBillDto.setCreateBySid(pmsPurchaseBill.getCreateBySid());
@ -506,6 +507,8 @@ public class PmsPurchaseBillService extends MybatisBaseService<PmsPurchaseBillMa
wmsAnsBillDetailDto.setCost(pmsPurchaseBillDetailDetailsVo.getTaxPrice().toString()); wmsAnsBillDetailDto.setCost(pmsPurchaseBillDetailDetailsVo.getTaxPrice().toString());
} }
wmsAnsBillDetailDto.setOrderCount(pmsPurchaseBillDetailDetailsVo.getCount().toString()); wmsAnsBillDetailDto.setOrderCount(pmsPurchaseBillDetailDetailsVo.getCount().toString());
wmsAnsBillDetailDto.setWaitInCount(pmsPurchaseBillDetailDetailsVo.getCount().toString());
wmsAnsBillDetailDto.setActualInCount("0");
if (StringUtils.isNotBlank(taxRate)) { if (StringUtils.isNotBlank(taxRate)) {
wmsAnsBillDetailDto.setTaxAmount(taxRate); wmsAnsBillDetailDto.setTaxAmount(taxRate);
} }

4
yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDetailDto.java

@ -35,4 +35,8 @@ public class WmsAnsBillDetailDto {
private String taxPrice; private String taxPrice;
@ApiModelProperty("金额") @ApiModelProperty("金额")
private String amount; private String amount;
@ApiModelProperty("待入库数量-根据收货单计算")
private String waitInCount;
@ApiModelProperty("实际入库数量-根据收货单计算")
private String actualInCount;
} }

1
yxt-pms-biz/src/main/java/com/yxt/pms/feign/wms/wmsansbill/WmsAnsBillDto.java

@ -66,4 +66,5 @@ public class WmsAnsBillDto {
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>(); private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率") @ApiModelProperty("采购单税率")
private String taxRate; private String taxRate;
private String remarks;
} }

5
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsReceiptBillRest.java

@ -3,11 +3,8 @@ package com.yxt.wms.apiadmin.inventroy;
import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsinventorybill.WmsInventoryBillQuery;
import com.yxt.wms.biz.inventory.wmsinventorybill.WmsInventoryBillVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.*; import com.yxt.wms.biz.inventory.wmsreceiptbill.*;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.ShelfListVo; import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.ShelfListVo;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -39,7 +36,7 @@ public class WmsReceiptBillRest {
@ApiOperation("新增修改保存") @ApiOperation("新增修改保存")
@PostMapping("/saveOrUpdate") @PostMapping("/saveOrUpdate")
ResultBean<String> saveOrUpdate(@RequestBody WmsReceiptBillDto2 dto) { ResultBean<String> saveOrUpdate(@RequestBody WmsReceiptBillDto2 dto) {
return wmsReceiptBillService.saveOrUpdateBill2(dto); return wmsReceiptBillService.saveOrUpdateBill2(dto,0);
} }
@ApiOperation("收货单终止") @ApiOperation("收货单终止")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillDto.java

@ -4,7 +4,6 @@ import com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsBillDetailDto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -67,4 +66,5 @@ public class WmsAnsBillDto {
private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>(); private List<WmsAnsBillDetailDto> wmsAnsBillDetailList = new ArrayList<>();
@ApiModelProperty("采购单税率") @ApiModelProperty("采购单税率")
private String taxRate; private String taxRate;
private String remarks;
} }

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillMapper.xml

@ -51,7 +51,8 @@
when 2 then '已收货' when 3 then '已收货(部分终止)' when 2 then '已收货' when 3 then '已收货(部分终止)'
end as billState, end as billState,
wab.reviewStatus, wab.reviewStatus,
wab.manufactorBillNo wab.manufactorBillNo,
wab.remarks
from wms_ans_bill wab from wms_ans_bill wab
where sid = #{sid} where sid = #{sid}
</select> </select>

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsBillService.java

@ -202,7 +202,7 @@ public class WmsAnsBillService extends MybatisBaseService<WmsAnsBillMapper, WmsA
ResultBean<WmsAnsDetailsVo> rb = ResultBean.fireFail(); ResultBean<WmsAnsDetailsVo> rb = ResultBean.fireFail();
WmsAnsDetailsVo wmsAnsDetailsVo = baseMapper.details(sid); WmsAnsDetailsVo wmsAnsDetailsVo = baseMapper.details(sid);
if (wmsAnsDetailsVo != null) { if (wmsAnsDetailsVo != null) {
List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectByBillSid(sid); List<WmsAnsListDetailsVo> list = wmsAnsBillDetailService.selectDetailsByBillSid(sid);
list.removeAll(Collections.singleton(null)); list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) { if (!list.isEmpty()) {
wmsAnsDetailsVo.setList(list); wmsAnsDetailsVo.setList(list);

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbill/WmsAnsDetailsVo.java

@ -53,7 +53,7 @@ public class WmsAnsDetailsVo {
private String goodsOwnerSid; private String goodsOwnerSid;
@ApiModelProperty("货主") @ApiModelProperty("货主")
private String goodsOwner;*/ private String goodsOwner;*/
private String remarks;
private List<WmsAnsListDetailsVo> list = new ArrayList<>(); private List<WmsAnsListDetailsVo> list = new ArrayList<>();
} }

6
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailDto.java

@ -3,8 +3,6 @@ package com.yxt.wms.biz.inventory.wmsansbilldetail;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal;
/** /**
* @description: * @description:
* @author: dimengzhe * @author: dimengzhe
@ -37,4 +35,8 @@ public class WmsAnsBillDetailDto {
private String taxPrice; private String taxPrice;
@ApiModelProperty("金额") @ApiModelProperty("金额")
private String amount; private String amount;
@ApiModelProperty("待入库数量-根据收货单计算")
private String waitInCount;
@ApiModelProperty("实际入库数量-根据收货单计算")
private String actualInCount;
} }

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.java

@ -20,4 +20,6 @@ public interface WmsAnsBillDetailMapper extends BaseMapper<WmsAnsBillDetail> {
String selGoodsCountBySpuSidAndSouceSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid); String selGoodsCountBySpuSidAndSouceSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid);
WmsAnsBillDetail fetchBySpuSidAndBillSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid); WmsAnsBillDetail fetchBySpuSidAndBillSid(@Param("goodsSpuSid") String goodsSpuSid, @Param("sourceBillSid") String sourceBillSid);
List<WmsAnsListDetailsVo> selectDetailsByBillSid(String sid);
} }

21
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailMapper.xml

@ -23,7 +23,7 @@
wd.goodsSkuSid, wd.goodsSkuSid,
wd.goodsSpuSid wd.goodsSpuSid
from wms_ans_bill_detail wd from wms_ans_bill_detail wd
where billSid = #{sid} where billSid = #{sid} and wd.waitInCount > 0
</select> </select>
<select id="selGoodsCountBySpuSidAndSouceSid" resultType="java.lang.String"> <select id="selGoodsCountBySpuSidAndSouceSid" resultType="java.lang.String">
SELECT IFNULL(d.orderCount,0) FROM wms_ans_bill_detail as d SELECT IFNULL(d.orderCount,0) FROM wms_ans_bill_detail as d
@ -34,4 +34,23 @@
SELECT * FROM wms_ans_bill_detail as d SELECT * FROM wms_ans_bill_detail as d
WHERE d.goodsSpuSid = #{goodsSpuSid} and d.billSid = #{sourceBillSid} WHERE d.goodsSpuSid = #{goodsSpuSid} and d.billSid = #{sourceBillSid}
</select> </select>
<select id="selectDetailsByBillSid"
resultType="com.yxt.wms.biz.inventory.wmsansbilldetail.WmsAnsListDetailsVo">
select wd.goodsSkuTitle,
wd.goodsSkuCode,
wd.goodsSkuOwnSpec,
wd.goodsSpuName,
wd.unit,
wd.orderCount,
wd.waitInCount,
wd.actualInCount,
wd.cost,
wd.taxAmount,
wd.taxPrice,
wd.amount,
wd.goodsSkuSid,
wd.goodsSpuSid
from wms_ans_bill_detail wd
where billSid = #{sid}
</select>
</mapper> </mapper>

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsansbilldetail/WmsAnsBillDetailService.java

@ -2,7 +2,6 @@ package com.yxt.wms.biz.inventory.wmsansbilldetail;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.yxt.common.base.service.MybatisBaseService; import com.yxt.common.base.service.MybatisBaseService;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.List; import java.util.List;
@ -35,4 +34,8 @@ public class WmsAnsBillDetailService extends MybatisBaseService<WmsAnsBillDetail
public WmsAnsBillDetail fetchBySpuSidAndBillSid(String goodsSpuSid, String sourceBillSid) { public WmsAnsBillDetail fetchBySpuSidAndBillSid(String goodsSpuSid, String sourceBillSid) {
return baseMapper.fetchBySpuSidAndBillSid(goodsSpuSid,sourceBillSid); return baseMapper.fetchBySpuSidAndBillSid(goodsSpuSid,sourceBillSid);
} }
public List<WmsAnsListDetailsVo> selectDetailsByBillSid(String sid) {
return baseMapper.selectDetailsByBillSid(sid);
}
} }

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.java

@ -31,4 +31,6 @@ public interface WmsReceiptBillMapper extends BaseMapper<WmsReceiptBill> {
List<ShelfListVo> getUpShlefListBySid(@Param("sid") String sid); List<ShelfListVo> getUpShlefListBySid(@Param("sid") String sid);
String selallotmentNumByReceiptDetailSid(String detailsSid); String selallotmentNumByReceiptDetailSid(String detailsSid);
int selAnsBillState(@Param("sourceBillSid") String sourceBillSid);
} }

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillMapper.xml

@ -93,4 +93,20 @@
WHERE WHERE
d.receiptDetailSid = #{detailsSid} d.receiptDetailSid = #{detailsSid}
</select> </select>
<select id="selAnsBillState" resultType="java.lang.Integer">
SELECT
CASE
WHEN a.orderCount = a.waitInCount AND a.actualInCount = 0 THEN 0
WHEN a.orderCount > a.waitInCount AND a.actualInCount > 0 AND a.orderCount != a.actualInCount THEN 1
WHEN a.orderCount = a.actualInCount AND a.waitInCount = 0 THEN 2
END AS billState
FROM
(SELECT
IFNULL(SUM(orderCount),0) orderCount,
IFNULL(SUM(waitInCount),0) waitInCount,
IFNULL(SUM(actualInCount),0) actualInCount
FROM
wms_ans_bill_detail AS d
WHERE d.billSid = #{sourceBillSid}) a
</select>
</mapper> </mapper>

128
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBillService.java

@ -181,7 +181,13 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
return billNo; return billNo;
} }
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto) { /**
*
* @param dto
* @param type 0 保存1确认
* @return
*/
public ResultBean<String> saveOrUpdateBill2(WmsReceiptBillDto2 dto,int type) {
ResultBean<String> rb = ResultBean.fireFail(); ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid(); String sid = dto.getSid();
if (StringUtils.isBlank(sid)) { if (StringUtils.isBlank(sid)) {
@ -198,49 +204,32 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
for (WmsReceiptBillDetailDto2 detail : list) { for (WmsReceiptBillDetailDto2 detail : list) {
String goodsSpuSid = detail.getGoodsSpuSid(); String goodsSpuSid = detail.getGoodsSpuSid();
String sourceBillSid = dto.getSourceBillSid(); String sourceBillSid = dto.getSourceBillSid();
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid); // String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid);
BigDecimal count = new BigDecimal(goodsCount); // BigDecimal count = new BigDecimal(goodsCount);
if (null != goods) { if (type == 1) {
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); //确认时,统计预期到货通知单实收数量
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount())); if (null != goods) {
goods.setActualInCount(accCount); BigDecimal waitInCount = goods.getWaitInCount();
goods.setWaitInCount(orderCount.subtract(accCount)); BigDecimal actualInCount = goods.getActualInCount();
wmsAnsBillDetailService.updateById(goods); BigDecimal accCount = actualInCount.add(new BigDecimal(detail.getActualInCount()));
goods.setActualInCount(accCount);
goods.setWaitInCount(waitInCount.subtract(new BigDecimal(detail.getActualInCount())));
wmsAnsBillDetailService.updateById(goods);
}
} }
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid); wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
} }
if (StringUtils.isNotBlank(dto.getSourceBillSid())) { if (type == 1) {
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid()); if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid()); WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
if (!vos.isEmpty()) { int billState = selAnsBillState(dto.getSourceBillSid());
HashSet<Integer> integers = new HashSet<>(); wmsAnsBill.setBillState(billState);
for (WmsAnsListDetailsVo vo : vos) { wmsAnsBillService.updateById(wmsAnsBill);
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
} }
wmsAnsBillService.updateById(wmsAnsBill);
} }
} }
wmsReceiptBill.setBillState("0"); wmsReceiptBill.setBillState("0");
@ -271,49 +260,32 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
for (WmsReceiptBillDetailDto2 detail : list) { for (WmsReceiptBillDetailDto2 detail : list) {
String goodsSpuSid = detail.getGoodsSpuSid(); String goodsSpuSid = detail.getGoodsSpuSid();
String sourceBillSid = dto.getSourceBillSid(); String sourceBillSid = dto.getSourceBillSid();
String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid); // String goodsCount = baseMapper.selGoodsCountBySpuSidAndSouceSid(goodsSpuSid, sourceBillSid);
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid); WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(goodsSpuSid, sourceBillSid);
BigDecimal count = new BigDecimal(goodsCount); // BigDecimal count = new BigDecimal(goodsCount);
if (null != goods) { if (type == 1) {
BigDecimal orderCount = new BigDecimal(goods.getOrderCount()); //确认时,统计预期到货通知单实收数量
BigDecimal accCount = count.add(new BigDecimal(detail.getActualInCount())); if (null != goods) {
goods.setActualInCount(accCount); BigDecimal waitInCount = goods.getWaitInCount();
goods.setWaitInCount(orderCount.subtract(accCount)); BigDecimal actualInCount = goods.getActualInCount();
wmsAnsBillDetailService.updateById(goods); BigDecimal accCount = actualInCount.add(new BigDecimal(detail.getActualInCount()));
goods.setActualInCount(accCount);
goods.setWaitInCount(waitInCount.subtract(new BigDecimal(detail.getActualInCount())));
wmsAnsBillDetailService.updateById(goods);
}
} }
WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail(); WmsReceiptBillDetail wmsReceiptBillDetail = new WmsReceiptBillDetail();
BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid"); BeanUtil.copyProperties(detail, wmsReceiptBillDetail, "sid");
wmsReceiptBillDetail.setBillSid(sid); wmsReceiptBillDetail.setBillSid(sid);
wmsReceiptBillDetailService.insert(wmsReceiptBillDetail); wmsReceiptBillDetailService.insert(wmsReceiptBillDetail);
} }
if (StringUtils.isNotBlank(dto.getSourceBillSid())) { if (type == 1) {
WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid()); if (StringUtils.isNotBlank(dto.getSourceBillSid())) {
List<WmsAnsListDetailsVo> vos = wmsAnsBillDetailService.selectByBillSid(dto.getSourceBillSid()); WmsAnsBill wmsAnsBill = wmsAnsBillService.fetchBySid(dto.getSourceBillSid());
if (!vos.isEmpty()) { int billState = selAnsBillState(dto.getSourceBillSid());
HashSet<Integer> integers = new HashSet<>(); wmsAnsBill.setBillState(billState);
for (WmsAnsListDetailsVo vo : vos) { wmsAnsBillService.updateById(wmsAnsBill);
BigDecimal count = new BigDecimal("0");
if (StringUtils.isNotBlank(vo.getWaitInCount())) {
count = new BigDecimal(vo.getWaitInCount());
}
if (count.compareTo(BigDecimal.ZERO) <= 0) {
integers.add(2);
} else {
integers.add(1);
}
}
if (integers.size() > 1) {
wmsAnsBill.setBillState(1);
} else {
wmsAnsBill.setBillState(2);
for (Integer integer : integers) {
if (integer == 1) {
wmsAnsBill.setBillState(1);
}
}
}
} }
wmsAnsBillService.updateById(wmsAnsBill);
} }
} }
@ -322,6 +294,11 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
return rb.success().setData(sid); return rb.success().setData(sid);
} }
private int selAnsBillState(String sourceBillSid) {
return baseMapper.selAnsBillState(sourceBillSid);
}
public ResultBean<WmsReceiptBillVo> getInitDetails(String sourceSid) { public ResultBean<WmsReceiptBillVo> getInitDetails(String sourceSid) {
ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail(); ResultBean<WmsReceiptBillVo> rb = ResultBean.fireFail();
WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo(); WmsReceiptBillVo wmsReceiptBillVo = new WmsReceiptBillVo();
@ -396,10 +373,17 @@ public class WmsReceiptBillService extends MybatisBaseService<WmsReceiptBillMapp
for (int i = 0; i < list.size(); i++) { for (int i = 0; i < list.size(); i++) {
WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i); WmsReceiptBillDetailDto2 wmsReceiptBillDetailDto2 = list.get(i);
wmsReceiptBillDetailDto2.setState(1); wmsReceiptBillDetailDto2.setState(1);
//判断确认时,实收数量不能大于待收货数量
WmsAnsBillDetail goods = wmsAnsBillDetailService.fetchBySpuSidAndBillSid(wmsReceiptBillDetailDto2.getGoodsSpuSid(), dto.getSourceBillSid());
BigDecimal waitInCount = goods.getWaitInCount();
String actualInCount = wmsReceiptBillDetailDto2.getActualInCount();
if (new BigDecimal(actualInCount).compareTo(waitInCount) > 0) {
return rb.setMsg("实收数量请勿大于待收货数量!");
}
} }
} }
dto.setList(list); dto.setList(list);
ResultBean<String> resultBean = saveOrUpdateBill2(dto); ResultBean<String> resultBean = saveOrUpdateBill2(dto,1);
String sid = resultBean.getData(); String sid = resultBean.getData();
WmsReceiptBill wmsReceiptBill = fetchBySid(sid); WmsReceiptBill wmsReceiptBill = fetchBySid(sid);
if (null != wmsReceiptBill) { if (null != wmsReceiptBill) {

Loading…
Cancel
Save