Browse Source

01-08

master
wangpengfei 4 months ago
parent
commit
684bb5b12c
  1. 4
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/BaseGoodsSkuRest.java
  2. 17
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/PurchaseBillRest.java
  3. 18
      oms/src/main/java/com/yxt/oms/apiadmin/aggregation/SmsSalesBillRest.java
  4. 40
      oms/src/main/java/com/yxt/oms/biz/func/basegoodssku/GoodsSkuSelectQuery.java
  5. 48
      oms/src/main/java/com/yxt/oms/biz/func/basegoodssku/SkuSelectList1.java
  6. 94
      oms/src/main/java/com/yxt/oms/biz/func/purchasebill/PurchaseBillService.java
  7. 165
      oms/src/main/java/com/yxt/oms/biz/func/smssalesbill/SmsSalesBillService.java
  8. 25
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsskuextend/BaseGoodsSkuExtendFeign.java
  9. 19
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsskuextend/BaseGoodsSkuExtendFeignFallback.java
  10. 3
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/BaseGoodsSpuFeign.java
  11. 5
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/BaseGoodsSpuFeignFallback.java
  12. 44
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/GoodsSpuQuery.java
  13. 73
      oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/GoodsSpuVo.java
  14. 25
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseCustomerOutReportExcelVo.java
  15. 36
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsPurchaseReportExcelVo.java
  16. 26
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsPurchaseReportVo.java
  17. 45
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsSalesReportExcelVo.java
  18. 30
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsSalesReportVo.java
  19. 11
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseInventoryCountReportQuery.java
  20. 17
      oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseInventoryRecordFeign.java

4
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/BaseGoodsSkuRest.java

@ -1,8 +1,12 @@
package com.yxt.oms.apiadmin.aggregation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.basegoodssku.BaseGoodsSkuService;
import com.yxt.oms.biz.func.basegoodssku.BaseGoodsSkuVo;
import com.yxt.oms.biz.func.basegoodssku.GoodsSkuSelectQuery;
import com.yxt.oms.biz.func.basegoodssku.SkuSelectList1;
import com.yxt.oms.utils.OrgPathQuery;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;

17
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/PurchaseBillRest.java

