Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 10 months ago
parent
commit
0556c264cb
  1. 1
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentDetailsVo.java
  2. 23
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java
  3. 7
      yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSpuRest.java
  4. 14
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuService.java
  5. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java
  6. 22
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java
  7. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRack.java
  8. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java
  9. 9
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java
  10. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml
  11. 124
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java
  12. 30
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/AppTagInit.java
  13. 31
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTag.java
  14. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagListQuery.java
  15. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagVo.java
  16. 17
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HousePrintVo.java
  17. 41
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HouseRackPrint.java
  18. 29
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HouseRackVo.java
  19. 38
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/ListElement.java
  20. 19
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/PrintQuery.java
  21. 16
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/TagQuery.java
  22. 52
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/util/GetSerialNum.java
  23. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java
  24. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java
  25. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml
  26. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java
  27. 275
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java
  28. 27
      yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpuFeign.java

1
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrepaymentschedule/LoanRepaymentDetailsVo.java

@ -15,6 +15,7 @@ import java.util.List;
public class LoanRepaymentDetailsVo {
private String sid;
private String salesOrderSid;
@ApiModelProperty("消贷合同编号")
private String loanContractNo;
@ApiModelProperty("借款人名称")

23
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrepaymentschedule/LoanRepaymentScheduleService.java

@ -4628,6 +4628,7 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
LoanRepaymentSchedule schedule = baseMapper.selectByContractSid(salesOrderSid);
List<DetailsListVo> vinList = new ArrayList<>();
if (null != schedule) {
vo.setSalesOrderSid(schedule.getLoanContractSid());
vo.setSid(schedule.getSid());
vo.setIsOtherPolicy(schedule.getIsOtherPolicy());
if (StringUtils.isNotBlank(schedule.getLoanContractNo())) {
@ -4803,6 +4804,28 @@ public class LoanRepaymentScheduleService extends MybatisBaseService<LoanRepayme
vinList.add(listVo);
}
}
} else {
List<DetailsVehVo> vehVos = baseMapper.selMoneyAndVin(schedule.getSid());
for (DetailsVehVo detailsVehVo : vehVos) {
DetailsListVo listVo = new DetailsListVo();
listVo.setBusVinSid(detailsVehVo.getBusVinSid());
listVo.setVinNo(detailsVehVo.getVinNo());
BigDecimal mf = schedule.getMainFirstRepay();
BigDecimal mm = schedule.getMainMidRepay();
BigDecimal ml = schedule.getMainLastRepay();
listVo.setMainFirstRepay(mf.toString());
listVo.setMainMidRepay(mm.toString());
listVo.setMainLastRepay(ml.toString());
if (schedule.getIsOtherPolicy().equals("1")) {
BigDecimal of = schedule.getOtherFirstRepay();
BigDecimal om = schedule.getOtherMidRepay();
BigDecimal ol = schedule.getOtherLastRepay();
listVo.setOtherFirstRepay(of.toString());
listVo.setOtherMidRepay(om.toString());
listVo.setOtherLastRepay(ol.toString());
}
vinList.add(listVo);
}
}
} else {
List<DetailsVehVo> vehVos = baseMapper.selMoneyAndVin(schedule.getSid());

7
yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsSpuRest.java

@ -77,4 +77,11 @@ public class BaseGoodsSpuRest {
public ResultBean updateIsEnable(@PathVariable("sid") String sid,@PathVariable("isEnable")String isEnable) {
return baseGoodsSpuService.updateIsEnable(sid,isEnable);
}
@ApiOperation("查询商品是否为一品一码")
@GetMapping("/selIsGoodsID/{sid}")
public ResultBean<String> selIsGoodsID(@PathVariable("sid") String sid) {
return baseGoodsSpuService.selIsGoodsID(sid);
}
}

14
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodsspu/BaseGoodsSpuService.java

@ -568,4 +568,18 @@ public class BaseGoodsSpuService extends MybatisBaseService<BaseGoodsSpuMapper,
}
return rb.success();
}
public ResultBean<String> selIsGoodsID(String sid) {
ResultBean rb = ResultBean.fireFail();
String isGoodsID = "";
BaseGoodsSpu baseGoodsSpu = fetchBySid(sid);
if (null != baseGoodsSpu) {
String goodsTypeSid = baseGoodsSpu.getGoodsTypeSid();
BaseGoodsType baseGoodsType = baseGoodsTypeService.fetchBySid(goodsTypeSid);
if (null != baseGoodsType) {
isGoodsID = baseGoodsType.getIsGoodsID();
}
}
return rb.success().setData(isGoodsID);
}
}

