Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 10 months ago
parent
commit
66ee54821c
  1. 242
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesReturnRest.java
  2. 4
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturn.java
  3. 19
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnMapper.java
  4. 61
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnMapper.xml
  5. 9
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnNewDetailsVo.java
  6. 4
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnNewDto.java
  7. 23
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnQuery.java
  8. 652
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnService.java
  9. 55
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnVo.java
  10. 37
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnCompleteDto.java
  11. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnDelegateQuery.java
  12. 25
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnNodeQuery.java
  13. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnNodeVo.java
  14. 48
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnTaskQuery.java
  15. 25
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SubmitSmsGoodsReturnDto.java
  16. 12
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturndetail/SmsSalesReturnDetailMapper.java
  17. 20
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturndetail/SmsSalesReturnDetailService.java
  18. 1
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java
  19. 14
      yxt-wms-biz/src/main/java/com/yxt/wms/apiadmin/inventroy/WmsGoodsTagRest.java
  20. 7
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.java
  21. 23
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagMapper.xml
  22. 24
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/WmsGoodsTagService.java
  23. 15
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagListQuery.java
  24. 48
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagListVo.java
  25. 102
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/pageUtil/MyPagerUtil.java
  26. 123
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/pageUtil/MyPagerVo.java
  27. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBill.java
  28. 2
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetail.java

242
yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesReturnRest.java