@ -29,6 +29,8 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.purchasebill.*;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseGoodsPurchaseReportVo;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseInventoryCountReportQuery;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -47,6 +49,16 @@ public class PurchaseBillRest {
public ResultBean<PagerVo<PurchaseBillVo>> listPage(@RequestBody PagerQuery<PurchaseBillQuery> pq){
return purchaseBillService.listPageVo(pq);
}
@ApiOperation("商品采购分页列表")
@PostMapping("/goodsPurchase")
public ResultBean<PagerVo<WarehouseGoodsPurchaseReportVo>> goodsPurchase(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq){
return purchaseBillService.goodsPurchase(pq);
}
@ApiOperation("商品采购导出")
@PostMapping("/goodsPurchaseExport")
public void goodsPurchaseExport(@RequestBody WarehouseInventoryCountReportQuery pq){
purchaseBillService.goodsPurchaseExport(pq);
}
@ApiOperation("采购订单审核管理")
@PostMapping("/exlistPage")
@ -89,4 +101,9 @@ public class PurchaseBillRest {
public ResultBean examine(@RequestParam("sid") String sid,@RequestParam("state") String state,@RequestParam("remarks") String remarks){
return purchaseBillService.examine(sid,state,remarks);
}
@ApiOperation("采购单审核")
@PostMapping("/茨沟入库")
public ResultBean examine4(@RequestParam("sid") String sid,@RequestParam("state") String state,@RequestParam("remarks") String remarks){
return purchaseBillService.examine(sid,state,remarks);
}
}

18
oms/src/main/java/com/yxt/oms/apiadmin/aggregation/SmsSalesBillRest.java

@ -29,6 +29,7 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.smssalesbill.*;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseGoodsSalesReportVo;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseInventoryCountReportQuery;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseOutReportVo;
import io.swagger.annotations.Api;
@ -69,6 +70,23 @@ public class SmsSalesBillRest {
public ResultBean<PagerVo<WarehouseOutReportVo>> customerSales(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq) {
return smsSalesBillService.customerSales(pq);
}
@ApiOperation("客户销售报表")
@PostMapping("/goodsSales")
public ResultBean<PagerVo<WarehouseGoodsSalesReportVo>> goodsSales(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq) {
return smsSalesBillService.goodsSales(pq);
}
@ApiOperation("客户销售报表导出")
@PostMapping("/customerSalesExport")
public void customerSalesExport(@RequestBody WarehouseInventoryCountReportQuery pq) {
smsSalesBillService.customerSalesExport(pq);
}
@ApiOperation("客户销售报表导出")
@PostMapping("/goodsSalesExport")
public void goodsSalesExport(@RequestBody WarehouseInventoryCountReportQuery pq) {
smsSalesBillService.goodsSalesExport(pq);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody SmsSalesBillDto dto) {

40
oms/src/main/java/com/yxt/oms/biz/func/basegoodssku/GoodsSkuSelectQuery.java

@ -0,0 +1,40 @@
package com.yxt.oms.biz.func.basegoodssku;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/21
**/
@Data
public class GoodsSkuSelectQuery implements Query {
private String createOrgSid;
//商品编码
private String goodsCode;
//商品名称
private String goodsName;
//条形码
private String barCode;
//规格编码
private String goodsSkuCode;
//规格型号
private String title;
//具体规格
private String ownSpec;
//品牌
private String brandName;
private String brandSid;
//厂家
private String manufacturerName;
private String manufacturerSid;
//分类
private String typeName;
private String typeSid;
//厂家货号
private String manufacturerCode;
}

48
oms/src/main/java/com/yxt/oms/biz/func/basegoodssku/SkuSelectList1.java

@ -0,0 +1,48 @@
package com.yxt.oms.biz.func.basegoodssku;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/21
**/
@Data
public class SkuSelectList1 {
//spusid
private String goodsSpuSid;
//商品编码
private String goodsCode;
//商品名称
private String goodsName;
//条形码
private String barCode;
//规格编码
private String goodsSkuCode;
private String goodsSkuSid;
//规格型号
private String title;
//具体规格
private String ownSpec;
//分类
private String typeName;
private String typeSid;
//品牌
private String brandName;
private String brandSid;
//厂家名
private String manufacturerSid;
private String manufacturerName;
//厂家货号
private String factoryCode;
//单位
private String unit;
private String unitSid;
//销售单价
private BigDecimal salesPrice=new BigDecimal(0);
}

94
oms/src/main/java/com/yxt/oms/biz/func/purchasebill/PurchaseBillService.java

@ -28,13 +28,17 @@ package com.yxt.oms.biz.func.purchasebill;
import cn.hutool.core.date.DateUtil;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.oms.biz.func.basebrandinfo.BaseBrandInfoVo;
import com.yxt.oms.biz.func.basegoodssku.BaseGoodsSkuVo;
import com.yxt.oms.biz.func.basegoodsspu.BaseGoodsSpuVo;
import com.yxt.oms.biz.func.basegoodstype.BaseGoodsTypeVo;
import com.yxt.oms.biz.func.commonmethod.CommonMethod;
import com.yxt.oms.biz.func.commonmethod.DataRule;
import com.yxt.oms.biz.func.crmcustomer.CrmCustomerTemp;
import com.yxt.oms.biz.func.purchaseappendix.PurchaseAppendixUrl;
import com.yxt.oms.biz.func.purchasebilldetail.PurchaseBillDetailDetailsVo;
import com.yxt.oms.biz.func.purchasebilldetail.PurchaseBillDetailDto;
@ -52,13 +56,17 @@ import com.yxt.oms.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.oms.feign.portal.sysuser.SysUserFeign;
import com.yxt.oms.feign.purchase.purchasebill.PurchaseBillFeign;
import com.yxt.oms.feign.warehouse.warehouseansbill.WarehouseAnsBillFeign;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.*;
import com.yxt.oms.utils.Rule;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.util.*;
@Service
@ -82,6 +90,16 @@ public class PurchaseBillService {
private FileUploadComponent fileUploadComponent;
@Autowired
private BaseGoodsSpuFeign baseGoodsSpuFeign;
@Autowired
private BaseGoodsSkuFeign baseGoodsSkuFeign;
@Autowired
BaseGoodsTypeFeign baseGoodsTypeFeign;
@Autowired
BaseBrandInfoFeign baseBrandInfoFeign;
@Autowired
private WarehouseInventoryRecordFeign warehouseInventoryRecordFeign;
@Autowired
HttpServletResponse response;
public ResultBean<PagerVo<PurchaseBillVo>> listPageVo(PagerQuery<PurchaseBillQuery> pq) {
ResultBean rb = ResultBean.fireFail();
@ -103,7 +121,83 @@ public class PurchaseBillService {
}
return rb.success().setData(p);
}
public ResultBean<PagerVo<WarehouseGoodsPurchaseReportVo>> goodsPurchase(PagerQuery<WarehouseInventoryCountReportQuery> pq) {
ResultBean rb = ResultBean.fireFail();
ResultBean<PagerVo<WarehouseGoodsPurchaseReportVo>> pagerVoResultBean = warehouseInventoryRecordFeign.goodsPurchase(pq);
for (WarehouseGoodsPurchaseReportVo record : pagerVoResultBean.getData().getRecords()) {
BigDecimal bigDecimal=new BigDecimal(record.getAmount());
if(bigDecimal.compareTo(new BigDecimal(0))!=1){
record.setAmount(new BigDecimal(record.getCount()).multiply(new BigDecimal(record.getCost())).toString());
}
ResultBean<BaseGoodsSpuVo> initialization1=new ResultBean<>();
if(StringUtils.isBlank(record.getGoodsSpuSid())){
ResultBean<BaseGoodsSkuVo> initialization = baseGoodsSkuFeign.initialization(record.getGoodsSkuSid());
initialization1 = baseGoodsSpuFeign.initialization(initialization.getData().getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}else{
initialization1 = baseGoodsSpuFeign.initialization(record.getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}
if(StringUtils.isBlank(record.getTitle())){
// record.setTitle();
}
if(StringUtils.isBlank(record.getBrandName())){
ResultBean<BaseBrandInfoVo> initialization3 = baseBrandInfoFeign.initialization(initialization1.getData().getBrandSid());
record.setBrandSid(initialization3.getData().getSid());
record.setBrandName(initialization3.getData().getBrandName());
}
if(StringUtils.isBlank(record.getTypeName())){
ResultBean<BaseGoodsTypeVo> initialization2 = baseGoodsTypeFeign.initialization(initialization1.getData().getGoodsTypeSid());
record.setTypeName(initialization2.getData().getGoodsTypeName());
record.setTypeSid(initialization2.getData().getSid());
}
}
return pagerVoResultBean;
}
public void goodsPurchaseExport(WarehouseInventoryCountReportQuery pq) {
List<WarehouseGoodsPurchaseReportExcelVo> exportVoList = warehouseInventoryRecordFeign.goodsPurchaseExport(pq);
for (WarehouseGoodsPurchaseReportExcelVo record : exportVoList) {
BigDecimal bigDecimal=new BigDecimal(record.getAmount());
if(bigDecimal.compareTo(new BigDecimal(0))!=1){
record.setAmount(new BigDecimal(record.getCount()).multiply(new BigDecimal(record.getCost())).toString());
}
ResultBean<BaseGoodsSpuVo> initialization1=new ResultBean<>();
if(StringUtils.isBlank(record.getGoodsSpuSid())){
ResultBean<BaseGoodsSkuVo> initialization = baseGoodsSkuFeign.initialization(record.getGoodsSkuSid());
initialization1 = baseGoodsSpuFeign.initialization(initialization.getData().getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}else{
initialization1 = baseGoodsSpuFeign.initialization(record.getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}
if(StringUtils.isBlank(record.getBrandName())){
ResultBean<BaseBrandInfoVo> initialization3 = baseBrandInfoFeign.initialization(initialization1.getData().getBrandSid());
record.setBrandSid(initialization3.getData().getSid());
record.setBrandName(initialization3.getData().getBrandName());
}
if(StringUtils.isBlank(record.getTypeName())){
ResultBean<BaseGoodsTypeVo> initialization2 = baseGoodsTypeFeign.initialization(initialization1.getData().getGoodsTypeSid());
record.setTypeName(initialization2.getData().getGoodsTypeName());
record.setTypeSid(initialization2.getData().getSid());
}
}
//定义导出的excel名字
String excelName = "商品采购列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, WarehouseGoodsPurchaseReportExcelVo.class, response);
}
public ResultBean<PagerVo<PurchaseBillExVo>> exlistPage(PagerQuery<PurchaseBillQuery> pq) {
PurchaseBillQuery query = pq.getParams();
//通用组装方法 根据用户sid、菜单、组织全路径sid 获取组装参数

165
oms/src/main/java/com/yxt/oms/biz/func/smssalesbill/SmsSalesBillService.java

@ -30,17 +30,28 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.ExportExcelUtils;
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.vo.PagerVo;
import com.yxt.oms.biz.func.basebrandinfo.BaseBrandInfoVo;
import com.yxt.oms.biz.func.basegoodssku.BaseGoodsSkuVo;
import com.yxt.oms.biz.func.basegoodsskuextend.BaseGoodsSkuExtendVo;
import com.yxt.oms.biz.func.basegoodsspu.BaseGoodsSpuVo;
import com.yxt.oms.biz.func.basegoodstype.BaseGoodsTypeVo;
import com.yxt.oms.biz.func.crmcustomer.CrmCustomerTemp;
import com.yxt.oms.feign.customer.customertemp.CrmCustomerTempFeign;
import com.yxt.oms.feign.goods.basebrandinfo.BaseBrandInfoFeign;
import com.yxt.oms.feign.goods.basegoodssku.BaseGoodsSkuFeign;
import com.yxt.oms.feign.goods.basegoodsskuextend.BaseGoodsSkuExtendFeign;
import com.yxt.oms.feign.goods.basegoodsspu.BaseGoodsSpuFeign;
import com.yxt.oms.feign.goods.basegoodsspu.GoodsSpuQuery;
import com.yxt.oms.feign.goods.basegoodsspu.GoodsSpuVo;
import com.yxt.oms.feign.goods.basegoodstype.BaseGoodsTypeFeign;
import com.yxt.oms.feign.sales.smssalesbill.*;
import com.yxt.oms.feign.warehouse.warehouseInventory.WarehouseInventoryFeign;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseInventoryCountReportQuery;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseInventoryRecordFeign;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.WarehouseOutReportVo;
import com.yxt.oms.feign.warehouse.warehouseinventoryrecord.*;
import com.yxt.oms.feign.warehouse.warehouseoutbill.WarehouseOutBillDetailDto;
import com.yxt.oms.feign.warehouse.warehouseoutbill.WarehouseOutBillDto;
import com.yxt.oms.feign.warehouse.warehouseoutbill.WarehouseOutBillFeign;
@ -50,10 +61,15 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
/**
* Project: ss-sales(ss-sales) <br/>
@ -83,6 +99,19 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
private WarehouseInventoryRecordFeign warehouseInventoryRecordFeign;
@Autowired
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
HttpServletResponse response;
@Autowired
private BaseGoodsSpuFeign baseGoodsSpuFeign;
@Autowired
private BaseGoodsSkuFeign baseGoodsSkuFeign;
@Autowired
BaseGoodsTypeFeign baseGoodsTypeFeign;
@Autowired
BaseBrandInfoFeign baseBrandInfoFeign;
@Autowired
BaseGoodsSkuExtendFeign baseGoodsSkuExtendFeign;
private QueryWrapper<SmsSalesBill> createQueryWrapper(SmsSalesBillQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -182,7 +211,137 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
}
return warehouseInventoryRecordFeign.customerSales(pq);
}
public ResultBean<PagerVo<WarehouseGoodsSalesReportVo>> goodsSales(PagerQuery<WarehouseInventoryCountReportQuery> pq) {
// crmCustomerTempFeign.
GoodsSpuQuery query=new GoodsSpuQuery();
if(StringUtils.isNotBlank(query.getBrandSid())){
query.setBrandSid(query.getBrandSid());
}
if(StringUtils.isNotBlank(query.getTypeSid())){
query.setTypeSid(query.getTypeSid());
}
if(StringUtils.isNotBlank(query.getBrandSid())|| StringUtils.isNotBlank(query.getTypeSid())){
ResultBean<List<GoodsSpuVo>> listResultBean = baseGoodsSpuFeign.listAllByQuery(query);
pq.getParams().setTypeSids(listResultBean.getData().stream().map(s->s.getSid()).collect(Collectors.toList()));
}
ResultBean<PagerVo<WarehouseGoodsSalesReportVo>> pagerVoResultBean = warehouseInventoryRecordFeign.goodsSales(pq);
for (WarehouseGoodsSalesReportVo record : pagerVoResultBean.getData().getRecords()) {
BigDecimal bigDecimal=new BigDecimal(record.getAmount());
if(bigDecimal.compareTo(new BigDecimal(0))!=1){
record.setAmount(new BigDecimal(record.getCount()).multiply(new BigDecimal(record.getCost())).toString());
record.setAverageCost(new BigDecimal(record.getAmount()).divide(new BigDecimal(record.getCount())).toString());
}
ResultBean<BaseGoodsSpuVo> initialization1=new ResultBean<>();
if(StringUtils.isBlank(record.getGoodsSpuSid())){
ResultBean<BaseGoodsSkuVo> initialization = baseGoodsSkuFeign.initialization(record.getGoodsSkuSid());
initialization1 = baseGoodsSpuFeign.initialization(initialization.getData().getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}else{
initialization1 = baseGoodsSpuFeign.initialization(record.getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}
ResultBean<BaseGoodsSkuExtendVo> extendBySkuSid = baseGoodsSkuExtendFeign.getExtendBySkuSid(record.getGoodsSkuSid());
record.setCbdPrice(extendBySkuSid.getData().getCostPrice());
record.setCbPrice(new BigDecimal(extendBySkuSid.getData().getCostPrice()).multiply(new BigDecimal(record.getCount())).toString());
record.setMl(new BigDecimal(record.getAmount()).subtract(new BigDecimal(record.getCbPrice())).toString());
record.setMll(new BigDecimal(record.getAmount()).subtract(new BigDecimal(record.getCbPrice())).divide(new BigDecimal(record.getCbPrice())).toString());
if(StringUtils.isBlank(record.getBrandName())){
ResultBean<BaseBrandInfoVo> initialization3 = baseBrandInfoFeign.initialization(initialization1.getData().getBrandSid());
record.setBrandSid(initialization3.getData().getSid());
record.setBrandName(initialization3.getData().getBrandName());
}
if(StringUtils.isBlank(record.getTypeName())){
ResultBean<BaseGoodsTypeVo> initialization2 = baseGoodsTypeFeign.initialization(initialization1.getData().getGoodsTypeSid());
record.setTypeName(initialization2.getData().getGoodsTypeName());
record.setTypeSid(initialization2.getData().getSid());
}
}
return pagerVoResultBean;
}
public void customerSalesExport(WarehouseInventoryCountReportQuery pq) {
List<WarehouseCustomerOutReportExcelVo> exportVoList = warehouseInventoryRecordFeign.customerSalesExport(pq);
for (WarehouseCustomerOutReportExcelVo record : exportVoList) {
BigDecimal bigDecimal=new BigDecimal(record.getAmount());
if(bigDecimal.compareTo(new BigDecimal(0))!=1){
record.setAmount(new BigDecimal(record.getCount()).multiply(new BigDecimal(record.getCost())).toString());
}
ResultBean<CrmCustomerTemp> crmCustomerTempResultBean = crmCustomerTempFeign.fetchBySid(record.getCustomerSid());
if(crmCustomerTempResultBean.getData()!=null){
record.setCustomerCode(crmCustomerTempResultBean.getData().getCustomerNo());
}
}
//定义导出的excel名字
String excelName = "客户销售列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, WarehouseCustomerOutReportExcelVo.class, response);
}
public void goodsSalesExport(WarehouseInventoryCountReportQuery pq) {
GoodsSpuQuery query=new GoodsSpuQuery();
if(StringUtils.isNotBlank(query.getBrandSid())){
query.setBrandSid(query.getBrandSid());
}
if(StringUtils.isNotBlank(query.getTypeSid())){
query.setTypeSid(query.getTypeSid());
}
if(StringUtils.isNotBlank(query.getBrandSid())|| StringUtils.isNotBlank(query.getTypeSid())){
ResultBean<List<GoodsSpuVo>> listResultBean = baseGoodsSpuFeign.listAllByQuery(query);
pq.setTypeSids(listResultBean.getData().stream().map(s->s.getSid()).collect(Collectors.toList()));
}
List<WarehouseGoodsSalesReportExcelVo> exportVoList = warehouseInventoryRecordFeign.goodsSalesExport(pq);
for (WarehouseGoodsSalesReportExcelVo record : exportVoList) {
BigDecimal bigDecimal=new BigDecimal(record.getAmount());
if(bigDecimal.compareTo(new BigDecimal(0))!=1){
record.setAmount(new BigDecimal(record.getCount()).multiply(new BigDecimal(record.getCost())).toString());
record.setAverageCost(new BigDecimal(record.getAmount()).divide(new BigDecimal(record.getCount())).toString());
}
ResultBean<BaseGoodsSpuVo> initialization1=new ResultBean<>();
if(StringUtils.isBlank(record.getGoodsSpuSid())){
ResultBean<BaseGoodsSkuVo> initialization = baseGoodsSkuFeign.initialization(record.getGoodsSkuSid());
initialization1 = baseGoodsSpuFeign.initialization(initialization.getData().getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}else{
initialization1 = baseGoodsSpuFeign.initialization(record.getGoodsSpuSid());
record.setBarCode(initialization1.getData().getBarCode());
record.setGoodsCode(initialization1.getData().getGoodsCode());
}
ResultBean<BaseGoodsSkuExtendVo> extendBySkuSid = baseGoodsSkuExtendFeign.getExtendBySkuSid(record.getGoodsSkuSid());
record.setCbdPrice(extendBySkuSid.getData().getCostPrice());
record.setCbPrice(new BigDecimal(extendBySkuSid.getData().getCostPrice()).multiply(new BigDecimal(record.getCount())).toString());
record.setMl(new BigDecimal(record.getAmount()).subtract(new BigDecimal(record.getCbPrice())).toString());
record.setMll(new BigDecimal(record.getAmount()).subtract(new BigDecimal(record.getCbPrice())).divide(new BigDecimal(record.getCbPrice())).toString());
if(StringUtils.isBlank(record.getBrandName())){
ResultBean<BaseBrandInfoVo> initialization3 = baseBrandInfoFeign.initialization(initialization1.getData().getBrandSid());
record.setBrandSid(initialization3.getData().getSid());
record.setBrandName(initialization3.getData().getBrandName());
}
if(StringUtils.isBlank(record.getTypeName())){
ResultBean<BaseGoodsTypeVo> initialization2 = baseGoodsTypeFeign.initialization(initialization1.getData().getGoodsTypeSid());
record.setTypeName(initialization2.getData().getGoodsTypeName());
record.setTypeSid(initialization2.getData().getSid());
}
}
//定义导出的excel名字
String excelName = "商品销售列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, WarehouseGoodsSalesReportExcelVo.class, response);
}
public ResultBean deleteBySids(String[] sids) {
return smsSalesBillFeign.delBySids(sids);
}

25
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsskuextend/BaseGoodsSkuExtendFeign.java

@ -0,0 +1,25 @@
package com.yxt.oms.feign.goods.basegoodsskuextend;
import com.yxt.common.core.result.ResultBean;
import com.yxt.oms.biz.func.basegoodsskuextend.BaseGoodsSkuExtendVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@FeignClient(
contextId = "yss-common-goods-GoodsSkuExtend",
name = "ss-common-goods",
path = "/apiadmin/base/basegoodsskuextend",
fallback = BaseGoodsSkuExtendFeignFallback.class)
public interface BaseGoodsSkuExtendFeign {
@ApiOperation("获取扩展")
@GetMapping("/getExtendBySkuSid/{sid}")
public ResultBean<BaseGoodsSkuExtendVo> getExtendBySkuSid(@PathVariable("sid") String sid);
}

19
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsskuextend/BaseGoodsSkuExtendFeignFallback.java

@ -0,0 +1,19 @@
package com.yxt.oms.feign.goods.basegoodsskuextend;
import com.yxt.common.core.result.ResultBean;
import com.yxt.oms.biz.func.basegoodsskuextend.BaseGoodsSkuExtendVo;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@Component
public class BaseGoodsSkuExtendFeignFallback implements BaseGoodsSkuExtendFeign {
@Override
public ResultBean<BaseGoodsSkuExtendVo> getExtendBySkuSid(String sid) {
return null;
}
}

3
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/BaseGoodsSpuFeign.java

@ -64,4 +64,7 @@ public interface BaseGoodsSpuFeign {
@ApiOperation("产品管理获取商品")
@PostMapping("/getGoodsForProduct")
public ResultBean<List<ProductGoodsVo>> getGoodsForProduct(@RequestBody ProductGoodsQuery query);
@ApiOperation("查询所有")
@PostMapping("/listAllByQuery")
public ResultBean<List<GoodsSpuVo>> listAllByQuery(@RequestBody GoodsSpuQuery query);
}

5
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/BaseGoodsSpuFeignFallback.java

@ -77,4 +77,9 @@ public class BaseGoodsSpuFeignFallback implements BaseGoodsSpuFeign {
public ResultBean<List<ProductGoodsVo>> getGoodsForProduct(ProductGoodsQuery query) {
return null;
}
@Override
public ResultBean<List<GoodsSpuVo>> listAllByQuery(GoodsSpuQuery query) {
return null;
}
}

44
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/GoodsSpuQuery.java

@ -0,0 +1,44 @@
package com.yxt.oms.feign.goods.basegoodsspu;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author wangpengfei
* @date 2024/2/26 13:37
*/
@Data
public class GoodsSpuQuery implements Query {
//商品编码
private String goodsCode;
//商品名称
private String goodsName;
//条形码
private String barCode;
//规格编码
private String goodsSkuCode;
//规格型号
private String title;
//具体规格
private String ownSpec;
//品牌
private String brandName;
//厂家
private String manufacturerName;
//厂家货号
private String manufacturerCode;
private String userOrgSid;
private String createOrgSid;//创建组织sid
private String orgLevelKey;//权限等级
@ApiModelProperty("菜单路由")
private String menuUrl;
@ApiModelProperty("组织全路径sid")
private String orgPath;
@ApiModelProperty("用户sid")
private String userSid;
private int index;
private String brandSid;
private String typeSid;
}

73
oms/src/main/java/com/yxt/oms/feign/goods/basegoodsspu/GoodsSpuVo.java

@ -0,0 +1,73 @@
package com.yxt.oms.feign.goods.basegoodsspu;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import com.yxt.oms.biz.func.basegoodsspudetail.BaseGoodsSpuDetailVo;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
* @author wangpengfei
* @date 2024/2/26 13:37
*/
@Data
public class GoodsSpuVo implements Vo {
private String id;
private String sid;
private String lockVersion;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date modifyTime;
private String remarks;
private String isEnable;
private String state;
private String isDelete;
private String goodsCode;//商品代码
private String barCode;//条形码
private String goodsName;//商品名称
private String subTitle;//商品名称
private String goodsPY;//拼音缩写
private String goodsShortName;//商品简称
private String goodsTypeSid;//商品分类sid
private String brandSid;//品牌sid
private String manufacturerSid;//厂家sid
private String goodsUnitSid;//商品单位sid
private String goodsUnitName;//商品单位名称
private String taxRate;//税率
private String shelfLife;//保质期天
private String nationalStandardCode;//国标码
private String sortNo;//排序
private String externalCode;//外部编码
private String factoryCode;//厂家货号
private String isListed;//是否上架
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
private BaseGoodsSpuDetailVo baseGoodsSpuDetail;
// private List<GoodsSkuVo> baseGoodsSkus;
private String brandName;
private String manufacturerName;
private String typeName;
private String userSid;
private String orgPath;
private String goodsLevelKey;//商品等级Key
private String goodsLevelValue;//商品等级value(数据字典,如A、B、C)
private String goodsClassKey;//商品类型key
private String goodsClassValue;//商品类型value(数据字典,如正常商品、赠品、耗材等)
private String aidBarCode;//辅助条码
private String lengthUnit;//长度单位
private String volumeUnit;//体积单位
private String weightUnit;//重量单位
private double weight;//重量
private double volume;//体积(长*宽*高)
private double vLength;//长
private double vWidth;//宽
private double vHeight;//高
private String packageSpecs;//包装规格(如1*30包,1*300ml)
private double quantityOfPackage;//包装内数量
private String packUnit;//包装单位
private BigDecimal packPrice;//包装单价
}

25
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseCustomerOutReportExcelVo.java

@ -0,0 +1,25 @@
package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/7 9:41
*/
@Data
public class WarehouseCustomerOutReportExcelVo {
private String sid;
private String customerSid;
@ExportEntityMap(CnName = "客户编码", EnName = "customerCode")
private String customerCode;
@ExportEntityMap(CnName = "客户名称", EnName = "customerName")
private String customerName;//客户名称
@ExportEntityMap(CnName = "销售数量", EnName = "amount")
private String amount;//销售数量
@ExportEntityMap(CnName = "销售金额", EnName = "count")
private String count;//销售金额
@ExportEntityMap(CnName = "运费", EnName = "shippingFee")
private String shippingFee; //运费
private String cost;
}

36
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsPurchaseReportExcelVo.java

@ -0,0 +1,36 @@
package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/7 14:19
*/
@Data
public class WarehouseGoodsPurchaseReportExcelVo {
private String goodsSkuSid;
private String goodsSpuSid;
@ExportEntityMap(CnName = "商品编码", EnName = "goodsCode")
private String goodsCode;
@ExportEntityMap(CnName = "条码", EnName = "barCode")
private String barCode;
@ExportEntityMap(CnName = "商品名称", EnName = "goodsName")
private String goodsName;
@ExportEntityMap(CnName = "规格编码", EnName = "goodsSkuCode")
private String goodsSkuCode;
@ExportEntityMap(CnName = "规格型号", EnName = "title")
private String title;
private String typeSid;
@ExportEntityMap(CnName = "分类", EnName = "typeName")
private String typeName;
private String brandSid;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "数量", EnName = "count")
private String count;
@ExportEntityMap(CnName = "单价", EnName = "cost")
private String cost;
@ExportEntityMap(CnName = "金额", EnName = "amount")
private String amount;
}

26
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsPurchaseReportVo.java

@ -0,0 +1,26 @@
package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/7 10:25
*/
@Data
public class WarehouseGoodsPurchaseReportVo {
private String goodsSkuSid;
private String goodsSpuSid;
private String goodsCode;//
private String barCode;//
private String goodsName;//
private String goodsSkuCode;//
private String title;//
private String typeSid;
private String typeName;//
private String brandSid;
private String brandName;//
private String count;//
private String cost;//
private String amount;//
}

45
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsSalesReportExcelVo.java

@ -0,0 +1,45 @@
package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/7 17:10
*/
@Data
public class WarehouseGoodsSalesReportExcelVo {
private String goodsSkuSid;
private String goodsSpuSid;
@ExportEntityMap(CnName = "商品编码", EnName = "goodsCode")
private String goodsCode;
@ExportEntityMap(CnName = "条码", EnName = "barCode")
private String barCode;
@ExportEntityMap(CnName = "商品名称", EnName = "goodsName")
private String goodsName;
@ExportEntityMap(CnName = "规格编码", EnName = "goodsSkuCode")
private String goodsSkuCode;
@ExportEntityMap(CnName = "规格型号", EnName = "title")
private String title;
private String typeSid;
@ExportEntityMap(CnName = "分类", EnName = "typeName")
private String typeName;
private String brandSid;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "数量", EnName = "count")
private String count;
@ExportEntityMap(CnName = "平均金额", EnName = "averageCost")
private String averageCost;
@ExportEntityMap(CnName = "金额", EnName = "amount")
private String amount;
@ExportEntityMap(CnName = "成本单价", EnName = "cbPrice")
private String cbPrice;
@ExportEntityMap(CnName = "成本", EnName = "cbdPrice")
private String cbdPrice;
@ExportEntityMap(CnName = "毛利", EnName = "ml")
private String ml;
@ExportEntityMap(CnName = "毛利率", EnName = "mll")
private String mll;
private String cost;
}

30
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseGoodsSalesReportVo.java

@ -0,0 +1,30 @@
package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import lombok.Data;
/**
* @author wangpengfei
* @date 2025/1/7 15:29
*/
@Data
public class WarehouseGoodsSalesReportVo {
private String goodsSkuSid;
private String goodsSpuSid;
private String goodsCode;
private String barCode;
private String goodsName;
private String goodsSkuCode;
private String title;
private String typeSid;
private String typeName;
private String brandSid;
private String brandName;
private String count;
private String averageCost;
private String amount;
private String cbPrice;
private String cbdPrice;
private String ml;
private String mll;
private String cost;
}

11
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseInventoryCountReportQuery.java

@ -4,6 +4,8 @@ package com.yxt.oms.feign.warehouse.warehouseinventoryrecord;
import com.yxt.common.core.query.Query;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
@ -18,5 +20,12 @@ public class WarehouseInventoryCountReportQuery implements Query {
private String orgPath;
private String customerName;
private String customerCode;
private String warehouseSid;
private String goodsSid;
private String supplierSid;
// private String
private String brandSid;
private String typeSid;
private List<String> typeSids;
private List<String> brandSids;
}

17
oms/src/main/java/com/yxt/oms/feign/warehouse/warehouseinventoryrecord/WarehouseInventoryRecordFeign.java

@ -11,6 +11,8 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
/**
* Project: anrui_portal(门户建设) <br/>
* File: SysRoleFeign.java <br/>
@ -34,5 +36,20 @@ public interface WarehouseInventoryRecordFeign {
@ApiOperation("客户销售统计报表")
@PostMapping("/customerSales")
public ResultBean<PagerVo<WarehouseOutReportVo>> customerSales(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq);
@ApiOperation("客户销售统计报表")
@PostMapping("/customerSalesExport")
public List<WarehouseCustomerOutReportExcelVo> customerSalesExport(@RequestBody WarehouseInventoryCountReportQuery pq);
@ApiOperation("商品采购统计报表")
@PostMapping("/goodsPurchase")
public ResultBean<PagerVo<WarehouseGoodsPurchaseReportVo>> goodsPurchase(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq);
@PostMapping("/goodsPurchaseExport")
@ApiOperation(value = "客户销售统计报表导出")
public List<WarehouseGoodsPurchaseReportExcelVo> goodsPurchaseExport(@RequestBody WarehouseInventoryCountReportQuery query);
@ApiOperation("商品销售统计报表")
@PostMapping("/goodsSales")
public ResultBean<PagerVo<WarehouseGoodsSalesReportVo>> goodsSales(@RequestBody PagerQuery<WarehouseInventoryCountReportQuery> pq);
@ApiOperation("商品销售统计报表")
@PostMapping("/goodsSalesExport")
public List<WarehouseGoodsSalesReportExcelVo> goodsSalesExport(@RequestBody WarehouseInventoryCountReportQuery pq);
}

Loading…
Cancel
Save