19
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java

@ -4,8 +4,10 @@ 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.wmsgoodstag.WmsGoodsTagService;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.AppTagInit;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.GoodsTagListQuery;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.GoodsTagListVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.HouseRackVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -33,5 +35,22 @@ public class WmsGoodsTagRest {
return rb.success().setData(pv);
}
@PostMapping("houseList")
@ApiOperation("库位标签列表")
ResultBean<MyPagerVo<HouseRackVo>> houseList(@RequestBody PagerQuery<GoodsTagListQuery> pagerQuery) {
ResultBean<MyPagerVo<HouseRackVo>> rb = ResultBean.fireFail();
MyPagerVo<HouseRackVo> pv = wmsWmsGoodsTagService.houseList(pagerQuery);
return rb.success().setData(pv);
}
@GetMapping("receivedId/{sid}")
@ApiOperation("收货单初始化")
ResultBean<AppTagInit> receivedIdInit(@PathVariable("sid") String sid) {
ResultBean<AppTagInit> rb = ResultBean.fireFail();
AppTagInit vo = wmsWmsGoodsTagService.receivedIdInit(sid);
return rb.success().setData(vo);
}
}

22
yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsShelfBillRest.java

@ -3,6 +3,7 @@ package com.yxt.wms.apiadmin.inventroy;
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.wmsgoodstag.app.*;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillDto2;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillPageVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillQuery;
@ -14,6 +15,8 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -111,4 +114,23 @@ public class WmsShelfBillRest {
public ResultBean<AppDetailsVo> shelvesDetails(@PathVariable("sid") String sid) {
return wmsShelfBillService.shelvesDetails(sid);
}
//---------------------app标签打印-------------------------------------
@ApiOperation("商品打印")
@PostMapping("/print0")
public ResultBean<GoodsTagVo> print0(@RequestBody TagQuery query) {
return wmsShelfBillService.print0(query);
}
@ApiOperation("打印次数")
@PostMapping("/printCount")
public ResultBean printCount(@RequestBody PrintQuery query) {
return wmsShelfBillService.printCount(query);
}
@ApiOperation("库位打印")
@PostMapping("/print1")
public ResultBean<HousePrintVo> print1(@RequestBody TagQuery query) {
return wmsShelfBillService.print1(query);
}
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRack.java

@ -2,6 +2,7 @@ package com.yxt.wms.biz.base.wmswarehouserack;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@ -24,4 +25,6 @@ public class WmsWarehouseRack extends BaseEntity {
private String warehouseSid;//仓库sid
private String locationSid;//库位sid
private String rackFullCode;//库位全码(仓库编码-库区编码-库位编码)
@ApiModelProperty("打印次数")
private Integer printCount;
}

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/base/wmswarehouserack/WmsWarehouseRackService.java

@ -189,7 +189,7 @@ public class WmsWarehouseRackService extends MybatisBaseService<WmsWarehouseRack
public ResultBean<WmsHouseInfoVo> selHouseInfoByFullCode(String rackFullCode) {
ResultBean rb = ResultBean.fireFail();
WmsHouseInfoVo info = new WmsHouseInfoVo();
WmsWarehouseRack rack = baseMapper.selHouseInfoByFullCode(rackFullCode);
WmsWarehouseRack rack = fetchBySid(rackFullCode);
if (null != rack) {
info.setWarehouseRackSid(rack.getSid());
info.setWarehouseRackName(rack.getRackName());

9
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java

@ -5,10 +5,13 @@ 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.wmsgoodstag.app.GoodsTagListVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.HouseRackVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @description:
@ -21,4 +24,10 @@ public interface WmsGoodsTagMapper extends BaseMapper<WmsGoodsTag> {
WmsGoodsTag selByBillSidAndGoodsID(@Param("billSid") String billSid, @Param("goodsID") String goodsID);
IPage<GoodsTagListVo> goodsList(IPage<WmsReceiptBill> page, @Param(Constants.WRAPPER) QueryWrapper<WmsReceiptBill> qw);
List<WmsGoodsTag> selByBillSidAndBillDetailsSidAndGoodsSpuSid(@Param("billSid") String billSid, @Param("sid")String sid, @Param("goodSpuSid")String goodSpuSid);
String selectGoodsIDNum(String s);
IPage<HouseRackVo> houseList(IPage<HouseRackVo> page, @Param(Constants.WRAPPER) QueryWrapper<HouseRackVo> qw);
}

30
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml

@ -28,4 +28,34 @@
${ew.sqlSegment}
</where>
</select>
<select id="selByBillSidAndBillDetailsSidAndGoodsSpuSid"
resultType="com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag">
select * from wms_goods_tag where billSid =#{billSid} and billDetailSid =#{sid} and goodSpuSid =#{goodSpuSid}
</select>
<select id="selectGoodsIDNum" resultType="java.lang.String">
select RIGHT (goodsID, 4)
from wms_goods_tag
where goodsID LIKE concat(#{s}, '%')
order by id desc
limit 1
</select>
<select id="houseList" resultType="com.yxt.wms.biz.inventory.wmsgoodstag.app.HouseRackVo">
SELECT
*
FROM
(
SELECT
CONCAT( i.warehouseName, '-', r.rackName ) AS houseName,
r.sid AS houseSid,
r.printCount AS printNum,
r.rackCode AS houseNum,
i.useOrgSid
FROM
wms_warehouse_rack AS r
LEFT JOIN wms_warehouse_info AS i ON r.warehouseSid = i.sid
) AS a
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

124
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java

@ -1,5 +1,6 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.common.base.service.MybatisBaseService;
@ -11,13 +12,22 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBill;
import com.yxt.wms.biz.inventory.wmsansbill.WmsAnsBillVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.GoodsTagListQuery;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.GoodsTagListVo;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.*;
import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerUtil;
import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBillService;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail;
import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailService;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.wms.feign.portal.sysorganization.SysOrganizationVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -26,18 +36,124 @@ import org.springframework.stereotype.Service;
@Service
public class WmsGoodsTagService extends MybatisBaseService<WmsGoodsTagMapper, WmsGoodsTag> {
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private WmsReceiptBillService wmsReceiptBillService;
@Autowired
private WmsReceiptBillDetailService wmsReceiptBillDetailService;
public WmsGoodsTag selByBillSidAndGoodsID(String billSid, String goodsID) {
return baseMapper.selByBillSidAndGoodsID(billSid,goodsID);
return baseMapper.selByBillSidAndGoodsID(billSid, goodsID);
}
public MyPagerVo<GoodsTagListVo> goodsList(PagerQuery<GoodsTagListQuery> pagerQuery) {
GoodsTagListQuery query = pagerQuery.getParams();
QueryWrapper<WmsReceiptBill> qw = new QueryWrapper<>();
String orgPath = query.getOrgPath();
String useOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
useOrgSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
useOrgSid = sysOrganization.getSid();
}
qw.eq("a.deptSid", useOrgSid);
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("a.billNo", query.getName())
.or().like("a.createByName", query.getName())
.or().like("a.supplierName", query.getName())
.or().like("a.deliveryDate", query.getName())
);
}
//ToDo:添加查询条件
qw.eq("a.printState",0);
// qw.eq("a.printState", 0);
IPage<WmsReceiptBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<GoodsTagListVo> pagging = baseMapper.goodsList(page, qw);
MyPagerVo<GoodsTagListVo> p = MyPagerUtil.pageToVo(pagging, null);
return p;
}
public AppTagInit receivedIdInit(String sid) {
AppTagInit vo = new AppTagInit();
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(sid);
if (null != wmsReceiptBill) {
vo.setReceivedId(wmsReceiptBill.getBillNo());
if (StringUtils.isNotBlank(wmsReceiptBill.getSupplierName())) {
vo.setProvider(wmsReceiptBill.getSupplierName());
}
if (null != wmsReceiptBill.getDeliveryDate()) {
vo.setArriveTime(DateUtil.formatDate(wmsReceiptBill.getDeliveryDate()));
}
List<ListElement> list = new ArrayList<>();
List<WmsReceiptBillDetail> details = wmsReceiptBillDetailService.selByBillSid(sid);
if (!details.isEmpty()) {
for (WmsReceiptBillDetail detail : details) {
ListElement element = new ListElement();
if (StringUtils.isNotBlank(detail.getGoodsSkuCode())) {
element.setGoodsID(detail.getGoodsSkuCode());
}
if (null != detail.getActualInCount()) {
element.setCount(String.valueOf(detail.getActualInCount().intValue()));
}
if (StringUtils.isNotBlank(detail.getGoodsSpuName())) {
element.setGoodsName(detail.getGoodsSpuName());
}
if (StringUtils.isNotBlank(detail.getGoodsSkuOwnSpec())) {
element.setGoodsSkuOwnSpec(detail.getGoodsSkuOwnSpec());
}
if (StringUtils.isNotBlank(detail.getUnit())) {
element.setUnit(detail.getUnit());
}
element.setSid(detail.getSid());
element.setPrintNum(detail.getPrintCount().toString());
list.add(element);
}
vo.setList(list);
}
}
return vo;
}
public List<WmsGoodsTag> selByBillSidAndBillDetailsSidAndGoodsSpuSid(String billSid, String sid, String goodSpuSid) {
return baseMapper.selByBillSidAndBillDetailsSidAndGoodsSpuSid(billSid,sid,goodSpuSid);
}
public String selectGoodsIDNum(String s) {
return baseMapper.selectGoodsIDNum(s);
}
public MyPagerVo<HouseRackVo> houseList(PagerQuery<GoodsTagListQuery> pagerQuery) {
GoodsTagListQuery query = pagerQuery.getParams();
QueryWrapper<HouseRackVo> qw = new QueryWrapper<>();
String orgPath = query.getOrgPath();
String useOrgSid = "";
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
//获取本级sid获取本级部门信息
SysOrganizationVo sysOrganization1 = sysOrganizationFeign.fetchBySid(split.get(split.size() - 1)).getData();
useOrgSid = sysOrganization1.getSid();
} else {
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(split.get(0)).getData();
useOrgSid = sysOrganization.getSid();
}
qw.eq("a.useOrgSid", useOrgSid);
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("a.houseName", query.getName())
.or().like("a.houseNum", query.getName())
);
}
//ToDo:添加查询条件
IPage<HouseRackVo> page = PagerUtil.queryToPage(pagerQuery);
IPage<HouseRackVo> pagging = baseMapper.houseList(page, qw);
MyPagerVo<HouseRackVo> p = MyPagerUtil.pageToVo(pagging, null);
return p;
}
}

