Browse Source

售后服务维修领料代码

master
dimengzhe 1 year ago
parent
commit
45fb1f19df
  1. 41
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java
  2. 16
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillQuery.java
  3. 23
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillVo.java
  4. 54
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailDto.java
  5. 13
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java
  6. 7
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml
  7. 35
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java
  8. 97
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  9. 5
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.java
  10. 12
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.xml
  11. 17
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailService.java
  12. 22
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillDetailDto.java
  13. 34
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillDto.java
  14. 24
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillFeign.java
  15. 17
      yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillFeignFallback.java

41
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java

@ -0,0 +1,41 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class AsBusrepairInventorybillDto {
private String sid;
private String createBySid;
@ApiModelProperty("来源单sid")
private String sourceBillSid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("业务类型key")
private String busTypeKey;
@ApiModelProperty("业务类型value")
private String busTypeValue;
@ApiModelProperty("库管操作人sid")
private String warehouseManagerSid;
@ApiModelProperty("库管操作人")
private String warehouseManager;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
private List<AsBusrepairInventorybillDetailDto> detailList = new ArrayList<>();
}

16
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillQuery.java

@ -0,0 +1,16 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class AsBusrepairInventorybillQuery implements Query {
private static final long serialVersionUID = 6148083647218322045L;
private String userSid;
}

23
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillVo.java

@ -0,0 +1,23 @@
package com.yxt.anrui.as.api.asbusrepairinventorybill;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class AsBusrepairInventorybillVo {
private String sid;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("制单人")
private String createByName;
@ApiModelProperty("业务类型")
private String busTypeValue;
@ApiModelProperty("库管操作人")
private String warehouseManager;
}

54
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailDto.java

@ -0,0 +1,54 @@
package com.yxt.anrui.as.api.asbusrepairinventorybilldetail;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class AsBusrepairInventorybillDetailDto {
@ApiModelProperty("商品库存sid")
private String inventorySid;
@ApiModelProperty("商品sid")
private String goodsSid;
@ApiModelProperty("商品名称")
private String goodsName;
@ApiModelProperty("商品编码")
private String goodsCode;
@ApiModelProperty("规格")
private String specification;
@ApiModelProperty("型号")
private String goodsModel;
@ApiModelProperty("出库前的库存量")
private BigDecimal currentCount;
@ApiModelProperty("计量单位")
private String unit;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("货位")
private String warehouseArea;
@ApiModelProperty("需求数量")
private BigDecimal needCount;
@ApiModelProperty("已出库数量")
private BigDecimal outboundCount;
@ApiModelProperty("出/退库数量")
private BigDecimal count;
@ApiModelProperty("销售价(元)")
private BigDecimal price;
@ApiModelProperty("科目sid")
private String subjectSid;
@ApiModelProperty("科目")
private String subject;
@ApiModelProperty("领料人")
private String operUserSid;
@ApiModelProperty("领料人姓名")
private String operName;
}

13
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.java

@ -1,8 +1,13 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybill;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybill;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
@ -11,4 +16,12 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface AsBusrepairInventorybillMapper extends BaseMapper<AsBusrepairInventorybill> {
/**
* 维修出库分页列表
*
* @param page
* @param qw
* @return
*/
IPage<AsBusrepairInventorybillVo> pageList(IPage<AsBusrepairInventorybill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairInventorybill> qw);
}

7
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillMapper.xml

@ -1,4 +1,11 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.as.biz.asbusrepairinventorybill.AsBusrepairInventorybillMapper">
<select id="pageList" resultType="com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo">
select sid, billNo, createByName, busTypeValue, warehouseManager
from as_busrepair_inventorybill
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

35
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillRest.java

