|
|
@ -10,13 +10,16 @@ import com.yxt.common.base.utils.StringUtils; |
|
|
|
import com.yxt.common.core.query.PagerQuery; |
|
|
|
import com.yxt.common.core.result.ResultBean; |
|
|
|
import com.yxt.common.core.vo.PagerVo; |
|
|
|
import com.yxt.warehouse.biz.purchaseinventorybill.PurchaseInventoryBillPageVo; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbill.WarehouseAnsBillService; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsBillDetailService; |
|
|
|
import com.yxt.warehouse.biz.warehouseansbilldetail.WarehouseAnsListDetailsVo; |
|
|
|
import com.yxt.warehouse.biz.warehouseinventoryrecord.WarehouseInventoryRecordService; |
|
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
|
import org.springframework.stereotype.Service; |
|
|
|
|
|
|
|
import java.math.BigDecimal; |
|
|
|
import java.util.Arrays; |
|
|
|
import java.util.Collections; |
|
|
|
import java.util.Date; |
|
|
|
import java.util.List; |
|
|
|
import java.util.*; |
|
|
|
|
|
|
|
/** |
|
|
|
* @author wangpengfei |
|
|
@ -24,31 +27,149 @@ import java.util.List; |
|
|
|
*/ |
|
|
|
@Service |
|
|
|
public class WarehouseInventoryService extends MybatisBaseService<WarehouseInventoryMapper, WarehouseInventory> { |
|
|
|
public PagerVo<WarehouseInventoryVo> listPage(PagerQuery<WarehouseInventoryQuery> pq) { |
|
|
|
|
|
|
|
@Autowired |
|
|
|
WarehouseAnsBillDetailService warehouseAnsBillDetailService; |
|
|
|
@Autowired |
|
|
|
WarehouseInventoryRecordService warehouseInventoryRecordService; |
|
|
|
public ResultBean<PagerVo<WarehouseInventoryVo>> listPage(PagerQuery<WarehouseInventoryQuery> pq) { |
|
|
|
ResultBean rb =new ResultBean().fail(); |
|
|
|
WarehouseInventoryQuery query = pq.getParams(); |
|
|
|
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>(); |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsID())) { |
|
|
|
qw.like("a.goodsID", query.getGoodsID()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getWarehouseName())) { |
|
|
|
qw.like("a.warehouseName", query.getWarehouseName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSkuCode())) { |
|
|
|
qw.like("a.goodsSkuCode", query.getGoodsSkuCode()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuName())) { |
|
|
|
qw.like("a.goodsSpuName", query.getGoodsSpuName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBatchNumber())) { |
|
|
|
qw.like("a.batchNumber", query.getBatchNumber()); |
|
|
|
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
|
|
|
|
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
|
|
|
|
// String orgLevelKey=query.getOrgLevelKey();
|
|
|
|
// String orgSidPath=query.getOrgPath();
|
|
|
|
// int index=query.getIndex();
|
|
|
|
// if ("1".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.like("s.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("2".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.like("s.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("3".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.apply("s.orgSidPath like('"+orgSidPath+"')");
|
|
|
|
// } else if ("4".equals(orgLevelKey)) {
|
|
|
|
// qw.eq("wab.createBySid", query.getUserSid());
|
|
|
|
// } else {
|
|
|
|
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
|
|
|
|
// return rb.success().setData(p);
|
|
|
|
// }
|
|
|
|
// } else {
|
|
|
|
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
|
|
|
|
// return rb.success().setData(p);
|
|
|
|
// }
|
|
|
|
if (StringUtils.isNotBlank(query.getWarehouseSid())) { |
|
|
|
qw.like("a.warehouseNameSid", query.getWarehouseSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { |
|
|
|
qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBrandSid())) { |
|
|
|
qw.like("a.brandSid", query.getBrandSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSpec())) { |
|
|
|
qw.like("a.goodsSkuOwnSpec", query.getSpec()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { |
|
|
|
qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); |
|
|
|
} |
|
|
|
qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()). |
|
|
|
apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd() |
|
|
|
); |
|
|
|
qw.eq("1",1); |
|
|
|
qw.groupBy("a.goodsSpuSid"); |
|
|
|
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<WarehouseInventoryVo> pagging = baseMapper.listPage(page, qw); |
|
|
|
for (WarehouseInventoryVo record : pagging.getRecords()) { |
|
|
|
List<WarehouseInventoryVo> vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid()); |
|
|
|
WarehouseAnsListDetailsVo vo2=warehouseAnsBillDetailService.selCountBySpuSid(record.getGoodsSpuSid()); |
|
|
|
record.setProcurementInTransit(new BigDecimal(vo2.getWaitInCount())); |
|
|
|
record.setInTransitSummary(record.getInTransitSummary() |
|
|
|
.add(record.getProcurementInTransit()) |
|
|
|
.add(record.getSalesReturnInTransit()) |
|
|
|
.add(record.getTransferInTransit()) |
|
|
|
.add(record.getOtherOnTheWay()) |
|
|
|
.add(record.getWorkOrderInTransit())); |
|
|
|
for (WarehouseInventoryVo vo : vos) { |
|
|
|
vo.setMainSid(record.getGoodsSpuSid()); |
|
|
|
WarehouseAnsListDetailsVo vo1=warehouseAnsBillDetailService.selCountBySkuSid(vo.getGoodsSkuSid()); |
|
|
|
vo.setProcurementInTransit(new BigDecimal(vo1.getWaitInCount())); |
|
|
|
vo.setInTransitSummary(vo.getInTransitSummary() |
|
|
|
.add(vo.getProcurementInTransit()) |
|
|
|
.add(vo.getSalesReturnInTransit()) |
|
|
|
.add(vo.getTransferInTransit()) |
|
|
|
.add(vo.getOtherOnTheWay()) |
|
|
|
.add(vo.getWorkOrderInTransit())); |
|
|
|
} |
|
|
|
record.setWarehouseInventorys(vos); |
|
|
|
} |
|
|
|
|
|
|
|
PagerVo<WarehouseInventoryVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return rb.success().setData(p); |
|
|
|
} |
|
|
|
public ResultBean<PagerVo<WarehouseInventoryVo>> locationListPage(PagerQuery<WarehouseInventoryQuery> pq) { |
|
|
|
ResultBean rb =new ResultBean().fail(); |
|
|
|
WarehouseInventoryQuery query = pq.getParams(); |
|
|
|
QueryWrapper<WarehouseInventory> qw = new QueryWrapper<>(); |
|
|
|
// if (StringUtils.isNotBlank(query.getOrgLevelKey())) {
|
|
|
|
// //数据权限ID(1全部、2本部门及子部门、3本部门、4个人)
|
|
|
|
// String orgLevelKey=query.getOrgLevelKey();
|
|
|
|
// String orgSidPath=query.getOrgPath();
|
|
|
|
// int index=query.getIndex();
|
|
|
|
// if ("1".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.like("s.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("2".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.like("s.orgSidPath", orgSidPath);
|
|
|
|
// } else if ("3".equals(orgLevelKey)) {
|
|
|
|
// orgSidPath = orgSidPath.substring(0, index);
|
|
|
|
// qw.apply("s.orgSidPath like('"+orgSidPath+"')");
|
|
|
|
// } else if ("4".equals(orgLevelKey)) {
|
|
|
|
// qw.eq("wab.createBySid", query.getUserSid());
|
|
|
|
// } else {
|
|
|
|
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
|
|
|
|
// return rb.success().setData(p);
|
|
|
|
// }
|
|
|
|
// } else {
|
|
|
|
// PagerVo<WarehouseInventoryVo> p = new PagerVo<>();
|
|
|
|
// return rb.success().setData(p);
|
|
|
|
// }
|
|
|
|
if (StringUtils.isNotBlank(query.getWarehouseSid())) { |
|
|
|
qw.like("a.warehouseNameSid", query.getWarehouseSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { |
|
|
|
qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getBrandSid())) { |
|
|
|
qw.like("a.brandSid", query.getBrandSid()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getSpec())) { |
|
|
|
qw.like("a.goodsSkuOwnSpec", query.getSpec()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuSid())) { |
|
|
|
qw.like("a.goodsSpuSid", query.getGoodsSpuSid()); |
|
|
|
} |
|
|
|
qw.apply(StringUtils.isNotBlank(query.getCountStart()), "a.count >= " + query.getCountStart()). |
|
|
|
apply(StringUtils.isNotBlank(query.getCountEnd()), "a.count <= " + query.getCountEnd() |
|
|
|
); |
|
|
|
qw.eq("1",1); |
|
|
|
qw.groupBy("a.goodsSpuSid"); |
|
|
|
IPage<WarehouseInventory> page = PagerUtil.queryToPage(pq); |
|
|
|
IPage<WarehouseInventoryVo> pagging = baseMapper.listPage(page, qw); |
|
|
|
for (WarehouseInventoryVo record : pagging.getRecords()) { |
|
|
|
List<WarehouseInventoryVo> vos=baseMapper.getListBySpuSid(record.getGoodsSpuSid()); |
|
|
|
for (WarehouseInventoryVo vo : vos) { |
|
|
|
vo.setMainSid(record.getGoodsSpuSid()); |
|
|
|
} |
|
|
|
record.setWarehouseInventorys(vos); |
|
|
|
} |
|
|
|
PagerVo<WarehouseInventoryVo> p = PagerUtil.pageToVo(pagging, null); |
|
|
|
return p; |
|
|
|
return rb.success().setData(p); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
* 入库 |
|
|
|
* |
|
|
@ -113,16 +234,25 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven |
|
|
|
return rb.success().setMsg("成功"); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean updateWarehouseInventory(WarehouseInventoryUpdateDto dto) { |
|
|
|
public ResultBean getRackCountBySid(WarehouseInventoryRackCountQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
String sid = dto.getSid(); |
|
|
|
WarehouseInventory WarehouseInventory = fetchBySid(sid); |
|
|
|
if (WarehouseInventory == null) { |
|
|
|
return rb.setMsg("该库存信息不存在"); |
|
|
|
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>(); |
|
|
|
if (query.getType().equals("1")){ |
|
|
|
warehouseInventoryVos=baseMapper.getRackCountBySid(query.getSid(),query.getOrgSid()); |
|
|
|
}else if(query.getType().equals("2")){ |
|
|
|
warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid()); |
|
|
|
} |
|
|
|
BeanUtil.copyProperties(dto, WarehouseInventory, "sid"); |
|
|
|
baseMapper.updateById(WarehouseInventory); |
|
|
|
return rb.success(); |
|
|
|
return rb.success().setData(warehouseInventoryVos); |
|
|
|
} |
|
|
|
public ResultBean getInventoryRecordBySid(WarehouseInventoryRackCountQuery query) { |
|
|
|
ResultBean rb = ResultBean.fireFail(); |
|
|
|
List<WarehouseInventoryVo> warehouseInventoryVos=new ArrayList<>(); |
|
|
|
if (query.getType().equals("1")){ |
|
|
|
// warehouseInventoryVos=warehouseInventoryRecordService.getRackCountBySid(query.getSid(),query.getOrgSid());
|
|
|
|
}else if(query.getType().equals("2")){ |
|
|
|
// warehouseInventoryVos=baseMapper.getRackCountBySid1(query.getSid(),query.getOrgSid());
|
|
|
|
} |
|
|
|
return rb.success().setData(warehouseInventoryVos); |
|
|
|
} |
|
|
|
|
|
|
|
public ResultBean delAllBySids(String[] sids) { |
|
|
@ -198,12 +328,12 @@ public class WarehouseInventoryService extends MybatisBaseService<WarehouseInven |
|
|
|
public List<WarehouseInventoryVoExcelVo> listExcel(WarehouseInventoryQuery query) { |
|
|
|
QueryWrapper<WarehouseInventoryVoExcelVo> qw = new QueryWrapper<>(); |
|
|
|
if (query != null) { |
|
|
|
if (StringUtils.isNotBlank(query.getGoodsSpuName())) { |
|
|
|
qw.like("goodsSpuName", query.getGoodsSpuName()); |
|
|
|
} |
|
|
|
if (StringUtils.isNotBlank(query.getWarehouseName())) { |
|
|
|
qw.like("warehouseName", query.getWarehouseName()); |
|
|
|
} |
|
|
|
// if (StringUtils.isNotBlank(query.getGoodsSpuName())) {
|
|
|
|
// qw.like("goodsSpuName", query.getGoodsSpuName());
|
|
|
|
// }
|
|
|
|
// if (StringUtils.isNotBlank(query.getWarehouseName())) {
|
|
|
|
// qw.like("warehouseName", query.getWarehouseName());
|
|
|
|
// }
|
|
|
|
} |
|
|
|
List<WarehouseInventoryVoExcelVo> list = baseMapper.listExcel(qw); |
|
|
|
list.removeAll(Collections.singleton(null)); |
|
|
|