30
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/AppTagInit.java

@ -0,0 +1,30 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/25 10:19
*/
@Data
public class AppTagInit {
/**
* 到货日期
*/
private String arriveTime;
private List<ListElement> list = new ArrayList<>();
/**
* 供应商
*/
private String provider;
/**
* 收货单编号
*/
private String receivedId;
}

31
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTag.java

@ -0,0 +1,31 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/25 11:11
*/
@Data
public class GoodsTag {
/**
* 二维码内容
*/
private String qrText;
/**
* 名称名称:xxx
*/
private String text1;
/**
* 图号图号:xxx
*/
private String text2;
/**
* 入库日期入库日期:xxx
*/
private String text3;
private String sid;
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagListQuery.java

@ -11,5 +11,8 @@ import lombok.Data;
@Data
public class GoodsTagListQuery implements Query {
private String menuSid;
private String userSid;
private String orgPath;
private String name;
}

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagVo.java

@ -0,0 +1,16 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/25 13:59
*/
@Data
public class GoodsTagVo {
private List<GoodsTag> goods = new ArrayList<>();
}

17
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HousePrintVo.java

@ -0,0 +1,17 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/25 16:03
*/
@Data
public class HousePrintVo {
private List<HouseRackPrint> houses = new ArrayList<>();
}

41
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HouseRackPrint.java

@ -0,0 +1,41 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/25 16:02
*/
@Data
public class HouseRackPrint {
/**
* 二维码内容
*/
private String qrText;
/**
* 库区名称名称:xxx
*/
private String text0;
/**
* 仓库名称竖着的那个文字
*/
private String text00;
/**
*
*/
private String text5;
/**
*
*/
private String text6;
/**
*
*/
private String text7;
/**
*
*/
private String text8;
private String sid;
}

29
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/HouseRackVo.java

@ -0,0 +1,29 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/25 15:48
*/
@Data
public class HouseRackVo implements Vo {
/**
* 库位全名称
*/
private String houseName;
/**
* 库位编码
*/
private String houseNum;
/**
* sid
*/
private String houseSid;
/**
* 打印次数
*/
private String printNum;
}

38
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/ListElement.java

@ -0,0 +1,38 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/25 10:19
*/
@Data
public class ListElement {
/**
* 数量
*/
private String count;
/**
* 商品id
*/
private String goodsID;
/**
* 商品名称
*/
private String goodsName;
/**
* 规格
*/
private String goodsSkuOwnSpec;
/**
* 打印次数
*/
private String printNum;
private String sid;
/**
* 单位
*/
private String unit;
}

19
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/PrintQuery.java

@ -0,0 +1,19 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/25 11:12
*/
@Data
public class PrintQuery {
private List<GoodsTag> sids;
private String type; //0商品 1库位
}

16
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/TagQuery.java

@ -0,0 +1,16 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Fan
* @description
* @date 2024/6/25 13:55
*/
@Data
public class TagQuery {
private List<String> sids = new ArrayList<>();
}

52
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/util/GetSerialNum.java

@ -0,0 +1,52 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.util;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.locks.ReentrantLock;
public class GetSerialNum {
// /**记录已有流水单*/
// public static int num = 0;
private static ReentrantLock lock = new ReentrantLock();
public static String getNum(int num, String goodsSkuCode) {
String unique = "";
//上锁
lock.lock();
try {
//------------------流水号业务逻辑----------------
//5位流水号
if (num == 0) {
//当天第一份流水单号
unique = goodsSkuCode + new SimpleDateFormat("yyMMdd").format(new Date()) + "0001";
} else {
//当天最后的订单流水号累加1
String nums = String.valueOf(num + 1);
//设定具体流水为两位数,单数则补齐前面的0
StringBuilder sb = new StringBuilder(nums);
for (int i = nums.length(); i < 4; i++) {
sb.insert(0, "0");
}
unique = goodsSkuCode + new SimpleDateFormat("yyMMdd").format(new Date()) + sb.toString();
}
//已有流水单+1
num++;
//----------------------------------
} catch (Exception e) {
e.printStackTrace();
} finally {
//释放锁
lock.unlock();
}
return unique;
}
}

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java

@ -55,8 +55,9 @@ public class WmsReceiptBillDetail extends BaseEntity {
private BigDecimal amount;
@ApiModelProperty("单位成本(采购价)")
private BigDecimal cost;
@ApiModelProperty("标签打印状态0打印未完成,1打印已完成")
private Integer printState;
@ApiModelProperty("打印次数")
private Integer printCount;
// @ApiModelProperty("仓库sid")
// private String warehouseSid;
// @ApiModelProperty("仓库名称")

2
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.java

@ -20,4 +20,6 @@ public interface WmsReceiptBillDetailMapper extends BaseMapper<WmsReceiptBillDet
List<WmsReceiptBillDetail> selectByBillSid(@Param("sid") String sid, @Param("sidList") List<String> sidList);
WmsReceiptBillDetail selectByBillSidAndGoodsSkuCode(@Param("sourceBillSid")String sourceBillSid, @Param("goodsSkuCode")String goodsSkuCode);
List<WmsReceiptBillDetail> selByBillSid(@Param("sid") String sid);
}

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

@ -50,4 +50,8 @@
select *
from wms_receipt_bill_detail where billSid = #{sourceBillSid} and goodsSkuCode = #{goodsSkuCode}
</select>
<select id="selByBillSid" resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetail">
select *
from wms_receipt_bill_detail where billSid = #{sid}
</select>
</mapper>

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailService.java

@ -78,4 +78,8 @@ public class WmsReceiptBillDetailService extends MybatisBaseService<WmsReceiptBi
public WmsReceiptBillDetail selectByBillSidAndGoodsSkuCode(String sourceBillSid, String goodsSkuCode) {
return baseMapper.selectByBillSidAndGoodsSkuCode(sourceBillSid,goodsSkuCode);
}
public List<WmsReceiptBillDetail> selByBillSid(String sid) {
return baseMapper.selByBillSid(sid);
}
}