@ -1,5 +1,15 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybill;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillQuery;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillDto;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@ -11,4 +21,29 @@ import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("v1/AsBusrepairInventorybill")
public class AsBusrepairInventorybillRest {
@Autowired
private AsBusrepairInventorybillService asBusrepairInventorybillService;
@PostMapping("pageList")
@ApiOperation("维修出库分页列表")
ResultBean<PagerVo<AsBusrepairInventorybillVo>> pageList(@RequestBody PagerQuery<AsBusrepairInventorybillQuery> pagerQuery) {
ResultBean<PagerVo<AsBusrepairInventorybillVo>> rb = ResultBean.fireFail();
PagerVo<AsBusrepairInventorybillVo> pv = asBusrepairInventorybillService.pageList(pagerQuery);
return rb.success().setData(pv);
}
@PostMapping("saveOrUpdate")
@ApiOperation("保存或修改")
ResultBean<String> saveorUpdate(@RequestBody AsBusrepairInventorybillDto dto) {
return asBusrepairInventorybillService.saveOrUdateBill(dto);
}
@PostMapping("outBill")
@ApiOperation("出库")
ResultBean outBill(@RequestBody AsBusrepairInventorybillDto dto){
return asBusrepairInventorybillService.outBill(dto);
}
}

97
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -1,9 +1,34 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybill;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybill;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillQuery;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillDto;
import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillFeign;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
@ -11,4 +36,76 @@ import org.springframework.stereotype.Service;
**/
@Service
public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrepairInventorybillMapper, AsBusrepairInventorybill> {
@Autowired
private AsBusrepairInventorybillDetailService asBusrepairInventorybillDetailService;
@Autowired
private WmsInventoryBillFeign wmsInventoryBillFeign;
/**
* 维修出/退库分页列表
*
* @param pagerQuery
* @return
*/
public PagerVo<AsBusrepairInventorybillVo> pageList(PagerQuery<AsBusrepairInventorybillQuery> pagerQuery) {
AsBusrepairInventorybillQuery query = pagerQuery.getParams();
QueryWrapper<AsBusrepairInventorybill> qw = new QueryWrapper<>();
if (query != null) {
if (StringUtils.isNotBlank(query.getUserSid())) {
qw.eq("createBySid", query.getUserSid());
}
}
IPage<AsBusrepairInventorybill> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusrepairInventorybillVo> pagging = baseMapper.pageList(page, qw);
PagerVo<AsBusrepairInventorybillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean<String> saveOrUdateBill(AsBusrepairInventorybillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)) {
AsBusrepairInventorybill asBusrepairInventorybill = new AsBusrepairInventorybill();
BeanUtil.copyProperties(dto, asBusrepairInventorybill, "sid");
sid = asBusrepairInventorybill.getSid();
List<AsBusrepairInventorybillDetailDto> detailList = dto.getDetailList();
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
asBusrepairInventorybillDetailService.saveOrUpdateDetail(detailList, sid);
}
baseMapper.insert(asBusrepairInventorybill);
} else {
AsBusrepairInventorybill asBusrepairInventorybill = fetchBySid(sid);
if (asBusrepairInventorybill == null) {
return rb.setMsg("该单据不存在");
}
BeanUtil.copyProperties(dto, asBusrepairInventorybill, "sid");
List<AsBusrepairInventorybillDetailDto> detailList = dto.getDetailList();
detailList.removeAll(Collections.singleton(null));
if (!detailList.isEmpty()) {
asBusrepairInventorybillDetailService.saveOrUpdateDetail(detailList, sid);
}
baseMapper.updateById(asBusrepairInventorybill);
}
return rb.success().setData(sid);
}
public ResultBean outBill(AsBusrepairInventorybillDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = saveOrUdateBill(dto).getData();
AsBusrepairInventorybill asBusrepairInventorybill = fetchBySid(sid);
WmsInventoryBillDto wmsInventoryBillDto = new WmsInventoryBillDto();
BeanUtil.copyProperties(asBusrepairInventorybill,wmsInventoryBillDto,"sid","id");
List<WmsInventoryBillDetailDto> wmsInventoryBillDetailDtos = new ArrayList<>();
List<AsBusrepairInventorybillDetail> list = asBusrepairInventorybillDetailService.selectByMainSid(sid);
list.removeAll(Collections.singleton(null));
if(!list.isEmpty()){
wmsInventoryBillDetailDtos = Optional.ofNullable(list).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), WmsInventoryBillDetailDto.class)).collect(Collectors.toList());
wmsInventoryBillDto.setWmsInventoryBillDetailDtos(wmsInventoryBillDetailDtos);
}
wmsInventoryBillFeign.outStorage(wmsInventoryBillDto);
return rb.success();
}
}

5
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.java