@ -25,19 +25,24 @@
*********************************************************/
package com.yxt.sms.apiadmin;
import cn.hutool.core.bean.BeanUtil;
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.sms.biz.smssalesbill.SmsSalesBillExportVo;
import com.yxt.sms.biz.smssalesbill.SmsSalesBillQuery;
import com.yxt.sms.biz.smssalesreturn.*;
import com.yxt.sms.biz.smssalesreturn.flowable.*;
import com.yxt.sms.feign.flowable.flow.BusinessVariables;
import com.yxt.sms.feign.flowable.flow.ProcDefEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
@ -61,94 +66,149 @@ import java.util.List;
@RequestMapping("/apiadmin/v1/smssalesreturn")
public class SmsSalesReturnRest {
@Autowired
private SmsSalesReturnService smsSalesReturnService;
@Autowired
HttpServletResponse response;
@ApiOperation("退货单查询原单列表")
@PostMapping("/listPageReturn")
public ResultBean<PagerVo<SmsSalesBillReturnVo>> listPageReturn(@RequestBody PagerQuery<SmsSalesBillReturnQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SmsSalesBillReturnVo> pv = smsSalesReturnService.listPageReturn(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SmsSalesReturnVo>> listPage(@RequestBody PagerQuery<SmsSalesReturnQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SmsSalesReturnVo> pv = smsSalesReturnService.listPageVo(pq);
return rb.success().setData(pv);
}
@PostMapping("/exportExcel")
@ApiOperation(value = "导出")
public void exportExcel(@RequestBody SmsSalesReturnQuery query) {
//得到所有要导出的数据
List<SmsSalesBillReturnExportVo> exportVoList = smsSalesReturnService.listExcel(query);
//定义导出的excel名字
String excelName = "销售退货单列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, SmsSalesBillReturnExportVo.class, response);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody SmsSalesReturnDto dto){
ResultBean rb = ResultBean.fireFail();
smsSalesReturnService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("作废")
@PostMapping("/invalid")
public ResultBean invalid(@RequestParam("sid") String sid){
ResultBean rb = ResultBean.fireFail();
smsSalesReturnService.invalid(sid);
return rb.success();
}
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
smsSalesReturnService.delBySids(sids);
return rb.success();
}
@ApiOperation("根据SID获取一条记录")
@Autowired
private SmsSalesReturnService smsSalesReturnService;
@Autowired
HttpServletResponse response;
@ApiOperation("退货单查询原单列表")
@PostMapping("/listPageReturn")
public ResultBean<PagerVo<SmsSalesBillReturnVo>> listPageReturn(@RequestBody PagerQuery<SmsSalesBillReturnQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SmsSalesBillReturnVo> pv = smsSalesReturnService.listPageReturn(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<SmsSalesReturnVo>> listPage(@RequestBody PagerQuery<SmsSalesReturnQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<SmsSalesReturnVo> pv = smsSalesReturnService.listPageVo(pq);
return rb.success().setData(pv);
}
@PostMapping("/exportExcel")
@ApiOperation(value = "导出")
public void exportExcel(@RequestBody SmsSalesReturnQuery query) {
//得到所有要导出的数据
List<SmsSalesBillReturnExportVo> exportVoList = smsSalesReturnService.listExcel(query);
//定义导出的excel名字
String excelName = "销售退货单列表";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ExportExcelUtils.export(fileNameURL, exportVoList, SmsSalesBillReturnExportVo.class, response);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody SmsSalesReturnDto dto) {
ResultBean rb = ResultBean.fireFail();
smsSalesReturnService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("作废")
@PostMapping("/invalid")
public ResultBean invalid(@RequestParam("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
smsSalesReturnService.invalid(sid);
return rb.success();
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {
return smsSalesReturnService.deleteBySids(sids);
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<SmsSalesReturnDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SmsSalesReturnDetailsVo vo = smsSalesReturnService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("退货开单初始化")
@GetMapping("/returnBillInit/{sid}")
public ResultBean<SmsSalesInsertVo> returnBillInit(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SmsSalesInsertVo vo = smsSalesReturnService.returnBillInit(sid);
return rb.success().setData(vo);
}
@ApiOperation("商品退货初始化")
@GetMapping("/returnGoodsBillInit")
public ResultBean<SmsSalesReturnNewDetailsVo> returnGoodsBillInit(@RequestParam("sid") String sid,@RequestParam("type") String type){
ResultBean rb = ResultBean.fireFail();
SmsSalesReturnNewDetailsVo vo = smsSalesReturnService.returnGoodsBillInit(sid,type);
return rb.success().setData(vo);
}
public ResultBean<SmsSalesReturnNewDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
SmsSalesReturnNewDetailsVo vo = smsSalesReturnService.fetchNewDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("退货开单初始化")
@GetMapping("/returnBillInit/{sid}")
public ResultBean<SmsSalesInsertVo> returnBillInit(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
SmsSalesInsertVo vo = smsSalesReturnService.returnBillInit(sid);
return rb.success().setData(vo);
}
@ApiOperation("商品退货初始化")
@GetMapping("/returnGoodsBillInit")
public ResultBean<SmsSalesReturnNewDetailsVo> returnGoodsBillInit(@RequestParam("sid") String sid, @RequestParam("type") String type) {
ResultBean rb = ResultBean.fireFail();
SmsSalesReturnNewDetailsVo vo = smsSalesReturnService.returnGoodsBillInit(sid, type);
return rb.success().setData(vo);
}
@ApiOperation("新增或修改")
@PostMapping("/saveBill")
public ResultBean<String> saveBill(@RequestBody SmsSalesReturnNewDto dto) {
return smsSalesReturnService.saveBill(dto);
}
//---------------------------------flow----------------------------------------
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitSmsGoodsReturnDto dto) {
return smsSalesReturnService.submit(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody SmsGoodsReturnCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SMSSALESRETURN.getProDefId());
return smsSalesReturnService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<SmsGoodsReturnNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap SmsGoodsReturnNodeQuery query) {
return smsSalesReturnService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<SmsGoodsReturnNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap SmsGoodsReturnNodeQuery query) {
return smsSalesReturnService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody SmsGoodsReturnTaskQuery query) {
return smsSalesReturnService.reject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody SmsGoodsReturnTaskQuery query) {
return smsSalesReturnService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody SmsGoodsReturnTaskQuery query) {
return smsSalesReturnService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
public ResultBean delegate(@RequestBody SmsGoodsReturnDelegateQuery query) {
return smsSalesReturnService.delegate(query);
}
}

4
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturn.java

@ -79,7 +79,7 @@ public class SmsSalesReturn extends BaseEntity {
@ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门")
private String dept; // 申请部门
private String deptName; // 申请部门
@ApiModelProperty("taskId")
private String taskId; // taskId
@ApiModelProperty("环节定义的sid")
@ -97,6 +97,6 @@ public class SmsSalesReturn extends BaseEntity {
private BigDecimal payableAmount; // 应付金额
@ApiModelProperty("合计金额")
private BigDecimal totalAmount; // 合计金额
private Integer type; //0维修工单 1销售单
}

19
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnMapper.java

@ -36,6 +36,7 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.util.Map;
/**
* Project: sms(sms) <br/>
@ -55,11 +56,11 @@ public interface SmsSalesReturnMapper extends BaseMapper<SmsSalesReturn> {
//@Update("update sms_sales_return set name=#{msg} where id=#{id}")
//IPage<SmsSalesReturnVo> voPage(IPage<SmsSalesReturn> page, @Param(Constants.WRAPPER) QueryWrapper<SmsSalesReturn> qw);
IPage<SmsSalesReturnVo> selectPageVo(IPage<SmsSalesReturn> page, @Param(Constants.WRAPPER) Wrapper<SmsSalesReturn> qw);
List<SmsSalesReturnVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SmsSalesReturn> qw);
@Select("select * from sms_sales_return")
List<SmsSalesReturnVo> selectListVo();
@ -68,4 +69,14 @@ public interface SmsSalesReturnMapper extends BaseMapper<SmsSalesReturn> {
String selRetunGoodsNum(@Param("sid") String sid,@Param("inventorySid") String inventorySid);
List<SmsSalesBillReturnExportVo> listExcel(@Param(Constants.WRAPPER)QueryWrapper<SmsSalesReturn> qw);
}
String selBackCountByGoodsID(@Param("goodsID") String goodsID, @Param("sid")String sid);
int selectNum(String bill);
IPage<SmsSalesReturnVo> listPage(IPage<SmsSalesReturn> page,@Param(Constants.WRAPPER) QueryWrapper<SmsSalesReturn> qw);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> map);
}

61
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnMapper.xml

@ -1,7 +1,22 @@
<?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.sms.biz.smssalesreturn.SmsSalesReturnMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<update id="updateFlowFiled">
UPDATE sms_sales_return
SET nodeState=#{nodeState}
, nodeSid=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.sms.biz.smssalesreturn.SmsSalesReturnVo">
SELECT
@ -26,7 +41,7 @@
LEFT JOIN sms_sales_bill AS b ON r.sourceBillSid = b.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.sms.biz.smssalesreturn.SmsSalesReturnVo">
SELECT * FROM sms_sales_return <where> ${ew.sqlSegment} </where>
</select>
@ -83,4 +98,44 @@
( SELECT @rank := 0 ) t
<where>${ew.sqlSegment}</where>
</select>
</mapper>
<select id="selBackCountByGoodsID" resultType="java.lang.String">
SELECT
IFNULL(SUM(d.backCount),0)
FROM
sms_sales_return_detail AS d
LEFT JOIN sms_sales_return AS r ON d.billSid = r.sid
WHERE r.sourceBillSid = #{sid} and r.nodeState = '已办结' and d.goodsID = #{goodsID}
</select>
<select id="selectNum" resultType="java.lang.Integer">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code
from sms_sales_return
where billNo LIKE concat(#{bill}, '%')
</select>
<select id="listPage" resultType="com.yxt.sms.biz.smssalesreturn.SmsSalesReturnVo">
SELECT
s.sid,
s.nodeState,
s.billNo,
ss.`name` as useOrgName,
s.deptName,
s.createByName,
date_format(s.createTime, '%Y-%m-%d') as createTime,
date_format(s.closeDate, '%Y-%m-%d') as closeDate,
s.payableAmount,
s.totalAmount,
s.procInstId,
s.procDefId
FROM
sms_sales_return AS s
LEFT JOIN anrui_portal.sys_organization as so ON s.deptSid = so.sid
LEFT JOIN anrui_portal.sys_organization as ss ON s.createOrgSid = ss.sid
<where> ${ew.sqlSegment} </where>
ORDER BY s.createTime,s.id DESC
</select>
<select id="selectBySid" resultType="java.lang.Integer">
SELECT COUNT(*)
FROM sms_sales_return
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
</mapper>

9
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnNewDetailsVo.java

@ -25,7 +25,9 @@ public class SmsSalesReturnNewDetailsVo implements Vo {
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
private String remarks;
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
private String createBySid;
@ApiModelProperty("来源单编号")
private String sourceBillSid; // 来源单编号
@ApiModelProperty("来源单编号")
@ -59,5 +61,8 @@ public class SmsSalesReturnNewDetailsVo implements Vo {
private List<SmsSitemVo> sitemVos = new ArrayList<>();// 服务项目
private List<SmsGoodsDetailsVo> goodsDetailsVos = new ArrayList<>(); //商品信息
private List<SalesGoodsReturnVo> returnGoods = new ArrayList<>(); //退货商品列表
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("实例id")
private String instanceId;
}

4
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnNewDto.java

@ -25,7 +25,9 @@ public class SmsSalesReturnNewDto implements Dto {
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
private String remarks;
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
private String createBySid;
@ApiModelProperty("来源单编号")
private String sourceBillSid; // 来源单编号
@ApiModelProperty("来源单编号")

23
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnQuery.java

@ -51,10 +51,23 @@ import java.math.BigDecimal;
@ApiModel(value = "销售退货单据 查询条件", description = "销售退货单据 查询条件")
public class SmsSalesReturnQuery implements Query {
private String queryName;
private String startDate;
private String endDate;
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("分公司")
private String useOrgName;//分公司
@ApiModelProperty("制单部门")
private String deptName;//制单部门
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
private String startDate; //开始日期
private String endDate; //结束日期
private String colesStartDate; //办结开始日期
private String colesEndDate; //办结结束日期
@ApiModelProperty("使用组织sid")
private String orgPath;
private String userSid;
@ApiModelProperty("菜单url")
private String menuUrl;
}

652
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnService.java

@ -26,7 +26,9 @@
package com.yxt.sms.biz.smssalesreturn;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.sms.biz.smssalesbill.*;
@ -36,15 +38,31 @@ import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoice;
import com.yxt.sms.biz.smssalesbillinvoice.SmsSalesBillInvoiceService;
import com.yxt.sms.biz.smssalesbillsettle.SmsSalesBillSettle;
import com.yxt.sms.biz.smssalesbillsettle.SmsSalesBillSettleService;
import com.yxt.sms.biz.smssalesreturn.flowable.*;
import com.yxt.sms.biz.smssalesreturndetail.SmsSalesReturnDetail;
import com.yxt.sms.biz.smssalesreturndetail.SmsSalesReturnDetailService;
import com.yxt.sms.biz.smssalesreturnsettle.SmsSalesReturnSettle;
import com.yxt.sms.biz.smssalesreturnsettle.SmsSalesReturnSettleService;
import com.yxt.sms.feign.as.asbusrepairbill.*;
import com.yxt.sms.feign.flowable.flow.*;
import com.yxt.sms.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.sms.feign.flowable.flow2.FlowFeign;
import com.yxt.sms.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.sms.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.sms.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.sms.feign.fms.fmspaysettle.FmsPaysettleDto;
import com.yxt.sms.feign.fms.fmspaysettle.FmsPaysettleFeign;
import com.yxt.sms.feign.message.MessageFeign;
import com.yxt.sms.feign.message.MessageFlowVo;
import com.yxt.sms.feign.message.MessageFlowableQuery;
import com.yxt.sms.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.sms.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.sms.feign.privilege.PrivilegeQuery;
import com.yxt.sms.feign.sysuser.SysUserFeign;
import com.yxt.sms.feign.wms.wmsinventory.WmsInventoryFeign;
import com.yxt.sms.feign.wms.wmsinventory.WmsUpdateCountQuery;
import com.yxt.sms.utils.SmsBillNo;
import com.yxt.sms.utils.SmsRule;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -59,8 +77,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: sms(sms) <br/>
@ -96,24 +114,36 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
private FmsPaysettleFeign fmsPaysettleFeign;
@Autowired
private AsBusrepairBillFeign asBusrepairBillFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
private QueryWrapper<SmsSalesReturn> createQueryWrapper(SmsSalesReturnQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SmsSalesReturn> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getQueryName())) {
qw.and(wrapper -> wrapper.like("r.createByName", query.getQueryName())
.or().like("r.billNo", query.getQueryName())
.or().like("b.salesName", query.getQueryName())
.or().like("b.customerName", query.getQueryName())
.or().like("b.mobile", query.getQueryName())
.or().like("b.vehMark", query.getQueryName())
.or().like("r.sourceBillNo", query.getQueryName())
);
}
if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("r.useOrgSid", query.getUseOrgSid());
}
// if (StringUtils.isNotBlank(query.getQueryName())) {
// qw.and(wrapper -> wrapper.like("r.createByName", query.getQueryName())
// .or().like("r.billNo", query.getQueryName())
// .or().like("b.salesName", query.getQueryName())
// .or().like("b.customerName", query.getQueryName())
// .or().like("b.mobile", query.getQueryName())
// .or().like("b.vehMark", query.getQueryName())
// .or().like("r.sourceBillNo", query.getQueryName())
// );
// }
// if (StringUtils.isNotBlank(query.getUseOrgSid())) {
// qw.eq("r.useOrgSid", query.getUseOrgSid());
// }
String startDate = query.getStartDate();
String endDate = query.getEndDate();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (r.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
@ -126,9 +156,69 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
public PagerVo<SmsSalesReturnVo> listPageVo(PagerQuery<SmsSalesReturnQuery> pq) {
SmsSalesReturnQuery query = pq.getParams();
QueryWrapper<SmsSalesReturn> qw = createQueryWrapper(query);
QueryWrapper<SmsSalesReturn> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("so.orgSidPath", orgSidPath);
} else if ("2".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i2);
qw.like("so.orgSidPath", orgSidPath);
} else if ("3".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i3);
qw.like("so.orgSidPath", orgSidPath);
} else if ("4".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i4);
qw.like("so.orgSidPath", orgSidPath);
} else if ("5".equals(orgLevelKey)) {
qw.eq("s.createBySid", query.getUserSid());
} else {
PagerVo<SmsSalesReturnVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<SmsSalesReturnVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("s.useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getDeptName())) {
qw.like("s.deptName", query.getDeptName());
}
if (StringUtils.isNotBlank(query.getCreateByName())) {
qw.like("s.createByName", query.getCreateByName());
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("s.billNo", query.getBillNo());
}
String startDate = query.getStartDate();
String endDate = query.getStartDate();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (s.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (s.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
);
String closeDateStart = query.getColesStartDate();
String closeDateEnd = query.getColesEndDate();
qw.apply(StringUtils.isNotEmpty(closeDateStart), "date_format (s.closeDate,'%Y-%m-%d') >= date_format('" + closeDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(closeDateEnd), "date_format (s.closeDate,'%Y-%m-%') <= date_format('" + closeDateEnd + "','%Y-%m-%d')"
);
IPage<SmsSalesReturn> page = PagerUtil.queryToPage(pq);
IPage<SmsSalesReturnVo> pagging = baseMapper.selectPageVo(page, qw);
IPage<SmsSalesReturnVo> pagging = baseMapper.listPage(page, qw);
PagerVo<SmsSalesReturnVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
@ -407,7 +497,7 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
if (!sitemVos.isEmpty()) {
for (SitemVo smsSitemVo : sitemVos) {
SmsSitemVo sitemVo = new SmsSitemVo();
BeanUtil.copyProperties(smsSitemVo,sitemVo);
BeanUtil.copyProperties(smsSitemVo, sitemVo);
smsSitemVos.add(sitemVo);
}
vo.setSitemVos(smsSitemVos);
@ -417,7 +507,11 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
if (!goodsDetailsVos.isEmpty()) {
for (GoodsDetailsVo goodsDetailsVo : goodsDetailsVos) {
SmsGoodsDetailsVo smsGoodsDetailsVo = new SmsGoodsDetailsVo();
BeanUtil.copyProperties(goodsDetailsVo,smsGoodsDetailsVo);
BeanUtil.copyProperties(goodsDetailsVo, smsGoodsDetailsVo);
//查询已退数量
String goodsID = goodsDetailsVo.getGoodsID();
String sumBackCount = baseMapper.selBackCountByGoodsID(goodsID, sid);
smsGoodsDetailsVo.setReturnedCount(sumBackCount);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
}
vo.setGoodsDetailsVos(smsGoodsDetailsVos);
@ -460,7 +554,12 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
if (!goodsDetailsVos.isEmpty()) {
for (SalesGoodsVo goodsDetailsVo : goodsDetailsVos) {
SmsGoodsDetailsVo smsGoodsDetailsVo = new SmsGoodsDetailsVo();
BeanUtil.copyProperties(goodsDetailsVo,smsGoodsDetailsVo);
BeanUtil.copyProperties(goodsDetailsVo, smsGoodsDetailsVo);
//查询已退数量
String goodsID = goodsDetailsVo.getGoodsID();
String sumBackCount = baseMapper.selBackCountByGoodsID(goodsID, sid);
smsGoodsDetailsVo.setReturnedCount(sumBackCount);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
}
vo.setGoodsDetailsVos(smsGoodsDetailsVos);
@ -470,4 +569,517 @@ public class SmsSalesReturnService extends MybatisBaseService<SmsSalesReturnMapp
}
return vo;
}
/**
* 生成单据编号
*
* @param orgSid
* @return
*/
public String getApplyCode(String orgSid) {
//获取分公司sid
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid);
String orgCode = resultBean1.getData().getOrgCode();
SmsBillNo b = new SmsBillNo();
b.setOrgCode(orgCode);
b.setBillType("THD");
String bill = SmsRule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = SmsRule.getBillNo(bill, i);
return billNo;
}
public ResultBean<String> saveBill(SmsSalesReturnNewDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = "";
List<SalesGoodsReturnVo> goodsVos = dto.getReturnGoods();
if (!goodsVos.isEmpty()) {
for (SalesGoodsReturnVo goodsVo : goodsVos) {
BigDecimal reCount = new BigDecimal(goodsVo.getReturnedCount()); //已退数量
BigDecimal backCount = new BigDecimal(goodsVo.getBackCount()); //退货数量
BigDecimal add = reCount.add(backCount);
BigDecimal currentCount = new BigDecimal(goodsVo.getCurrentCount()); //总数量
if (add.compareTo(currentCount) > 0) {
return rb.setMsg("退货数量不能大于总数量");
}
}
}
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
SmsSalesReturn smsSalesReturn = fetchBySid(sid);
BeanUtil.copyProperties(dto, smsSalesReturn, "id", "sid");
baseMapper.updateById(smsSalesReturn);
smsSalesReturnDetailService.deleteByMainSid(sid);
} else {
SmsSalesReturn entity = new SmsSalesReturn();
sid = entity.getSid();
BeanUtil.copyProperties(dto, entity, "id", "sid");
String applyCode = getApplyCode(dto.getCreateOrgSid());
entity.setBillNo(applyCode);
entity.setNodeState("待提交");
baseMapper.insert(entity);
}
List<SalesGoodsReturnVo> returnGoods = dto.getReturnGoods();
if (!returnGoods.isEmpty()) {
for (SalesGoodsReturnVo returnGood : returnGoods) {
SmsSalesReturnDetail detail = new SmsSalesReturnDetail();
BeanUtil.copyProperties(returnGood, detail, "id", "sid");
detail.setBillSid(sid);
smsSalesReturnDetailService.insert(detail);
}
}
return rb.success().setData(sid);
}
public SmsSalesReturnNewDetailsVo fetchNewDetailsVoBySid(String sid) {
SmsSalesReturnNewDetailsVo vo = new SmsSalesReturnNewDetailsVo();
SmsSalesReturn smsSalesReturn = fetchBySid(sid);
if (null != smsSalesReturn) {
BeanUtil.copyProperties(smsSalesReturn, vo);
Integer type = smsSalesReturn.getType();
vo.setCreateTime(DateUtil.formatDate(smsSalesReturn.getCreateTime()));
if (StringUtils.isNotBlank(smsSalesReturn.getProcInstId())) {
vo.setInstanceId(smsSalesReturn.getProcInstId());
}
if (type == 0) {
//维修工单
AsBusrepairBillDetailsVo data = asBusrepairBillFeign.fetchDetailsBySid(smsSalesReturn.getSourceBillSid()).getData();
if (null != data) {
vo.setSourceBillNo(data.getBillNo());
vo.setBillType(data.getBillType());
vo.setBillDate(data.getCreateDate());
if (StringUtils.isNotBlank(data.getSubject())) {
vo.setSubject(data.getSubject());
}
if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName());
}
if (StringUtils.isNotBlank(data.getCustomerName())) {
vo.setCustomerName(data.getCustomerName());
}
if (StringUtils.isNotBlank(data.getMobile())) {
vo.setMobile(data.getMobile());
}
if (StringUtils.isNotBlank(data.getCustomerOrg())) {
vo.setCustomerOrg(data.getCustomerOrg());
}
if (StringUtils.isNotBlank(data.getVehMark())) {
vo.setVehMark(data.getVehMark());
}
if (StringUtils.isNotBlank(data.getVinNo())) {
vo.setVinNo(data.getVinNo());
}
SettleVo settleVo = data.getSettleVo();
if (null != settleVo) {
vo.setSettleDate(settleVo.getSettleTime());
}
List<SitemVo> sitemVos = data.getSitemVos();
List<SmsSitemVo> smsSitemVos = new ArrayList<>();
if (!sitemVos.isEmpty()) {
for (SitemVo smsSitemVo : sitemVos) {
SmsSitemVo sitemVo = new SmsSitemVo();
BeanUtil.copyProperties(smsSitemVo, sitemVo);
smsSitemVos.add(sitemVo);
}
vo.setSitemVos(smsSitemVos);
}
List<GoodsDetailsVo> goodsDetailsVos = data.getGoodsDetailsVos();
List<SmsGoodsDetailsVo> smsGoodsDetailsVos = new ArrayList<>();
if (!goodsDetailsVos.isEmpty()) {
for (GoodsDetailsVo goodsDetailsVo : goodsDetailsVos) {
SmsGoodsDetailsVo smsGoodsDetailsVo = new SmsGoodsDetailsVo();
BeanUtil.copyProperties(goodsDetailsVo, smsGoodsDetailsVo);
//查询已退数量
String goodsID = goodsDetailsVo.getGoodsID();
String sumBackCount = baseMapper.selBackCountByGoodsID(goodsID, sid);
smsGoodsDetailsVo.setReturnedCount(sumBackCount);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
}
vo.setGoodsDetailsVos(smsGoodsDetailsVos);
}
}
} else if (type == 1) {
//销售单
SmsSalesBillDetailsVo data = smsSalesBillService.fetchDetailsVoBySid(smsSalesReturn.getSourceBillSid());
if (null != data) {
vo.setSourceBillNo(data.getBillNo());
vo.setBillType("销售单");
vo.setBillDate(data.getCreateTime());
if (StringUtils.isNotBlank(data.getSubject())) {
vo.setSubject(data.getSubject());
}
if (StringUtils.isNotBlank(data.getSalesName())) {
vo.setWaitorName(data.getSalesName());
}
if (StringUtils.isNotBlank(data.getCustomerName())) {
vo.setCustomerName(data.getCustomerName());
}
if (StringUtils.isNotBlank(data.getMobile())) {
vo.setMobile(data.getMobile());
}
if (StringUtils.isNotBlank(data.getCustomerOrg())) {
vo.setCustomerOrg(data.getCustomerOrg());
}
if (StringUtils.isNotBlank(data.getVehMark())) {
vo.setVehMark(data.getVehMark());
}
if (StringUtils.isNotBlank(data.getVinNo())) {
vo.setVinNo(data.getVinNo());
}
SettlementVo settleVo = data.getSettlementVo();
if (null != settleVo) {
vo.setSettleDate(settleVo.getSettleTime());
}
List<SalesGoodsVo> goodsDetailsVos = data.getGoodsVos();
List<SmsGoodsDetailsVo> smsGoodsDetailsVos = new ArrayList<>();
if (!goodsDetailsVos.isEmpty()) {
for (SalesGoodsVo goodsDetailsVo : goodsDetailsVos) {
SmsGoodsDetailsVo smsGoodsDetailsVo = new SmsGoodsDetailsVo();
BeanUtil.copyProperties(goodsDetailsVo, smsGoodsDetailsVo);
//查询已退数量
String goodsID = goodsDetailsVo.getGoodsID();
String sumBackCount = baseMapper.selBackCountByGoodsID(goodsID, sid);
smsGoodsDetailsVo.setReturnedCount(sumBackCount);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
smsGoodsDetailsVos.add(smsGoodsDetailsVo);
}
vo.setGoodsDetailsVos(smsGoodsDetailsVos);
}
}
}
List<SmsSalesReturnDetail> details = smsSalesReturnDetailService.fetchByBillSid(sid);
if (!details.isEmpty()) {
List<SalesGoodsReturnVo> returnGoods = new ArrayList<>(); //退货商品列表
for (SmsSalesReturnDetail detail : details) {
SalesGoodsReturnVo returnVo = new SalesGoodsReturnVo();
BeanUtil.copyProperties(detail, returnVo, "id", "sid");
returnGoods.add(returnVo);
}
vo.setReturnGoods(returnGoods);
}
}
return vo;
}
public ResultBean deleteBySids(String[] sids) {
ResultBean rb = ResultBean.fireFail();
//查询该sid中是否有结算的
int count = baseMapper.selectBySid(StringUtils.join(sids, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
delBySids(sids);
for (String sid : sids) {
smsSalesReturnDetailService.deleteByMainSid(sid);
}
return rb.success();
}
//--------------------------flow----------------------------------
public ResultBean submit(SubmitSmsGoodsReturnDto dto) {
ResultBean rb = ResultBean.fireFail();
SmsSalesReturn smsSalesReturn = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, smsSalesReturn);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
//新增修改保存
ResultBean<String> resultBean = saveBill(dto);
String businessSid = "";
if (resultBean.getSuccess()) {
businessSid = resultBean.getData();
} else {
return rb.setMsg(resultBean.getMsg());
}
smsSalesReturn = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
//用户的部门全路径sid
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsSalesReturn.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
//业务sid
bv.setBusinessSid(businessSid);
//用户sid
bv.setUserSid(smsSalesReturn.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//流程定义id
bv.setModelId(ProcDefEnum.SMSSALESRETURN.getProDefId());
bv.setFormVariables(variables);
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
//极光推送
smsSalesReturn = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("商品退货申请");
messageFlowableQuery.setMsgContent(smsSalesReturn.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("商品退货申请");
messageFeign.pushMessage(messageFlowableQuery);
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(smsSalesReturn.getTaskId());
bv.setTaskDefKey(smsSalesReturn.getNodeSid());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private synchronized int submitBusinessData(SubmitSmsGoodsReturnDto dto, SmsSalesReturn smsSalesReturn) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (smsSalesReturn != null) {
String businessTaskId = smsSalesReturn.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
SmsSalesReturn smsSalesReturn = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery();
if (StringUtils.isBlank(smsSalesReturn.getProcDefId())) {
flowProcessMapQuery.setProDefKey(bv.getModelId());
} else {
flowProcessMapQuery.setProDefKey(smsSalesReturn.getProcDefId());
}
flowProcessMapQuery.setVariables(variables);
variables = flowableFeign.getMap(flowProcessMapQuery).getData();
//=======================================
bv.setFormVariables(variables);
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsSalesReturn.getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
if (bv.getTaskId().equals(smsSalesReturn.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
smsSalesReturn = fetchBySid(businessSid);
smsSalesReturn.setCloseDate(new Date());
baseMapper.updateById(smsSalesReturn);
} else {
//极光推送
smsSalesReturn = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(smsSalesReturn.getProcDefId());
ufVo.setProcInsId(smsSalesReturn.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("商品退货申请");
messageFlowableQuery.setMsgContent(smsSalesReturn.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("商品退货申请");
messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<SmsGoodsReturnNodeVo>> getPreviousNodesForReject(SmsGoodsReturnNodeQuery query) {
ResultBean<List<SmsGoodsReturnNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SMSSALESRETURN.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<SmsGoodsReturnNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsGoodsReturnNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<SmsGoodsReturnNodeVo>> getNextNodesForSubmit(SmsGoodsReturnNodeQuery query) {
ResultBean<List<SmsGoodsReturnNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SMSSALESRETURN.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<SmsGoodsReturnNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SmsGoodsReturnNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean reject(SmsGoodsReturnTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
SmsSalesReturn reverseSettle = fetchBySid(businessSid);
if (reverseSettle == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = reverseSettle.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
reverseSettle = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = reverseSettle.getProcInstId();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(reverseSettle.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("商品退货申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(reverseSettle.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(reverseSettle.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("商品退货申请");
messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(SmsGoodsReturnTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
SmsSalesReturn smsSalesReturn = fetchBySid(query.getBusinessSid());
String businessTaskId = smsSalesReturn.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(SmsGoodsReturnTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
SmsSalesReturn smsSalesReturn = fetchBySid(query.getBusinessSid());
String businessTaskId = smsSalesReturn.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(smsSalesReturn.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(SmsGoodsReturnDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
}

55
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/SmsSalesReturnVo.java

@ -33,6 +33,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
* Project: sms(sms) <br/>
@ -52,40 +53,26 @@ import java.math.BigDecimal;
public class SmsSalesReturnVo implements Vo {
private String sid; // sid
@ApiModelProperty("制单人姓名")
private String createByName; // 制单人姓名
@ApiModelProperty("开单时间")
private String createTime; // 制单人姓名
// @ApiModelProperty("来源单sid(销售单sid)")
// private String sourceBillSid; // 来源单sid(销售单sid)
@ApiModelProperty("来源单编号")
private String sourceBillNo; // 来源单编号
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
// @ApiModelProperty("退误差调整金额")
// private String backErrorAmount; // 退误差调整金额
@ApiModelProperty("退优惠金额")
private String backDiscountAmount; // 退优惠金额
@ApiModelProperty("抵扣欠款")
private String deductDebts; // 抵扣欠款
// @ApiModelProperty("抵扣单号")
// private String deductBillNo; // 抵扣单号
// @ApiModelProperty("转入预付款")
// private String toPrepayment; // 转入预付款
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
@ApiModelProperty("联系电话")
private String mobile; // 联系电话
@ApiModelProperty("车辆牌照")
private String vehMark; // 车辆牌照
@ApiModelProperty("客户单位")
private String customerOrg; // 客户单位
@ApiModelProperty("销售姓名")
private String salesName; // 销售姓名
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
private String state;
@ApiModelProperty("分公司")
private String useOrgName; // 分公司
@ApiModelProperty("申请部门")
private String deptName; // 申请部门
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请日期")
private String createTime; // 申请日期
@ApiModelProperty("办结时间")
private String closeDate; // 办结时间
@ApiModelProperty("应付金额")
private String payableAmount; // 应付金额
@ApiModelProperty("合计金额")
private String totalAmount; // 合计金额
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
}

37
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnCompleteDto.java

@ -0,0 +1,37 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 14:57
* @Description
*/
@Data
public class SmsGoodsReturnCompleteDto implements Dto {
private static final long serialVersionUID = 6378752532534735663L;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id(PC)")
private String instanceId;
@ApiModelProperty(value = "流程id(移动)")
private String procInsId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
private String orgPath;
}

26
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnDelegateQuery.java

@ -0,0 +1,26 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/9/28 9:28
*/
@Data
public class SmsGoodsReturnDelegateQuery {
@ApiModelProperty
private String userSid;
@ApiModelProperty("流程实例id")
// @JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

25
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnNodeQuery.java

@ -0,0 +1,25 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:04
* @Description
*/
@Data
public class SmsGoodsReturnNodeQuery implements Query {
private static final long serialVersionUID = 9117613683840483366L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
private Integer next;
}

26
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:03
* @Description
*/
@Data
public class SmsGoodsReturnNodeVo implements Vo {
private static final long serialVersionUID = -833419512294877848L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

48
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SmsGoodsReturnTaskQuery.java

@ -0,0 +1,48 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/6 15:06
* @Description
*/
@Data
public class SmsGoodsReturnTaskQuery implements Query {
private static final long serialVersionUID = 1288615499873178778L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id(PC)")
private String instanceId;
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
}

25
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturn/flowable/SubmitSmsGoodsReturnDto.java

@ -0,0 +1,25 @@
package com.yxt.sms.biz.smssalesreturn.flowable;
import com.yxt.sms.biz.smssalesreturn.SmsSalesReturnNewDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author liuguohui
* @version 1.0
* @description
* @date 2022/04/13
*/
@ApiModel("提交")
@Data
public class SubmitSmsGoodsReturnDto extends SmsSalesReturnNewDto {
@ApiModelProperty("意见")
private String comment;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

12
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturndetail/SmsSalesReturnDetailMapper.java

@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -53,13 +54,16 @@ public interface SmsSalesReturnDetailMapper extends BaseMapper<SmsSalesReturnDet
//@Update("update sms_sales_return_detail set name=#{msg} where id=#{id}")
//IPage<SmsSalesReturnDetailVo> voPage(IPage<SmsSalesReturnDetail> page, @Param(Constants.WRAPPER) QueryWrapper<SmsSalesReturnDetail> qw);
IPage<SmsSalesReturnDetailVo> selectPageVo(IPage<SmsSalesReturnDetail> page, @Param(Constants.WRAPPER) Wrapper<SmsSalesReturnDetail> qw);
List<SmsSalesReturnDetailVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SmsSalesReturnDetail> qw);
@Select("select * from sms_sales_return_detail")
List<SmsSalesReturnDetailVo> selectListVo();
@Select("select * from sms_sales_return_detail where billSid = #{billSid}")
List<SmsSalesReturnDetail> fetchByBillSid(@Param("billSid") String billSid);
}
@Delete("delete from sms_sales_return_detail where billSid = #{billSid}")
void deleteByMainSid(String billSid);
}

20
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesreturndetail/SmsSalesReturnDetailService.java

@ -61,6 +61,10 @@ public class SmsSalesReturnDetailService extends MybatisBaseService<SmsSalesRetu
return qw;
}
public void deleteByMainSid(String billSid) {
baseMapper.deleteByMainSid(billSid);
}
public List<SmsSalesReturnDetail> fetchByBillSid(String billSid) {
return baseMapper.fetchByBillSid(billSid);
}
@ -73,36 +77,36 @@ public class SmsSalesReturnDetailService extends MybatisBaseService<SmsSalesRetu
PagerVo<SmsSalesReturnDetailVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(SmsSalesReturnDetailDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
return;
}
this.updateByDto(dto);
}
public void insertByDto(SmsSalesReturnDetailDto dto){
SmsSalesReturnDetail entity = new SmsSalesReturnDetail();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(SmsSalesReturnDetailDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
}
SmsSalesReturnDetail entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public SmsSalesReturnDetailDetailsVo fetchDetailsVoBySid(String sid){
SmsSalesReturnDetail entity = fetchBySid(sid);
SmsSalesReturnDetailDetailsVo vo = new SmsSalesReturnDetailDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}
}

1
yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java

@ -8,6 +8,7 @@ public enum ProcDefEnum {
/***************************正式流程id***********************************/
SMSPRICESTRATEGYBILL("价格策略申请审批", "process_jogsdsgk:1:11807504"),
SMSSALESRETURN("商品退货申请", "process_bucc4eii:1:12245004"),
;

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

@ -4,7 +4,9 @@ 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.wmsoutbill.*;
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.pageUtil.MyPagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@ -17,11 +19,19 @@ import org.springframework.web.bind.annotation.*;
**/
@Api(tags = "商品标签表")
@RestController
@RequestMapping("/apiadmin/WmsGoodsTag")
@RequestMapping("/apiadmin/WmsTagPrint")
public class WmsGoodsTagRest {
@Autowired
private WmsGoodsTagService wmsWmsGoodsTagService;
@PostMapping("goodsList")
@ApiOperation("商品标签列表")
ResultBean<MyPagerVo<GoodsTagListVo>> goodsList(@RequestBody PagerQuery<GoodsTagListQuery> pagerQuery) {
ResultBean<MyPagerVo<GoodsTagListVo>> rb = ResultBean.fireFail();
MyPagerVo<GoodsTagListVo> pv = wmsWmsGoodsTagService.goodsList(pagerQuery);
return rb.success().setData(pv);
}
}

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

@ -1,6 +1,11 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
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.wms.biz.inventory.wmsgoodstag.app.GoodsTagListVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -14,4 +19,6 @@ import org.apache.ibatis.annotations.Param;
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);
}

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

@ -5,4 +5,27 @@
<select id="selByBillSidAndGoodsID" resultType="com.yxt.wms.biz.inventory.wmsgoodstag.WmsGoodsTag">
select * from wms_goods_tag where billSid =#{billSid} and goodsID =#{goodsID}
</select>
<select id="goodsList" resultType="com.yxt.wms.biz.inventory.wmsgoodstag.app.GoodsTagListVo">
SELECT
DATE_FORMAT(a.deliveryDate, '%Y-%m-%d') as arriveTime,
a.busTypeValue as businessType,
a.createByName as consignee,
a.sourceBillNo as expectedArriveId,
a.supplierName as provider,
a.billNo as receiptId,
a.sid as receiptSid,
CASE
a.billState
WHEN '0' THEN
'新建'
WHEN '1' THEN
'已完成'
END AS state,
DATE_FORMAT(a.createTime, '%Y-%m-%d') as `time`
FROM
wms_receipt_bill AS a
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

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

@ -1,7 +1,21 @@
package com.yxt.wms.biz.inventory.wmsgoodstag;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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 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.pageUtil.MyPagerUtil;
import com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil.MyPagerVo;
import com.yxt.wms.biz.inventory.wmsreceiptbill.WmsReceiptBill;
import org.springframework.stereotype.Service;
/**
@ -16,4 +30,14 @@ public class WmsGoodsTagService extends MybatisBaseService<WmsGoodsTagMapper, Wm
return baseMapper.selByBillSidAndGoodsID(billSid,goodsID);
}
public MyPagerVo<GoodsTagListVo> goodsList(PagerQuery<GoodsTagListQuery> pagerQuery) {
GoodsTagListQuery query = pagerQuery.getParams();
QueryWrapper<WmsReceiptBill> qw = new QueryWrapper<>();
//ToDo:添加查询条件
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;
}
}

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

@ -0,0 +1,15 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/24 15:02
*/
@Data
public class GoodsTagListQuery implements Query {
}

48
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/app/GoodsTagListVo.java

@ -0,0 +1,48 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.app;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/6/24 14:47
*/
@Data
public class GoodsTagListVo implements Vo {
/**
* 到货日期
*/
private String arriveTime;
/**
* 业务类型
*/
private String businessType;
/**
* 收货人
*/
private String consignee;
/**
* 预期到货通知单号
*/
private String expectedArriveId;
/**
* 供应商
*/
private String provider;
/**
* 收货单号
*/
private String receiptId;
private String receiptSid;
/**
* 单据状态
*/
private String state;
/**
* time
*/
private String time;
}

102
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/pageUtil/MyPagerUtil.java

@ -0,0 +1,102 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.common.core.vo.Vo;
import java.util.ArrayList;
/**
* Project: jbsc-commons <br/>
* File: PagerUtil.java <br/>
* Class: org.jbase.jbsc.commons.base.utils.PagerUtil <br/>
* Description: <描述类的功能>. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2020/9/22 上午9:35 <br/>
*
* @author popo
* @version 1.0
* @since 1.0
*/
public abstract class MyPagerUtil {
public static <T> IPage<T> queryToPage(PagerQuery pq) {
IPage<T> page = new Page<>();
page.setSize(pq.getSize()).setCurrent(pq.getCurrent());
return page;
}
public static <V, T> MyPagerVo<V> pageToVo(IPage pr, MyPagerVo<V> pv) {
if (pv == null)
pv = new MyPagerVo<V>();
pv.setCurrent(pr.getCurrent()).setSize(pr.getSize())
.setTotal(pr.getTotal()).setPages(pr.getPages())
.setList(pr.getRecords());
return pv;
}
/**
* 转换pagerVo
*
* @param soure
* @param
* @return
*/
public static <S extends Vo, T extends Vo> MyPagerVo<T> switchPagerVo(
MyPagerVo<S> soure) {
if (soure == null)
return null;
MyPagerVo<T> target = new MyPagerVo<>();
target.setCurrent(soure.getCurrent()).setPages(soure.getPages())
.setSize(soure.getSize()).setTotal(soure.getTotal());
target.setList(new ArrayList<T>());
return target;
}
/*
* public static <S, V> PagerVo<V> pageVoToVo(PagerVo<S> pvs, PagerVo<V>
* pvt) { if (pvt == null) pvt = new PagerVo<V>();
* pvt.setCurrent(pvs.getCurrent
* ()).setSize(pvs.getSize()).setTotal(pvs.getTotal
* ()).setPages(pvs.getPages());
*
* for(int i=0;i<pvs.getRecords().size();i++) { WfTaskAppVo taskAppVo=new
* WfTaskAppVo();
*
* pvt.getRecords().add(taskAppVo.fromMap(pvs.getRecords().get(i).toMap()));
* }
*
*
* return pv; }
*/
}

123
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsgoodstag/pageUtil/MyPagerVo.java

@ -0,0 +1,123 @@
package com.yxt.wms.biz.inventory.wmsgoodstag.pageUtil;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Map;
@ApiModel(description = "返回的分页结果")
public class MyPagerVo<T> implements Serializable {
@ApiModelProperty("总页数")
private long pages = 1L; //总页数
@ApiModelProperty("总记录数")
private long total = 0L; //总记录数
@ApiModelProperty("每页记录数")
private long size = 10L; //每页记录数
@ApiModelProperty("当前页号")
private long current = 1L; //当前页号
@ApiModelProperty("当前页的数据")
private List<T> list = Collections.emptyList(); //当前页的数据
@ApiModelProperty("统计信息")
private String msg = "";
@ApiModelProperty("其它信息")
private Map<String, Object> map = Collections.emptyMap();
public MyPagerVo() {
this.pages = 1L; //总页数
this.total = 0L; //总记录数
this.size = 10L; //每页记录数
this.current = 1L; //当前页号
this.list = Collections.emptyList(); //当前页的数据
}
public MyPagerVo(long current) {
this.pages = 1L; //总页数
this.total = 0L; //总记录数
this.size = 10L; //每页记录数
this.current = current; //当前页号
this.list = Collections.emptyList(); //当前页的数据
}
public long getPages() {
return pages;
}
public MyPagerVo<T> setPages(long pages) {
this.pages = pages;
return this;
}
public long getTotal() {
return total;
}
public MyPagerVo<T> setTotal(long total) {
this.total = total;
return this;
}
public long getSize() {
return size;
}
public MyPagerVo<T> setSize(long size) {
this.size = size;
return this;
}
public long getCurrent() {
return current;
}
public MyPagerVo<T> setCurrent(long current) {
this.current = current;
return this;
}
public List<T> getList() {
return list;
}
public MyPagerVo<T> setList(List<T> list) {
this.list = list;
return this;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Map<String, Object> getMap() {
return map;
}
public void setMap(Map<String, Object> map) {
this.map = map;
}
// @ApiModelProperty("每页记录数,size的别名")
// public long get_p_size() {
// return size;
// }
//
// @ApiModelProperty("当前页号,current的别名")
// public long get_p_no() {
// return current;
// }
//
// @ApiModelProperty("总记录数,total的别名")
// public long get_p_total() {
// return total;
// }
}

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbill/WmsReceiptBill.java

@ -46,4 +46,7 @@ public class WmsReceiptBill extends BaseEntity {
private String deptSid;
@ApiModelProperty("申请部门")
private String deptName;
@ApiModelProperty("标签打印状态0打印未完成,1打印已完成")
private Integer printState;
}

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

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

Loading…
Cancel
Save