275
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsshelfbill/WmsShelfBillService.java

@ -10,10 +10,17 @@ 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.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.WmsHouseInfoVo;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRack;
import com.yxt.wms.biz.base.wmswarehouserack.WmsWarehouseRackService;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag;
import com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTagService;
import com.yxt.wms.biz.inventory.wmsgoodstag.app.*;
import com.yxt.wms.biz.inventory.wmsgoodstag.util.GetSerialNum;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventorySaveDto;
import com.yxt.wms.biz.inventory.wmsinventory.WmsInventoryService;
import com.yxt.wms.biz.inventory.wmsinventoryrecord.WmsInventoryRecord;
@ -26,6 +33,7 @@ import com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailServic
import com.yxt.wms.biz.inventory.wmsreceiptbilldetailbatch.WmsReceiptBillDetailBatchService;
import com.yxt.wms.biz.inventory.wmsshelfbill.app.*;
import com.yxt.wms.biz.inventory.wmsshelfbilldetail.*;
import com.yxt.wms.feign.base.basegoodspu.BaseGoodsSpuFeign;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeign;
import com.yxt.wms.feign.portal.privilege.PrivilegeQuery;
@ -46,6 +54,7 @@ import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.locks.ReentrantLock;
/**
* @description:
@ -54,6 +63,8 @@ import java.util.*;
**/
@Service
public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper, WmsShelfBill> {
@Autowired
private WmsShelfBillDetailService wmsShelfBillDetailService;
@Autowired
@ -81,7 +92,14 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
@Autowired
private WmsWarehouseRackService wmsWarehouseRackService;
@Autowired
private WmsWarehouseInfoService wmsWarehouseInfoService;
@Autowired
private WmsWarehouseAreaService wmsWarehouseAreaService;
@Autowired
private WmsGoodsTagService wmsGoodsTagService;
@Autowired
private BaseGoodsSpuFeign baseGoodsSpuFeign;
public PagerVo<WmsShelfBillVo> listPage(PagerQuery<WmsShelfBillQuery> pq) {
WmsShelfBillQuery query = pq.getParams();
@ -796,4 +814,261 @@ public class WmsShelfBillService extends MybatisBaseService<WmsShelfBillMapper,
}
return rb.success().setData(vo);
}
//----------------------------标签打印-------------------------
public ResultBean<GoodsTagVo> print0(TagQuery query) {
ResultBean rb = ResultBean.fireFail();
GoodsTagVo vo = new GoodsTagVo();
List<String> sids = query.getSids();
List<GoodsTag> list = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyMMdd");
String format = sdf.format(new Date());
Set<String> idSet = new HashSet<>();
for (String sid : sids) {
WmsReceiptBillDetail receiptBillDetail = wmsReceiptBillDetailService.fetchBySid(sid);
String billSid = receiptBillDetail.getBillSid();
String goodSpuSid = receiptBillDetail.getGoodSpuSid();
List<WmsGoodsTag> wmsGoodsTags = wmsGoodsTagService.selByBillSidAndBillDetailsSidAndGoodsSpuSid(billSid, sid, goodSpuSid);
String goodsSkuCode = receiptBillDetail.getGoodsSkuCode();
String rule = goodsSkuCode + format;
if (!wmsGoodsTags.isEmpty() && wmsGoodsTags.size() > 0) {
for (WmsGoodsTag wmsGoodsTag : wmsGoodsTags) {
GoodsTag goodsTag = new GoodsTag();
goodsTag.setSid(sid);
goodsTag.setQrText(wmsGoodsTag.getGoodsID());
if (StringUtils.isNotBlank(wmsGoodsTag.getGoodsSpuName())) {
goodsTag.setText1(wmsGoodsTag.getGoodsSpuName());
}
if (StringUtils.isNotBlank(wmsGoodsTag.getGoodsSkuCode())) {
goodsTag.setText2(wmsGoodsTag.getGoodsSkuCode());
}
goodsTag.setText3(DateUtil.formatDate(wmsGoodsTag.getCreateTime()));
list.add(goodsTag);
}
} else {
//查询该商品是否为一物一码
String isGoodsID = baseGoodsSpuFeign.selIsGoodsID(goodSpuSid).getData();
BigDecimal actualInCount = receiptBillDetail.getActualInCount();
int actualInCountInt = actualInCount.intValue();
if (actualInCountInt > 1) {
if (isGoodsID.equals("0")) {
//不是一物一码
//查询流水号生成goodsID
String i = wmsGoodsTagService.selectGoodsIDNum(goodsSkuCode + format);
if (StringUtils.isBlank(i)) {
i = "0";
}
int intValue = Integer.valueOf(i).intValue();
String goodsID = GetSerialNum.getNum(intValue, goodsSkuCode);
if (idSet.contains(goodsID)) {
List<Integer> idList = new ArrayList<>();
for (String s : idSet) {
if (s.contains(rule)) {
Integer integer = new Integer(s.substring(rule.length()));
idList.add(integer);
}
}
int max = Collections.max(idList);
String num = String.format("%04d", max + 1);
goodsID = rule + num;
}
GoodsTag goodsTag = new GoodsTag();
goodsTag.setSid(sid);
goodsTag.setQrText(goodsID);
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSpuName())) {
goodsTag.setText1(receiptBillDetail.getGoodsSpuName());
}
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSkuCode())) {
goodsTag.setText2(receiptBillDetail.getGoodsSkuCode());
}
goodsTag.setText3(DateUtil.formatDate(new Date()));
idSet.add(goodsID);
list.add(goodsTag);
} else {
//是一物一码
for (int i = 0; i < actualInCountInt; i++) {
String j = wmsGoodsTagService.selectGoodsIDNum(goodsSkuCode + format);
if (StringUtils.isBlank(j)) {
j = "0";
}
int intValue = Integer.valueOf(j).intValue();
String goodsID = GetSerialNum.getNum(intValue, goodsSkuCode);
if (idSet.contains(goodsID)) {
List<Integer> idList = new ArrayList<>();
for (String s : idSet) {
if (s.contains(rule)) {
Integer integer = new Integer(s.substring(rule.length()));
idList.add(integer);
}
}
int max = Collections.max(idList);
String num = String.format("%04d", max + 1);
goodsID = rule + num;
}
GoodsTag goodsTag = new GoodsTag();
goodsTag.setSid(sid);
goodsTag.setQrText(goodsID);
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSpuName())) {
goodsTag.setText1(receiptBillDetail.getGoodsSpuName());
}
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSkuCode())) {
goodsTag.setText2(receiptBillDetail.getGoodsSkuCode());
}
goodsTag.setText3(DateUtil.formatDate(new Date()));
idSet.add(goodsID);
list.add(goodsTag);
}
}
} else {
//查询流水号生成goodsID
String i = wmsGoodsTagService.selectGoodsIDNum(goodsSkuCode + format);
if (StringUtils.isBlank(i)) {
i = "0";
}
int intValue = Integer.valueOf(i).intValue();
String goodsID = GetSerialNum.getNum(intValue, goodsSkuCode);
if (idSet.contains(goodsID)) {
List<Integer> idList = new ArrayList<>();
for (String s : idSet) {
if (s.contains(rule)) {
Integer integer = new Integer(s.substring(rule.length()));
idList.add(integer);
}
}
int max = Collections.max(idList);
String num = String.format("%04d", max + 1);
goodsID = rule + num;
}
GoodsTag goodsTag = new GoodsTag();
goodsTag.setSid(sid);
goodsTag.setQrText(goodsID);
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSpuName())) {
goodsTag.setText1(receiptBillDetail.getGoodsSpuName());
}
if (StringUtils.isNotBlank(receiptBillDetail.getGoodsSkuCode())) {
goodsTag.setText2(receiptBillDetail.getGoodsSkuCode());
}
goodsTag.setText3(DateUtil.formatDate(new Date()));
idSet.add(goodsID);
list.add(goodsTag);
}
}
}
vo.setGoods(list);
return rb.success().setData(vo);
}
public ResultBean printCount(PrintQuery query) {
ResultBean rb = ResultBean.fireFail();
String type = query.getType();
List<GoodsTag> tags = query.getSids();
String billSid = "";
Set<String> sids = new HashSet<>();
if (type.equals("0")) {
//商品
for (GoodsTag tag : tags) {
String sid = tag.getSid();
WmsReceiptBillDetail receiptBillDetail = wmsReceiptBillDetailService.fetchBySid(sid);
if (null != receiptBillDetail) {
billSid = receiptBillDetail.getBillSid();
sids.add(sid);
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(billSid);
WmsGoodsTag goodsTag = wmsGoodsTagService.selByBillSidAndGoodsID(billSid, tag.getQrText());
if (null == goodsTag) {
//新增标签
WmsGoodsTag wmsGoodsTag = new WmsGoodsTag();
BeanUtil.copyProperties(receiptBillDetail, wmsGoodsTag, "id", "sid", "createTime", "modifyTime", "remarks");
wmsGoodsTag.setGoodsID(tag.getQrText());
wmsGoodsTag.setBillDetailSid(sid);
wmsGoodsTag.setCreateBySid(wmsReceiptBill.getCreateBySid());
BigDecimal actualInCount = receiptBillDetail.getActualInCount();
int actualInCountInt = actualInCount.intValue();
if (actualInCountInt > 1) {
//查询该商品是否为一物一码
String isGoodsID = baseGoodsSpuFeign.selIsGoodsID(receiptBillDetail.getGoodSpuSid()).getData();
if (isGoodsID.equals("0")) {
wmsGoodsTag.setGoodsCount(receiptBillDetail.getActualInCount());
} else {
wmsGoodsTag.setGoodsCount(new BigDecimal("1"));
}
} else {
wmsGoodsTag.setGoodsCount(new BigDecimal("1"));
}
wmsGoodsTagService.insert(wmsGoodsTag);
}
}
}
if (sids.size() > 0) {
for (String sid : sids) {
WmsReceiptBillDetail receiptBillDetail = wmsReceiptBillDetailService.fetchBySid(sid);
Integer printCount = receiptBillDetail.getPrintCount();
receiptBillDetail.setPrintCount(printCount + 1);
wmsReceiptBillDetailService.updateById(receiptBillDetail);
}
}
List<WmsReceiptBillDetail> details = wmsReceiptBillDetailService.selByBillSid(billSid);
HashSet<Integer> set = new HashSet<>();
if (!details.isEmpty()) {
for (WmsReceiptBillDetail detail : details) {
set.add(detail.getPrintCount());
}
}
if (!set.contains(0)) {
WmsReceiptBill wmsReceiptBill = wmsReceiptBillService.fetchBySid(billSid);
wmsReceiptBill.setPrintState(1);
wmsReceiptBillService.updateById(wmsReceiptBill);
}
} else if (type.equals("1")) {
//库位
for (GoodsTag tag : tags) {
String sid = tag.getSid();
WmsWarehouseRack rack = wmsWarehouseRackService.fetchBySid(sid);
if (null != rack) {
Integer printCount = rack.getPrintCount();
rack.setPrintCount(printCount + 1);
wmsWarehouseRackService.updateById(rack);
}
}
}
return rb.success();
}
public ResultBean<HousePrintVo> print1(TagQuery query) {
ResultBean rb = ResultBean.fireFail();
HousePrintVo vo = new HousePrintVo();
List<HouseRackPrint> houses = new ArrayList<>();
List<String> sids = query.getSids();
for (String sid : sids) {
HouseRackPrint print = new HouseRackPrint();
print.setSid(sid);
WmsWarehouseRack rack = wmsWarehouseRackService.fetchBySid(sid);
if (null != rack) {
String warehouseSid = rack.getWarehouseSid();
String locationSid = rack.getLocationSid();
WmsWarehouseInfo warehouseInfo = wmsWarehouseInfoService.fetchBySid(warehouseSid);
if (null != warehouseInfo) {
print.setText00(warehouseInfo.getWarehouseName());
}
WmsWarehouseArea wmsWarehouseArea = wmsWarehouseAreaService.fetchBySid(locationSid);
if (null != wmsWarehouseArea) {
print.setText0(wmsWarehouseArea.getAreaName());
}
String[] split = rack.getRackCode().split("-");
if (split.length >= 4) {
String p = split[0];
String j = split[1];
String c = split[2];
String w = split[3];
print.setText5(p);
print.setText6(j);
print.setText7(c);
print.setText8(w);
}
print.setQrText(sid + "#");
houses.add(print);
}
}
vo.setHouses(houses);
return rb.success().setData(vo);
}
}

27
yxt-wms-biz/src/main/java/com/yxt/wms/feign/base/basegoodspu/BaseGoodsSpuFeign.java

@ -0,0 +1,27 @@
package com.yxt.wms.feign.base.basegoodspu;
import com.yxt.common.core.result.ResultBean;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuDetailsVo;
import com.yxt.wms.feign.base.basegoodssku.BaseGoodsSkuFeignFallback;
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;
import org.springframework.web.bind.annotation.RequestParam;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/20
**/
@FeignClient(
contextId = "yxt-base-BaseGoodsSpu",
name = "yxt-base",
path = "/apiadmin/base/basegoodsspu"
)
public interface BaseGoodsSpuFeign {
@ApiOperation("查询商品是否为一品一码")
@GetMapping("/selIsGoodsID/{sid}")
public ResultBean<String> selIsGoodsID(@PathVariable("sid") String sid);
}
Loading…
Cancel
Save