@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +13,7 @@ import org.apache.ibatis.annotations.Mapper;
**/
@Mapper
public interface AsBusrepairInventorybillDetailMapper extends BaseMapper<AsBusrepairInventorybillDetail> {
int deleteByMainSid(String sid);
List<AsBusrepairInventorybillDetail> selectByMainSid(String sid);
}

12
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailMapper.xml

@ -1,4 +1,16 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailMapper">
<delete id="deleteByMainSid">
delete
from as_busrepair_inventorybill_detail
where billSid = #{sid}
</delete>
<select id="selectByMainSid"
resultType="com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail">
select *
from as_busrepair_inventorybill_detail
where billSid = #{sid}
</select>
</mapper>

17
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybilldetail/AsBusrepairInventorybillDetailService.java

@ -1,9 +1,13 @@
package com.yxt.anrui.as.biz.asbusrepairinventorybilldetail;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @description:
* @author: dimengzhe
@ -11,4 +15,17 @@ import org.springframework.stereotype.Service;
**/
@Service
public class AsBusrepairInventorybillDetailService extends MybatisBaseService<AsBusrepairInventorybillDetailMapper, AsBusrepairInventorybillDetail> {
public void saveOrUpdateDetail(List<AsBusrepairInventorybillDetailDto> detailList, String sid) {
baseMapper.deleteByMainSid(sid);
detailList.forEach(v -> {
AsBusrepairInventorybillDetail asBusrepairInventorybillDetail = new AsBusrepairInventorybillDetail();
BeanUtil.copyProperties(v, asBusrepairInventorybillDetail, "sid");
asBusrepairInventorybillDetail.setBillSid(sid);
baseMapper.insert(asBusrepairInventorybillDetail);
});
}
public List<AsBusrepairInventorybillDetail> selectByMainSid(String sid) {
return baseMapper.selectByMainSid(sid);
}
}

22
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillDetailDto.java

@ -0,0 +1,22 @@
package com.yxt.anrui.as.feign.wms.wmsinventorybill;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class WmsInventoryBillDetailDto {
private String inventorySid;//商品库存sid
private String goodsSid;//商品sid
private String goodsName;//商品名称
private String goodsCode;//商品编码(图号)
private String specification;//规格
private String goodsModel;//型号
}

34
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillDto.java

@ -0,0 +1,34 @@
package com.yxt.anrui.as.feign.wms.wmsinventorybill;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Data
public class WmsInventoryBillDto {
private String sourceBillSid;//来源单sid
private String billNo;//单据编号
private String billType;//单据类型(入库、出库)
private String createDate;//单据日期
private String createBySid;//制单人
private String createByName;//制单人姓名
private String busTypeKey;//业务类型key(采购入库、维修出入库、销售出入库等)
private String busTypeValue;//业务类型value(采购入库、维修出入库、销售出入库等)
private String warehouseManagerSid;//库管操作人sid
private String warehouseManager;//库管操作人
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private String outTime;//实际出库时间
private String useOrgSid;//使用组织sid
private String createOrgSid;//创建组织sid
private List<WmsInventoryBillDetailDto> wmsInventoryBillDetailDtos = new ArrayList<>();
}

24
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillFeign.java

@ -0,0 +1,24 @@
package com.yxt.anrui.as.feign.wms.wmsinventorybill;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
/**
* @description: 出入库单据
* @author: dimengzhe
* @date: 2024/3/7
**/
@FeignClient(
contextId = "yxt-wms-WmsInventoryBill",
name = "yxt-wms",
path = "apiadmin/inventory/wmsinventorybill",
fallback = WmsInventoryBillFeignFallback.class)
public interface WmsInventoryBillFeign {
@ApiOperation("出库")
@PostMapping("/outStorage")
public ResultBean outStorage(@RequestBody WmsInventoryBillDto dto);
}

17
yxt-as/src/main/java/com/yxt/anrui/as/feign/wms/wmsinventorybill/WmsInventoryBillFeignFallback.java

@ -0,0 +1,17 @@
package com.yxt.anrui.as.feign.wms.wmsinventorybill;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/7
**/
@Component
public class WmsInventoryBillFeignFallback implements WmsInventoryBillFeign {
@Override
public ResultBean outStorage(WmsInventoryBillDto dto) {
return null;
}
}
Loading…
Cancel
Save