
83 changed files with 7025 additions and 197 deletions
@ -0,0 +1,76 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply; |
|||
|
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: anrui-as(旧件返厂) <br/> |
|||
* File: AsOldpartreturnApplyVo.java <br/> |
|||
* Class: com.yxt.anrui.as.api.asoldpartreturnapply.AsOldpartreturnApplyVo <br/> |
|||
* Description: 旧件返厂申请 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-04-17 10:29:50 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "旧件返厂申请 视图数据详情", description = "旧件返厂申请 视图数据详情") |
|||
public class AppOldpartreturnApplyDetailsVo implements Vo { |
|||
|
|||
private String sid; |
|||
@ApiModelProperty("制单人姓名") |
|||
private String createByName; |
|||
@ApiModelProperty("发起部门名称") |
|||
private String createDeptName; |
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
@ApiModelProperty("申请日期") |
|||
private Date createTime; |
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("附件路径") |
|||
private List<String> files = new ArrayList<>(); |
|||
@ApiModelProperty("流程实例的sid") |
|||
private String procInsId; |
|||
@ApiModelProperty("任务id") |
|||
private String taskId; |
|||
@ApiModelProperty("返厂旧件列表") |
|||
private List<AppOldpartreturnDetailsVo> asOldpartreturnList; |
|||
@ApiModelProperty("合计") |
|||
private String total; |
|||
} |
@ -0,0 +1,64 @@ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply; |
|||
|
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowTaskQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
/** |
|||
* @Author |
|||
* @Date |
|||
* @Description |
|||
*/ |
|||
@FeignClient( |
|||
contextId = "terminal-AppOldpartreturnApply", |
|||
name = "anrui-terminal", |
|||
path = "v1/oldpartreturnapply") |
|||
public interface AppOldpartreturnApplyFeign { |
|||
|
|||
@ApiOperation("详情") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
public ResultBean<AppOldpartreturnApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
|
|||
/**********************************************流程********************************************/ |
|||
|
|||
@ApiOperation("办理") |
|||
@PutMapping("/agreeCreditInfo") |
|||
@ResponseBody |
|||
ResultBean agreeCreditInfo(@RequestBody AppFlowDto dto); |
|||
|
|||
@ApiOperation("驳回") |
|||
@PutMapping("/rejectCreditInfo") |
|||
@ResponseBody |
|||
ResultBean rejectCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("撤回") |
|||
@PutMapping("/recallCreditInfo") |
|||
@ResponseBody |
|||
ResultBean recallCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("终止") |
|||
@PutMapping("/stopCreditInfo") |
|||
@ResponseBody |
|||
ResultBean stopCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("获取流程操作标题") |
|||
@GetMapping("/getFlowOperateTitle") |
|||
@ResponseBody |
|||
ResultBean<String> getFlowOperateTitle(@SpringQueryMap AppFlowQuery query); |
|||
|
|||
@ApiOperation(value = "加签") |
|||
@PutMapping(value = "/delegate") |
|||
@ResponseBody |
|||
public ResultBean delegate(@RequestBody AppDelegateQuery delegateQuery); |
|||
|
|||
@ApiOperation(value = "转办") |
|||
@PutMapping(value = "/assignTask") |
|||
@ResponseBody |
|||
public ResultBean assignTask(@RequestBody AppDelegateQuery delegateQuery); |
|||
} |
@ -0,0 +1,81 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* Project: anrui-as(旧件返厂) <br/> |
|||
* File: AsOldpartreturnVo.java <br/> |
|||
* Class: com.yxt.anrui.as.api.asoldpartreturn.AsOldpartreturnVo <br/> |
|||
* Description: 返厂旧件列表 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-04-17 10:29:50 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "返厂旧件列表 视图数据详情", description = "返厂旧件列表 视图数据详情") |
|||
public class AppOldpartreturnDetailsVo implements Vo { |
|||
|
|||
@ApiModelProperty("商品sku名称") |
|||
private String goodsSkuTitle; |
|||
@ApiModelProperty("商品sku名称") |
|||
private String goodsSkuName; |
|||
@ApiModelProperty("图号") |
|||
private String goodsSkuCode; |
|||
@ApiModelProperty("厂家名称") |
|||
private String manufacturerName; |
|||
@ApiModelProperty("规格") |
|||
private String goodsSkuOwnSpec; |
|||
@ApiModelProperty("单位") |
|||
private String unit; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("维修单号") |
|||
private String sourceBillNo; |
|||
@ApiModelProperty("索赔单号") |
|||
private String claimBillNo; |
|||
@ApiModelProperty("需返厂数量") |
|||
private BigDecimal needReturnCount; |
|||
@ApiModelProperty("实际返厂数量") |
|||
private BigDecimal actualReturnCount; |
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("是否迟返(1是0否)") |
|||
private String isCf; |
|||
@ApiModelProperty("是否迟返(1是0否)") |
|||
private String isCf2; |
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/9/28 10:16 |
|||
*/ |
|||
@Data |
|||
public class AppDelegateQuery { |
|||
@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; |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:09 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowDto implements Dto { |
|||
private static final long serialVersionUID = 3626473483180150495L; |
|||
|
|||
@ApiModelProperty(value = "任务id") |
|||
@NotBlank(message = "参数错误:taskId") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "流程id") |
|||
@NotBlank(message = "参数错误:procInsId") |
|||
@JsonProperty("procInsId") |
|||
private String instanceId; |
|||
@ApiModelProperty(value = "意见") |
|||
private String comment; |
|||
@ApiModelProperty(value = "业务sid") |
|||
@NotBlank(message = "参数错误:businessSid") |
|||
private String businessSid; |
|||
@ApiModelProperty(value = "用户sid") |
|||
@NotBlank(message = "参数错误:userSid") |
|||
private String userSid; |
|||
@ApiModelProperty(value = "节点id") |
|||
@NotBlank(message = "参数错误:taskDefKey") |
|||
private String taskDefKey; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:15 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowQuery implements Query { |
|||
private static final long serialVersionUID = 5514095179438249641L; |
|||
|
|||
@ApiModelProperty(value = "节点key") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "业务sid") |
|||
private String businessSid; |
|||
@ApiModelProperty(value = "0 上一环节 1下一环节") |
|||
@NotNull(message = "参数错误:next") |
|||
private Integer next; |
|||
|
|||
@ApiModelProperty("组织机构全路径") |
|||
private String orgPath; |
|||
} |
@ -0,0 +1,47 @@ |
|||
package com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:11 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowTaskQuery implements Query { |
|||
private static final long serialVersionUID = -7082170710942810289L; |
|||
|
|||
/** |
|||
* 终止、驳回、撤回 |
|||
*/ |
|||
@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") |
|||
@JsonProperty("procInsId") |
|||
private String instanceId; |
|||
} |
@ -0,0 +1,109 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill; |
|||
|
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单) <br/> |
|||
* File: WmsInventoryAllocatebillVo.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebill.WmsInventoryAllocatebillVo <br/> |
|||
* Description: (调拨单)-调出方操作 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-03-25 16:04:08 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单)-调出方操作 视图数据详情", description = "(调拨单)-调出方操作 视图数据详情") |
|||
public class AppInventoryAllocateBillDetailsVoNew implements Vo { |
|||
|
|||
private String sid; |
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") |
|||
@ApiModelProperty("申请日期") |
|||
private Date createTime; |
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("制单人sid") |
|||
private String createBySid; |
|||
@ApiModelProperty("制单人姓名") |
|||
private String createByName; |
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; |
|||
@ApiModelProperty("申请部门sid") |
|||
private String deptSid; |
|||
@ApiModelProperty("申请部门名称") |
|||
private String deptName; |
|||
@ApiModelProperty("调出站sid") |
|||
private String outPlatSid; |
|||
@ApiModelProperty("调出站名称") |
|||
private String outPlatName; |
|||
@ApiModelProperty("调入站sid") |
|||
private String inPlatSid; |
|||
@ApiModelProperty("调入站名称") |
|||
private String inPlatName; |
|||
@ApiModelProperty("调入分公司sid") |
|||
private String inOrgSid; |
|||
@ApiModelProperty("调入分公司sid") |
|||
private String inOrgName; |
|||
@ApiModelProperty("确认人sid") |
|||
private String confirmSid; |
|||
@ApiModelProperty("确认人姓名") |
|||
private String confirmName; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
|||
@ApiModelProperty("完成时间") |
|||
private Date finishTime; |
|||
@ApiModelProperty("创建组织") |
|||
private String createOrgName; |
|||
@ApiModelProperty("创建组织sid") |
|||
private String createOrgSid; |
|||
@ApiModelProperty("流程定义的id") |
|||
private String procDefId; // 流程定义的id
|
|||
@ApiModelProperty("环节定义的sid") |
|||
private String nodeId; // 环节定义的sid
|
|||
@ApiModelProperty("流程实例的sid") |
|||
private String procInsId; // 流程实例的sid
|
|||
@ApiModelProperty("流程状态") |
|||
private String nodeState; // 流程状态
|
|||
@ApiModelProperty("任务id") |
|||
private String taskId; // 任务id
|
|||
@ApiModelProperty("调拨等级(1一级站内,2分公司内,3集团内)") |
|||
private Integer grade; |
|||
@ApiModelProperty("调拨单商品明细") |
|||
private List<AppInventoryAllocatebillDetailDetailsVoNew> wmsInventoryAllocateBillDetailNewList; |
|||
} |
@ -0,0 +1,103 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单) <br/> |
|||
* File: WmsInventoryAllocatebillDetailVo.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebilldetail.WmsInventoryAllocatebillDetailVo <br/> |
|||
* Description: (调拨单-明细) 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-03-25 16:04:08 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单-明细) 视图数据详情", description = "(调拨单-明细) 视图数据详情") |
|||
public class AppInventoryAllocatebillDetailDetailsVoNew implements Vo { |
|||
|
|||
private String sid; |
|||
|
|||
@ApiModelProperty("主表sid") |
|||
private String billSid; |
|||
@ApiModelProperty("商品库存sid") |
|||
private String inventorySid; |
|||
@ApiModelProperty("商品ID") |
|||
private String goodsID; |
|||
@ApiModelProperty("商品spuSid") |
|||
private String goodsSpuSid; |
|||
@ApiModelProperty("商品spu名称") |
|||
private String goodsSpuName; |
|||
@ApiModelProperty("商品Skusid") |
|||
private String goodsSkuSid; |
|||
@ApiModelProperty("商品sku名称") |
|||
private String goodsSkuTitle; |
|||
@ApiModelProperty("图号") |
|||
private String goodsSkuCode; |
|||
@ApiModelProperty("规格") |
|||
private String goodsSkuOwnSpec; |
|||
@ApiModelProperty("厂家sid") |
|||
private String manufacturerSid; |
|||
@ApiModelProperty("厂家名称") |
|||
private String manufacturerName; |
|||
@ApiModelProperty("单位") |
|||
private String unit; |
|||
@ApiModelProperty("仓库sid") |
|||
private String warehouseSid; |
|||
@ApiModelProperty("仓库名称") |
|||
private String warehouseName; |
|||
@ApiModelProperty("库区sid") |
|||
private String warehouseAreaSid; |
|||
@ApiModelProperty("库区名称") |
|||
private String warehouseArea; |
|||
@ApiModelProperty("库位sid") |
|||
private String warehouseRackSid; |
|||
@ApiModelProperty("库位编码") |
|||
private String warehouseRackCode; |
|||
@ApiModelProperty("库存数量") |
|||
private BigDecimal stockCount; |
|||
@ApiModelProperty("成本价") |
|||
private BigDecimal taxPrice; |
|||
@ApiModelProperty("加价比例(%)") |
|||
private BigDecimal markUpRatio; |
|||
@ApiModelProperty("调拔单价") |
|||
private BigDecimal requAmount; |
|||
@ApiModelProperty("调拨数量") |
|||
private BigDecimal count; |
|||
@ApiModelProperty("调拨金额(调拨数量*含税价)") |
|||
private BigDecimal amount; |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill; |
|||
|
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowTaskQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
@FeignClient( |
|||
contextId = "terminal-AppInventoryAllocatebill", |
|||
name = "anrui-terminal", |
|||
path = "v1/inventoryallocatebill") |
|||
public interface AppInventoryAllocatebillFeign { |
|||
|
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
public ResultBean<AppInventoryAllocateBillDetailsVoNew> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
|
|||
/**********************************************流程********************************************/ |
|||
|
|||
@ApiOperation("办理") |
|||
@PutMapping("/agreeCreditInfo") |
|||
@ResponseBody |
|||
ResultBean agreeCreditInfo(@RequestBody AppFlowDto dto); |
|||
|
|||
@ApiOperation("驳回") |
|||
@PutMapping("/rejectCreditInfo") |
|||
@ResponseBody |
|||
ResultBean rejectCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("撤回") |
|||
@PutMapping("/recallCreditInfo") |
|||
@ResponseBody |
|||
ResultBean recallCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("终止") |
|||
@PutMapping("/stopCreditInfo") |
|||
@ResponseBody |
|||
ResultBean stopCreditInfo(@RequestBody AppFlowTaskQuery query); |
|||
|
|||
@ApiOperation("获取流程操作标题") |
|||
@GetMapping("/getFlowOperateTitle") |
|||
@ResponseBody |
|||
ResultBean<String> getFlowOperateTitle(@SpringQueryMap AppFlowQuery query); |
|||
|
|||
@ApiOperation(value = "加签") |
|||
@PutMapping(value = "/delegate") |
|||
@ResponseBody |
|||
public ResultBean delegate(@RequestBody AppDelegateQuery delegateQuery); |
|||
|
|||
@ApiOperation(value = "转办") |
|||
@PutMapping(value = "/assignTask") |
|||
@ResponseBody |
|||
public ResultBean assignTask(@RequestBody AppDelegateQuery delegateQuery); |
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/9/28 10:16 |
|||
*/ |
|||
@Data |
|||
public class AppDelegateQuery { |
|||
@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; |
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.yxt.common.core.dto.Dto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:09 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowDto implements Dto { |
|||
private static final long serialVersionUID = 3626473483180150495L; |
|||
|
|||
@ApiModelProperty(value = "任务id") |
|||
@NotBlank(message = "参数错误:taskId") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "流程id") |
|||
@NotBlank(message = "参数错误:procInsId") |
|||
@JsonProperty("procInsId") |
|||
private String instanceId; |
|||
@ApiModelProperty(value = "意见") |
|||
private String comment; |
|||
@ApiModelProperty(value = "业务sid") |
|||
@NotBlank(message = "参数错误:businessSid") |
|||
private String businessSid; |
|||
@ApiModelProperty(value = "用户sid") |
|||
@NotBlank(message = "参数错误:userSid") |
|||
private String userSid; |
|||
@ApiModelProperty(value = "节点id") |
|||
@NotBlank(message = "参数错误:taskDefKey") |
|||
private String taskDefKey; |
|||
} |
@ -0,0 +1,28 @@ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable; |
|||
|
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotNull; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:15 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowQuery implements Query { |
|||
private static final long serialVersionUID = 5514095179438249641L; |
|||
|
|||
@ApiModelProperty(value = "节点key") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "业务sid") |
|||
private String businessSid; |
|||
@ApiModelProperty(value = "0 上一环节 1下一环节") |
|||
@NotNull(message = "参数错误:next") |
|||
private Integer next; |
|||
|
|||
@ApiModelProperty("组织机构全路径") |
|||
private String orgPath; |
|||
} |
@ -0,0 +1,47 @@ |
|||
package com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable; |
|||
|
|||
import com.fasterxml.jackson.annotation.JsonProperty; |
|||
import com.yxt.common.core.query.Query; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @Author dimengzhe |
|||
* @Date 2022/8/9 14:11 |
|||
* @Description |
|||
*/ |
|||
@Data |
|||
public class AppFlowTaskQuery implements Query { |
|||
private static final long serialVersionUID = -7082170710942810289L; |
|||
|
|||
/** |
|||
* 终止、驳回、撤回 |
|||
*/ |
|||
@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") |
|||
@JsonProperty("procInsId") |
|||
private String instanceId; |
|||
} |
@ -0,0 +1,85 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.biz.as.oldpartreturnapply; |
|||
|
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.AppOldpartreturnApplyDetailsVo; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.AppOldpartreturnApplyFeign; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowTaskQuery; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@RestController |
|||
@RequestMapping("v1/oldpartreturnapply") |
|||
public class AppOldpartreturnApplyRest implements AppOldpartreturnApplyFeign { |
|||
|
|||
@Autowired |
|||
private AppOldpartreturnApplyService appOldpartreturnApplyService; |
|||
|
|||
@Override |
|||
public ResultBean<AppOldpartreturnApplyDetailsVo> fetchDetailsBySid(String sid) { |
|||
return appOldpartreturnApplyService.fetchDetailsBySid(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean agreeCreditInfo(AppFlowDto dto) { |
|||
return appOldpartreturnApplyService.agreeCreditInfo(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { |
|||
return appOldpartreturnApplyService.rejectCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean recallCreditInfo(AppFlowTaskQuery query) { |
|||
return appOldpartreturnApplyService.recallCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean stopCreditInfo(AppFlowTaskQuery query) { |
|||
return appOldpartreturnApplyService.stopCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) { |
|||
return appOldpartreturnApplyService.getFlowOperateTitle(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delegate(AppDelegateQuery delegateQuery) { |
|||
return appOldpartreturnApplyService.delegate(delegateQuery); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean assignTask(AppDelegateQuery delegateQuery) { |
|||
return appOldpartreturnApplyService.assignTask(delegateQuery); |
|||
} |
|||
} |
@ -0,0 +1,186 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.biz.as.oldpartreturnapply; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|||
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.AppOldpartreturnApplyDetailsVo; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.AppOldpartreturnDetailsVo; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.as.oldpartreturnapply.flowable.AppFlowTaskQuery; |
|||
import com.yxt.anrui.terminal.fegin.asoldpartreturnapply.AsOldpartreturnApplyDetailsVo; |
|||
import com.yxt.anrui.terminal.fegin.asoldpartreturnapply.AsOldpartreturnApplyFegin; |
|||
import com.yxt.anrui.terminal.fegin.asoldpartreturnapply.flowable.*; |
|||
import com.yxt.anrui.terminal.fegin.astechtitleapply.flowable.*; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
@Service |
|||
public class AppOldpartreturnApplyService { |
|||
|
|||
@Resource |
|||
private AsOldpartreturnApplyFegin asOldpartreturnApplyFegin; |
|||
@Autowired |
|||
private SysStaffOrgFeign sysStaffOrgFeign; |
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
|
|||
public ResultBean<AppOldpartreturnApplyDetailsVo> fetchDetailsBySid(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyDetailsVo data = asOldpartreturnApplyFegin.fetchDetailsBySid(sid).getData(); |
|||
AppOldpartreturnApplyDetailsVo appOldpartreturnApplyDetailsVo = new AppOldpartreturnApplyDetailsVo(); |
|||
BeanUtil.copyProperties(data,appOldpartreturnApplyDetailsVo); |
|||
appOldpartreturnApplyDetailsVo.setProcInsId(data.getProcInstId()); |
|||
appOldpartreturnApplyDetailsVo.setCreateDeptName(data.getDeptName()); |
|||
List<String> filePaths = data.getFilePaths(); |
|||
ArrayList<String> files = new ArrayList<>(); |
|||
for (String path : filePaths) { |
|||
files.add(path); |
|||
} |
|||
appOldpartreturnApplyDetailsVo.setFiles(files); |
|||
List<AppOldpartreturnDetailsVo> asOldpartreturnList = appOldpartreturnApplyDetailsVo.getAsOldpartreturnList(); |
|||
for (AppOldpartreturnDetailsVo appOldpartreturnDetailsVo : asOldpartreturnList) { |
|||
appOldpartreturnDetailsVo.setGoodsSkuName(appOldpartreturnDetailsVo.getGoodsSkuTitle()); |
|||
appOldpartreturnDetailsVo.setIsCf2(appOldpartreturnDetailsVo.getIsCf().equals("1") ? "是" : "否"); |
|||
} |
|||
return rb.success().setData(appOldpartreturnApplyDetailsVo); |
|||
} |
|||
|
|||
public ResultBean agreeCreditInfo(AppFlowDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
//根据用户sid获取staffSid
|
|||
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); |
|||
if (!userVoResultBean.getSuccess()) { |
|||
return rb.setMsg(userVoResultBean.getMsg()); |
|||
} |
|||
//根据staffSid获取用户的组织全路径
|
|||
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); |
|||
if (!staffOrgResultBean.getSuccess()) { |
|||
return rb.setMsg(staffOrgResultBean.getMsg()); |
|||
} |
|||
//用户的组织全路径
|
|||
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); |
|||
AsOldpartreturnApplyCompleteDto asOldpartreturnApplyCompleteDto = new AsOldpartreturnApplyCompleteDto(); |
|||
BeanUtil.copyProperties(dto, asOldpartreturnApplyCompleteDto); |
|||
asOldpartreturnApplyCompleteDto.setOrgPath(orgSidPath); |
|||
ResultBean resultBean = asOldpartreturnApplyFegin.complete(asOldpartreturnApplyCompleteDto); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyTaskQuery asOldpartreturnApplyTaskQuery = new AsOldpartreturnApplyTaskQuery(); |
|||
BeanUtil.copyProperties(query, asOldpartreturnApplyTaskQuery); |
|||
ResultBean resultBean = asOldpartreturnApplyFegin.taskReject(asOldpartreturnApplyTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean recallCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyTaskQuery asOldpartreturnApplyTaskQuery = new AsOldpartreturnApplyTaskQuery(); |
|||
BeanUtil.copyProperties(query, asOldpartreturnApplyTaskQuery); |
|||
ResultBean resultBean = asOldpartreturnApplyFegin.revokeProcess(asOldpartreturnApplyTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean stopCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyTaskQuery asOldpartreturnApplyTaskQuery = new AsOldpartreturnApplyTaskQuery(); |
|||
BeanUtil.copyProperties(query, asOldpartreturnApplyTaskQuery); |
|||
ResultBean resultBean = asOldpartreturnApplyFegin.breakProcess(asOldpartreturnApplyTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
//0 上一环节 1下一环节
|
|||
int next = query.getNext(); |
|||
AsOldpartreturnApplyNodeQuery getNodeQuery = new AsOldpartreturnApplyNodeQuery(); |
|||
BeanUtil.copyProperties(query, getNodeQuery); |
|||
String data = ""; |
|||
if (next == 0) { |
|||
ResultBean<List<AsOldpartreturnApplyNodeVo>> getPreviousNodesForReject = asOldpartreturnApplyFegin.getPreviousNodesForReject(getNodeQuery); |
|||
if (getPreviousNodesForReject.getSuccess()) { |
|||
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null)); |
|||
data = getPreviousNodesForReject.getData().get(0).getName(); |
|||
} else { |
|||
return rb.setMsg(getPreviousNodesForReject.getMsg()); |
|||
} |
|||
} else if (next == 1) { |
|||
ResultBean<List<AsOldpartreturnApplyNodeVo>> getNextNodesForSubmit = asOldpartreturnApplyFegin.getNextNodesForSubmit(getNodeQuery); |
|||
if (getNextNodesForSubmit.getSuccess()) { |
|||
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null)); |
|||
data = getNextNodesForSubmit.getData().get(0).getName(); |
|||
} else { |
|||
return rb.setMsg(getNextNodesForSubmit.getMsg()); |
|||
} |
|||
} else { |
|||
return rb.setMsg("参数错误:next"); |
|||
} |
|||
return rb.success().setData(data); |
|||
} |
|||
|
|||
public ResultBean delegate(AppDelegateQuery delegateQuery) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyDelegateQuery delegateQuery1 = new |
|||
AsOldpartreturnApplyDelegateQuery(); |
|||
BeanUtil.copyProperties(delegateQuery, delegateQuery1); |
|||
asOldpartreturnApplyFegin.delegate(delegateQuery1); |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean assignTask(AppDelegateQuery delegateQuery) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
AsOldpartreturnApplyDelegateQuery delegateQuery1 = new |
|||
AsOldpartreturnApplyDelegateQuery(); |
|||
BeanUtil.copyProperties(delegateQuery, delegateQuery1); |
|||
asOldpartreturnApplyFegin.assignTask(delegateQuery1); |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,85 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.biz.wms.inventoryallocatebill; |
|||
|
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.AppInventoryAllocateBillDetailsVoNew; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowTaskQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.AppInventoryAllocatebillFeign; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.RequestMapping; |
|||
import org.springframework.web.bind.annotation.RestController; |
|||
|
|||
@RestController |
|||
@RequestMapping("v1/inventoryallocatebill") |
|||
public class AppInventoryAllocatebillRest implements AppInventoryAllocatebillFeign { |
|||
|
|||
@Autowired |
|||
private AppInventoryAllocatebillService appInventoryAllocatebillService; |
|||
|
|||
@Override |
|||
public ResultBean<AppInventoryAllocateBillDetailsVoNew> fetchDetailsBySid(String sid) { |
|||
return appInventoryAllocatebillService.fetchDetailsBySid(sid); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean agreeCreditInfo(AppFlowDto dto) { |
|||
return appInventoryAllocatebillService.agreeCreditInfo(dto); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { |
|||
return appInventoryAllocatebillService.rejectCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean recallCreditInfo(AppFlowTaskQuery query) { |
|||
return appInventoryAllocatebillService.recallCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean stopCreditInfo(AppFlowTaskQuery query) { |
|||
return appInventoryAllocatebillService.stopCreditInfo(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) { |
|||
return appInventoryAllocatebillService.getFlowOperateTitle(query); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean delegate(AppDelegateQuery delegateQuery) { |
|||
return appInventoryAllocatebillService.delegate(delegateQuery); |
|||
} |
|||
|
|||
@Override |
|||
public ResultBean assignTask(AppDelegateQuery delegateQuery) { |
|||
return appInventoryAllocatebillService.assignTask(delegateQuery); |
|||
} |
|||
} |
@ -0,0 +1,172 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.biz.wms.inventoryallocatebill; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; |
|||
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserFeign; |
|||
import com.yxt.anrui.portal.api.sysuser.SysUserVo; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppDelegateQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowDto; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowTaskQuery; |
|||
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.AppInventoryAllocateBillDetailsVoNew; |
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.WmsInventoryAllocateBillDetailsVoNew; |
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.WmsInventoryAllocatebillFeign; |
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable.*; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import javax.annotation.Resource; |
|||
import java.util.ArrayList; |
|||
import java.util.Collections; |
|||
import java.util.List; |
|||
|
|||
@Service |
|||
public class AppInventoryAllocatebillService { |
|||
|
|||
@Resource |
|||
private WmsInventoryAllocatebillFeign wmsInventoryAllocatebillFeign; |
|||
@Autowired |
|||
private SysStaffOrgFeign sysStaffOrgFeign; |
|||
@Autowired |
|||
private SysUserFeign sysUserFeign; |
|||
|
|||
public ResultBean<AppInventoryAllocateBillDetailsVoNew> fetchDetailsBySid(String sid) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
WmsInventoryAllocateBillDetailsVoNew data = wmsInventoryAllocatebillFeign.fetchDetailsBySid(sid).getData(); |
|||
AppInventoryAllocateBillDetailsVoNew appInventoryAllocateBillDetailsVoNew = new AppInventoryAllocateBillDetailsVoNew(); |
|||
BeanUtil.copyProperties(data,appInventoryAllocateBillDetailsVoNew); |
|||
appInventoryAllocateBillDetailsVoNew.setProcInsId(data.getProcInstId()); |
|||
return rb.success().setData(appInventoryAllocateBillDetailsVoNew); |
|||
} |
|||
|
|||
public ResultBean agreeCreditInfo(AppFlowDto dto) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
//根据用户sid获取staffSid
|
|||
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); |
|||
if (!userVoResultBean.getSuccess()) { |
|||
return rb.setMsg(userVoResultBean.getMsg()); |
|||
} |
|||
//根据staffSid获取用户的组织全路径
|
|||
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); |
|||
if (!staffOrgResultBean.getSuccess()) { |
|||
return rb.setMsg(staffOrgResultBean.getMsg()); |
|||
} |
|||
//用户的组织全路径
|
|||
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); |
|||
CompleteFlowDto completeFlowDto = new CompleteFlowDto(); |
|||
BeanUtil.copyProperties(dto, completeFlowDto); |
|||
completeFlowDto.setOrgSidPath(orgSidPath); |
|||
ResultBean resultBean = wmsInventoryAllocatebillFeign.complete(completeFlowDto); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FlowTaskQuery flowTaskQuery = new FlowTaskQuery(); |
|||
BeanUtil.copyProperties(query, flowTaskQuery); |
|||
ResultBean resultBean = wmsInventoryAllocatebillFeign.taskReject(flowTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean recallCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FlowTaskQuery flowTaskQuery = new FlowTaskQuery(); |
|||
BeanUtil.copyProperties(query, flowTaskQuery); |
|||
ResultBean resultBean = wmsInventoryAllocatebillFeign.revokeProcess(flowTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean stopCreditInfo(AppFlowTaskQuery query) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FlowTaskQuery flowTaskQuery = new FlowTaskQuery(); |
|||
BeanUtil.copyProperties(query, flowTaskQuery); |
|||
ResultBean resultBean = wmsInventoryAllocatebillFeign.breakProcess(flowTaskQuery); |
|||
if (!resultBean.getSuccess()) { |
|||
return rb.setMsg(resultBean.getMsg()); |
|||
} |
|||
return rb.success().setData(resultBean.getData()); |
|||
} |
|||
|
|||
public ResultBean<String> getFlowOperateTitle(AppFlowQuery query) { |
|||
ResultBean<String> rb = ResultBean.fireFail(); |
|||
//0 上一环节 1下一环节
|
|||
int next = query.getNext(); |
|||
FlowNodeQuery getNodeQuery = new FlowNodeQuery(); |
|||
BeanUtil.copyProperties(query, getNodeQuery); |
|||
String data = ""; |
|||
if (next == 0) { |
|||
ResultBean<List<FlowNodeVo>> getPreviousNodesForReject = wmsInventoryAllocatebillFeign.getPreviousNodesForReject(getNodeQuery); |
|||
if (getPreviousNodesForReject.getSuccess()) { |
|||
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null)); |
|||
data = getPreviousNodesForReject.getData().get(0).getName(); |
|||
} else { |
|||
return rb.setMsg(getPreviousNodesForReject.getMsg()); |
|||
} |
|||
} else if (next == 1) { |
|||
ResultBean<List<FlowNodeVo>> getNextNodesForSubmit = wmsInventoryAllocatebillFeign.getNextNodesForSubmit(getNodeQuery); |
|||
if (getNextNodesForSubmit.getSuccess()) { |
|||
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null)); |
|||
data = getNextNodesForSubmit.getData().get(0).getName(); |
|||
} else { |
|||
return rb.setMsg(getNextNodesForSubmit.getMsg()); |
|||
} |
|||
} else { |
|||
return rb.setMsg("参数错误:next"); |
|||
} |
|||
return rb.success().setData(data); |
|||
} |
|||
|
|||
public ResultBean delegate(AppDelegateQuery delegateQuery) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FlowDelegateQuery delegateQuery1 = new |
|||
FlowDelegateQuery(); |
|||
BeanUtil.copyProperties(delegateQuery, delegateQuery1); |
|||
wmsInventoryAllocatebillFeign.delegate(delegateQuery1); |
|||
return rb.success(); |
|||
} |
|||
|
|||
public ResultBean assignTask(AppDelegateQuery delegateQuery) { |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
FlowDelegateQuery delegateQuery1 = new |
|||
FlowDelegateQuery(); |
|||
BeanUtil.copyProperties(delegateQuery, delegateQuery1); |
|||
wmsInventoryAllocatebillFeign.assignTask(delegateQuery1); |
|||
return rb.success(); |
|||
} |
|||
} |
@ -0,0 +1,94 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply; |
|||
|
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.ArrayList; |
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: anrui-as(旧件返厂) <br/> |
|||
* File: AsOldpartreturnApplyVo.java <br/> |
|||
* Class: com.yxt.anrui.as.api.asoldpartreturnapply.AsOldpartreturnApplyVo <br/> |
|||
* Description: 旧件返厂申请 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-04-17 10:29:50 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "旧件返厂申请 视图数据详情", description = "旧件返厂申请 视图数据详情") |
|||
public class AsOldpartreturnApplyDetailsVo implements Vo { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("制单人sid") |
|||
private String createBySid; |
|||
@ApiModelProperty("制单人姓名") |
|||
private String createByName; // 制单人姓名
|
|||
@ApiModelProperty("发起部门sid") |
|||
private String deptSid; // 发起部门sid
|
|||
@ApiModelProperty("发起部门名称") |
|||
private String deptName; // 发起部门名称
|
|||
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") |
|||
@ApiModelProperty("申请日期") |
|||
private Date createTime; |
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; // 单据编号
|
|||
@ApiModelProperty("附件路径") |
|||
private List<String> filePaths = new ArrayList<>(); |
|||
@ApiModelProperty("分公司sid") |
|||
private String useOrgSid; // 分公司sid
|
|||
@ApiModelProperty("分公司名称") |
|||
private String useOrgName; // 分公司名称
|
|||
@ApiModelProperty("流程定义的id") |
|||
private String procDefId; // 流程定义的id
|
|||
@ApiModelProperty("环节定义的sid") |
|||
private String nodeId; // 环节定义的sid
|
|||
@ApiModelProperty("流程实例的sid") |
|||
private String procInstId; // 流程实例的sid
|
|||
@ApiModelProperty("流程状态") |
|||
private String nodeState; // 流程状态
|
|||
@ApiModelProperty("任务id") |
|||
private String taskId; // 任务id
|
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
|||
@ApiModelProperty("办结时间") |
|||
private Date finishTime; // 办结时间
|
|||
@ApiModelProperty("返厂旧件列表") |
|||
private List<AsOldpartreturnDetailsVo> asOldpartreturnList; |
|||
} |
@ -0,0 +1,59 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply; |
|||
|
|||
import com.yxt.anrui.terminal.fegin.asoldpartreturnapply.flowable.*; |
|||
import com.yxt.anrui.terminal.fegin.astechtitleapply.AsTechTitleApplyDetailsVo; |
|||
import com.yxt.anrui.terminal.fegin.astechtitleapply.flowable.*; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.List; |
|||
|
|||
@FeignClient( |
|||
contextId = "yxt-as-AsOldpartreturnApply", |
|||
name = "yxt-as", |
|||
path = "v1/asoldpartreturnapply" |
|||
) |
|||
public interface AsOldpartreturnApplyFegin { |
|||
|
|||
@ApiOperation("详情") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
public ResultBean<AsOldpartreturnApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
|
|||
@ApiOperation(value = "办理(同意)") |
|||
@PostMapping("/complete") |
|||
public ResultBean complete(@Valid @RequestBody AsOldpartreturnApplyCompleteDto query); |
|||
|
|||
@ApiOperation(value = "获取上一个环节") |
|||
@GetMapping(value = "/getPreviousNodesForReject") |
|||
ResultBean<List<AsOldpartreturnApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap AsOldpartreturnApplyNodeQuery query); |
|||
|
|||
@ApiOperation(value = "获取下一个环节") |
|||
@GetMapping(value = "/getNextNodesForSubmit") |
|||
ResultBean<List<AsOldpartreturnApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap AsOldpartreturnApplyNodeQuery query); |
|||
|
|||
@ApiOperation(value = "驳回任务") |
|||
@PostMapping(value = "/reject") |
|||
public ResultBean taskReject(@Valid @RequestBody AsOldpartreturnApplyTaskQuery query); |
|||
|
|||
@ApiOperation(value = "撤回流程") |
|||
@PostMapping(value = "/revokeProcess") |
|||
public ResultBean revokeProcess(@Valid @RequestBody AsOldpartreturnApplyTaskQuery query); |
|||
|
|||
@ApiOperation(value = "终止任务") |
|||
@PostMapping(value = "/breakProcess") |
|||
public ResultBean breakProcess(@Valid @RequestBody AsOldpartreturnApplyTaskQuery query); |
|||
|
|||
@ApiOperation(value = "加签") |
|||
@PostMapping(value = "/delegate") |
|||
@ResponseBody |
|||
public ResultBean delegate(@RequestBody AsOldpartreturnApplyDelegateQuery query); |
|||
|
|||
@ApiOperation(value = "转办") |
|||
@PutMapping(value = "/assignTask") |
|||
@ResponseBody |
|||
public ResultBean assignTask(@RequestBody AsOldpartreturnApplyDelegateQuery query); |
|||
} |
@ -0,0 +1,89 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* Project: anrui-as(旧件返厂) <br/> |
|||
* File: AsOldpartreturnVo.java <br/> |
|||
* Class: com.yxt.anrui.as.api.asoldpartreturn.AsOldpartreturnVo <br/> |
|||
* Description: 返厂旧件列表 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-04-17 10:29:50 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "返厂旧件列表 视图数据详情", description = "返厂旧件列表 视图数据详情") |
|||
public class AsOldpartreturnDetailsVo implements Vo { |
|||
|
|||
private String sid; // sid
|
|||
|
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("主表sid") |
|||
private String mainSid; |
|||
@ApiModelProperty("车架号") |
|||
private String vinNo; |
|||
@ApiModelProperty("商品spuSid") |
|||
private String goodsSpuSid; |
|||
@ApiModelProperty("商品spu名称") |
|||
private String goodsSpuName; |
|||
@ApiModelProperty("商品Skusid") |
|||
private String goodsSkuSid; |
|||
@ApiModelProperty("商品sku名称") |
|||
private String goodsSkuTitle; |
|||
@ApiModelProperty("图号") |
|||
private String goodsSkuCode; |
|||
@ApiModelProperty("规格") |
|||
private String goodsSkuOwnSpec; |
|||
@ApiModelProperty("厂家sid") |
|||
private String manufacturerSid; |
|||
@ApiModelProperty("厂家名称") |
|||
private String manufacturerName; |
|||
@ApiModelProperty("单位") |
|||
private String unit; |
|||
@ApiModelProperty("维修单号") |
|||
private String sourceBillNo; |
|||
@ApiModelProperty("索赔单号") |
|||
private String claimBillNo; |
|||
@ApiModelProperty("是否迟返(1是0否)") |
|||
private String isCf; |
|||
@ApiModelProperty("需返厂数量") |
|||
private BigDecimal needReturnCount; // 需返厂数量
|
|||
@ApiModelProperty("实际返厂数量") |
|||
private BigDecimal actualReturnCount; // 实际返厂数量
|
|||
} |
@ -0,0 +1,37 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply.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 AsOldpartreturnApplyCompleteDto 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; |
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @author Administrator |
|||
* @description |
|||
* @date 2023/9/28 9:28 |
|||
*/ |
|||
@Data |
|||
public class AsOldpartreturnApplyDelegateQuery { |
|||
@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; |
|||
|
|||
|
|||
} |
@ -0,0 +1,25 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply.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 AsOldpartreturnApplyNodeQuery 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; |
|||
} |
@ -0,0 +1,26 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply.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 AsOldpartreturnApplyNodeVo 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; |
|||
} |
@ -0,0 +1,48 @@ |
|||
package com.yxt.anrui.terminal.fegin.asoldpartreturnapply.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 AsOldpartreturnApplyTaskQuery 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; |
|||
} |
@ -0,0 +1,109 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill; |
|||
|
|||
|
|||
import com.fasterxml.jackson.annotation.JsonFormat; |
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.Date; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单) <br/> |
|||
* File: WmsInventoryAllocatebillVo.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebill.WmsInventoryAllocatebillVo <br/> |
|||
* Description: (调拨单)-调出方操作 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-03-25 16:04:08 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单)-调出方操作 视图数据详情", description = "(调拨单)-调出方操作 视图数据详情") |
|||
public class WmsInventoryAllocateBillDetailsVoNew implements Vo { |
|||
|
|||
private String sid; |
|||
|
|||
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") |
|||
@ApiModelProperty("申请日期") |
|||
private Date createTime; |
|||
@ApiModelProperty("备注") |
|||
private String remarks; |
|||
@ApiModelProperty("制单人sid") |
|||
private String createBySid; |
|||
@ApiModelProperty("制单人姓名") |
|||
private String createByName; |
|||
@ApiModelProperty("单据编号") |
|||
private String billNo; |
|||
@ApiModelProperty("申请部门sid") |
|||
private String deptSid; |
|||
@ApiModelProperty("申请部门名称") |
|||
private String deptName; |
|||
@ApiModelProperty("调出站sid") |
|||
private String outPlatSid; |
|||
@ApiModelProperty("调出站名称") |
|||
private String outPlatName; |
|||
@ApiModelProperty("调入站sid") |
|||
private String inPlatSid; |
|||
@ApiModelProperty("调入站名称") |
|||
private String inPlatName; |
|||
@ApiModelProperty("调入分公司sid") |
|||
private String inOrgSid; |
|||
@ApiModelProperty("调入分公司sid") |
|||
private String inOrgName; |
|||
@ApiModelProperty("确认人sid") |
|||
private String confirmSid; |
|||
@ApiModelProperty("确认人姓名") |
|||
private String confirmName; |
|||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") |
|||
@ApiModelProperty("完成时间") |
|||
private Date finishTime; |
|||
@ApiModelProperty("创建组织") |
|||
private String createOrgName; |
|||
@ApiModelProperty("创建组织sid") |
|||
private String createOrgSid; |
|||
@ApiModelProperty("流程定义的id") |
|||
private String procDefId; // 流程定义的id
|
|||
@ApiModelProperty("环节定义的sid") |
|||
private String nodeId; // 环节定义的sid
|
|||
@ApiModelProperty("流程实例的sid") |
|||
private String procInstId; // 流程实例的sid
|
|||
@ApiModelProperty("流程状态") |
|||
private String nodeState; // 流程状态
|
|||
@ApiModelProperty("任务id") |
|||
private String taskId; // 任务id
|
|||
@ApiModelProperty("调拨等级(1一级站内,2分公司内,3集团内)") |
|||
private Integer grade; |
|||
@ApiModelProperty("调拨单商品明细") |
|||
private List<WmsInventoryAllocatebillDetailDetailsVoNew> wmsInventoryAllocateBillDetailNewList; |
|||
} |
@ -0,0 +1,103 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.math.BigDecimal; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单) <br/> |
|||
* File: WmsInventoryAllocatebillDetailVo.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebilldetail.WmsInventoryAllocatebillDetailVo <br/> |
|||
* Description: (调拨单-明细) 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-03-25 16:04:08 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单-明细) 视图数据详情", description = "(调拨单-明细) 视图数据详情") |
|||
public class WmsInventoryAllocatebillDetailDetailsVoNew implements Vo { |
|||
|
|||
private String sid; |
|||
|
|||
@ApiModelProperty("主表sid") |
|||
private String billSid; |
|||
@ApiModelProperty("商品库存sid") |
|||
private String inventorySid; |
|||
@ApiModelProperty("商品ID") |
|||
private String goodsID; |
|||
@ApiModelProperty("商品spuSid") |
|||
private String goodsSpuSid; |
|||
@ApiModelProperty("商品spu名称") |
|||
private String goodsSpuName; |
|||
@ApiModelProperty("商品Skusid") |
|||
private String goodsSkuSid; |
|||
@ApiModelProperty("商品sku名称") |
|||
private String goodsSkuTitle; |
|||
@ApiModelProperty("图号") |
|||
private String goodsSkuCode; |
|||
@ApiModelProperty("规格") |
|||
private String goodsSkuOwnSpec; |
|||
@ApiModelProperty("厂家sid") |
|||
private String manufacturerSid; |
|||
@ApiModelProperty("厂家名称") |
|||
private String manufacturerName; |
|||
@ApiModelProperty("单位") |
|||
private String unit; |
|||
@ApiModelProperty("仓库sid") |
|||
private String warehouseSid; |
|||
@ApiModelProperty("仓库名称") |
|||
private String warehouseName; |
|||
@ApiModelProperty("库区sid") |
|||
private String warehouseAreaSid; |
|||
@ApiModelProperty("库区名称") |
|||
private String warehouseArea; |
|||
@ApiModelProperty("库位sid") |
|||
private String warehouseRackSid; |
|||
@ApiModelProperty("库位编码") |
|||
private String warehouseRackCode; |
|||
@ApiModelProperty("库存数量") |
|||
private BigDecimal stockCount; |
|||
@ApiModelProperty("成本价") |
|||
private BigDecimal taxPrice; |
|||
@ApiModelProperty("加价比例(%)") |
|||
private BigDecimal markUpRatio; |
|||
@ApiModelProperty("调拔单价") |
|||
private BigDecimal requAmount; |
|||
@ApiModelProperty("调拨数量") |
|||
private BigDecimal count; |
|||
@ApiModelProperty("调拨金额(调拨数量*含税价)") |
|||
private BigDecimal amount; |
|||
} |
@ -0,0 +1,58 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill; |
|||
|
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable.*; |
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryprofitin.WmsInventoryProfitinDetailsVo; |
|||
import com.yxt.anrui.terminal.fegin.wmsinventoryprofitin.flowable.*; |
|||
import com.yxt.common.core.result.ResultBean; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.cloud.openfeign.FeignClient; |
|||
import org.springframework.cloud.openfeign.SpringQueryMap; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import javax.validation.Valid; |
|||
import java.util.List; |
|||
|
|||
@FeignClient( |
|||
contextId = "yxt-wms-WmsInventoryAllocatebill", |
|||
name = "yxt-wms", |
|||
path = "apiadmin/inventory/wmsinventoryallocatebill") |
|||
public interface WmsInventoryAllocatebillFeign { |
|||
|
|||
@ApiOperation("详情") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
public ResultBean<WmsInventoryAllocateBillDetailsVoNew> fetchDetailsBySid(@PathVariable("sid") String sid); |
|||
|
|||
@ApiOperation(value = "办理(同意)") |
|||
@PostMapping("/complete") |
|||
public ResultBean complete(@Valid @RequestBody CompleteFlowDto query); |
|||
|
|||
@ApiOperation(value = "获取上一个环节") |
|||
@GetMapping(value = "/getPreviousNodesForReject") |
|||
ResultBean<List<FlowNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap FlowNodeQuery query); |
|||
|
|||
@ApiOperation(value = "获取下一个环节") |
|||
@GetMapping(value = "/getNextNodesForSubmit") |
|||
ResultBean<List<FlowNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap FlowNodeQuery query); |
|||
|
|||
@ApiOperation(value = "驳回任务") |
|||
@PostMapping(value = "/reject") |
|||
public ResultBean taskReject(@Valid @RequestBody FlowTaskQuery query); |
|||
|
|||
@ApiOperation(value = "撤回流程") |
|||
@PostMapping(value = "/revokeProcess") |
|||
public ResultBean revokeProcess(@Valid @RequestBody FlowTaskQuery query); |
|||
|
|||
@ApiOperation(value = "终止任务") |
|||
@PostMapping(value = "/breakProcess") |
|||
public ResultBean breakProcess(@Valid @RequestBody FlowTaskQuery query); |
|||
|
|||
@ApiOperation(value = "加签") |
|||
@PostMapping(value = "/delegate") |
|||
@ResponseBody |
|||
public ResultBean delegate(@RequestBody FlowDelegateQuery query); |
|||
|
|||
@ApiOperation(value = "转办") |
|||
@PutMapping(value = "/assignTask") |
|||
@ResponseBody |
|||
public ResultBean assignTask(@RequestBody FlowDelegateQuery query); |
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class CompleteFlowDto { |
|||
|
|||
@ApiModelProperty(value = "用户sid") |
|||
@NotBlank(message = "参数错误:userSid") |
|||
private String userSid; |
|||
@ApiModelProperty(value = "用户全路径sid") |
|||
private String orgSidPath; |
|||
@ApiModelProperty(value = "节点id") |
|||
@NotBlank(message = "参数错误:taskDefKey") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "任务id") |
|||
@NotBlank(message = "参数错误:taskId") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "流程id") |
|||
@NotBlank(message = "参数错误:instanceId") |
|||
private String instanceId; |
|||
@ApiModelProperty(value = "意见") |
|||
private String comment; |
|||
@ApiModelProperty(value = "业务sid") |
|||
@NotBlank(message = "参数错误:businessSid") |
|||
private String businessSid; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowDelegateQuery { |
|||
|
|||
private String userSid; |
|||
@ApiModelProperty("流程实例id") |
|||
private String instanceId; |
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
@ApiModelProperty("审批人sid") |
|||
private String assignee; |
|||
@ApiModelProperty("填写意见") |
|||
private String views; |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowNodeQuery { |
|||
|
|||
@ApiModelProperty(value = "环节定义id") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "业务sid") |
|||
private String businessSid; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowNodeVo { |
|||
|
|||
@ApiModelProperty(value = "节点名称") |
|||
private String name; |
|||
@ApiModelProperty(value = "节点id") |
|||
private String id; |
|||
@ApiModelProperty(value = "审批组") |
|||
private List<String> candidateGroups; |
|||
@ApiModelProperty(value = "是否是最后环节") |
|||
private String endTask; |
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.yxt.anrui.terminal.fegin.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowTaskQuery { |
|||
|
|||
/** |
|||
* 终止、驳回、撤回 |
|||
*/ |
|||
@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") |
|||
private String instanceId; |
|||
} |
@ -0,0 +1,117 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
export default { |
|||
|
|||
// 查询分页列表
|
|||
listPage: function(params) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/listPage', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
deleteBySids: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/delBySids', |
|||
method: 'DELETE', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
|
|||
// 保存物流信息
|
|||
saveLogisticsInfo: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/v1/wmsinventoryallocatebilllogistics/saveLogisticsInfo', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
// 新增、保存
|
|||
save: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/save', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 初始化
|
|||
init: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/fetchDetailsBySid/' + data, |
|||
method: 'get' |
|||
}); |
|||
}, |
|||
|
|||
// 调拨
|
|||
allocation: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/submitApply', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
|
|||
// 查询所有商品
|
|||
getGoods: function(params) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventory/alloGoodsListPage', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 查询所有仓库
|
|||
getWarehouses: function(params) { |
|||
return request({ |
|||
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
|
|||
// 根据仓库查询库位
|
|||
getWarehouseareas: function(data) { |
|||
return request({ |
|||
url: '/wms/apiadmin/base/wmswarehousearea/selectAll', |
|||
method: 'get', |
|||
params: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
} |
@ -0,0 +1,117 @@ |
|||
import request from '@/utils/request' |
|||
|
|||
export default { |
|||
|
|||
// 查询分页列表
|
|||
listPage: function(params) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/listPage', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
deleteBySids: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/delBySids', |
|||
method: 'DELETE', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
|
|||
// 保存物流信息
|
|||
saveLogisticsInfo: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/v1/wmsinventoryallocatebilllogistics/saveLogisticsInfo', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
// 新增、保存
|
|||
save: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/save', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 初始化
|
|||
init: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/fetchDetailsBySid/' + data, |
|||
method: 'get' |
|||
}); |
|||
}, |
|||
|
|||
// 调拨
|
|||
allocation: function(data) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventoryallocatebill/submitApply', |
|||
method: 'post', |
|||
data: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
|
|||
// 查询所有商品
|
|||
getGoods: function(params) { |
|||
return request({ |
|||
// baseURL: "http://127.0.0.1:4523/m1/4061550-0-default",
|
|||
url: '/wms/apiadmin/inventory/wmsinventory/alloGoodsListPage', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
// 查询所有仓库
|
|||
getWarehouses: function(params) { |
|||
return request({ |
|||
url: '/wms/apiadmin/base/wmswarehouseinfo/listAll', |
|||
method: 'post', |
|||
data: params, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
|
|||
// 根据仓库查询库位
|
|||
getWarehouseareas: function(data) { |
|||
return request({ |
|||
url: '/wms/apiadmin/base/wmswarehousearea/selectAll', |
|||
method: 'get', |
|||
params: data, |
|||
headers: { |
|||
'Content-Type': 'application/json' |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
} |
@ -0,0 +1,691 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState == 1"> |
|||
<div class="tab-header webtop"> |
|||
<div>{{ viewTitle }}</div> |
|||
<div> |
|||
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button> |
|||
<el-button type="primary" size="small" :disabled="submitdisabled" @click="confirm()">提交</el-button> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
|
|||
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> |
|||
<!-- <div style="display: flex;flex-direction: row;align-items: center;padding: 10px;"> |
|||
|
|||
<div> |
|||
<span>调出门店:</span> |
|||
<el-select v-model="commodityQuery.params.inOrg" placeholder="请选择" @change="selectOutOrg"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
<div style="margin-left: 30px;"> |
|||
<span>调入门店:</span> |
|||
<el-select v-model="commodityQuery.params.outOrg" placeholder="请选择" @change="selectInOrg"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
|
|||
</div> --> |
|||
|
|||
<el-row class="first_row"> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请部门</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请日期</div> |
|||
<span class="addinputInfo">{{ formobj.createTime }}</span> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">调出站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.outPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<!-- <el-col :span="5"> |
|||
<div class="span-sty2"><span class="must">*</span> 调入分公司</div> |
|||
<el-form-item prop="inOrgName"> <el-select v-model="formobj.inOrgName" placeholder="请选择分公司" |
|||
@change="selectInOrg" class="addinputInfo2 addinputw2"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> --> |
|||
<el-col :span="8"> |
|||
<div class="span-sty"><span class="must">*</span> 调入站点</div> |
|||
<el-form-item prop="inPlatName"> |
|||
<el-select v-model="formobj.inPlatName" placeholder="请选择调入站" @change="selectInDeptName" |
|||
class="addinputInfo addinputw"> |
|||
<el-option v-for="(item,i) in deptList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty"><span class="must">*</span> 经办人</div> |
|||
<el-form-item prop="confirmName"> <el-select v-model="formobj.confirmName" placeholder="请选择经办人" clearable |
|||
@change="selectOperatorName" class="addinputInfo addinputw"> |
|||
<el-option v-for="(item,i) in operatorNameList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item> <el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
type="textarea" :rows="4" clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
|
|||
<div class="title titleOne"> |
|||
<div>调拨商品列表</div> |
|||
<el-button type="primary" size="mini" class="btntopblueline" @click="seleGoods()">添加</el-button> |
|||
</div> |
|||
|
|||
<el-table :data="formobj.wmsInventoryAllocateBillDetailNewList" :index="index" border style="width: 100%;" |
|||
show-summary :summary-method="getSummaries"> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> |
|||
<!-- <el-table-column align="center" width="70" :render-header="commodityHeader"> |
|||
<template slot-scope="scope"> |
|||
<i class="el-icon-delete" @click="commodityDelete(scope.$index)"></i> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="商品名称" align="center" min-width="200"> |
|||
<template slot-scope="scope"> |
|||
<el-popover placement="right" width="900" trigger="click"> |
|||
<div> |
|||
<el-table :data="commodityData" v-loading="commodityLoading" highlight-current-row |
|||
@current-change="commodityCurrentChange($event, scope.row)"> |
|||
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="count" label="库存数量" align="center" /> |
|||
</el-table> |
|||
<pagination v-show="commodityData.length > 0" :total="commodityQuery.total" |
|||
:limit.sync="commodityQuery.size" class="pagination" |
|||
@pagination="commodityInput(scope.row.goodsSpuName)" /> |
|||
</div> |
|||
<el-input slot="reference" v-model="scope.row.goodsSpuName" |
|||
@input="commodityInput(scope.row.goodsSpuName)" clearable placeholder="商品名称" /> |
|||
</el-popover> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column fixed label="操作" wid align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="primary" size="mini" @click="deleteGoods(scope.$index)">删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="goodsID" label="商品ID" width="100" align="center" /> |
|||
<el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" width="100" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseAreaName" label="库区" width="150" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="stockCount" label="库存数量" width="100" align="center" /> |
|||
<!-- <el-table-column prop="taxPrice" label="单价" width="100" align="center" /> --> |
|||
<el-table-column prop="markUpRatio" label="加价比例(%)" width="120" align="center"> |
|||
<template slot-scope="scope"> |
|||
<el-input v-model="scope.row.markUpRatio" clearable placeholder="" |
|||
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')" |
|||
@input="commodityComputeYHAndXSJE(scope.row)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<!-- <el-table-column label="调入仓库" align="center" width="200"> |
|||
<template slot-scope="scope"> |
|||
<el-select v-model="scope.row.inWarehouseName" placeholder="请选择" |
|||
@change="selectWarehouseName(scope.row,$event)"> |
|||
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="调入库位" align="center" width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-select v-model="scope.row.inWarehouseRackCode" placeholder="请选择" |
|||
@change="selectWarehouseAreaCode(scope.row,$event)"> |
|||
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column prop="requAmount" label="调拨单价" align="center" width="100" /> |
|||
<el-table-column prop="count" label="调拨数量" width="120" align="center"> |
|||
<template slot-scope="scope"> |
|||
<el-input @input="commodityComputeYHAndXSJE2(scope.row)" v-model="scope.row.count" clearable |
|||
placeholder="" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" width="100" /> |
|||
</el-table> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
<!-- 选择商品 --> |
|||
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocation.js' |
|||
import chooseproducts from './relation/chooseproducts' |
|||
import { |
|||
getCurrentDate |
|||
} from '@/utils/index.js' |
|||
import { |
|||
getServiceStationByOrgSid, |
|||
selAllByOrgSidPath, |
|||
getOrgSidByPath, |
|||
fetchBySid, |
|||
tranTwo |
|||
} from '@/api/Common/dictcommons' |
|||
export default { |
|||
components: { |
|||
chooseproducts, |
|||
}, |
|||
data() { |
|||
return { |
|||
viewTitle: '', |
|||
viewState: 1, |
|||
submitdisabled: false, |
|||
activeNames: '1', |
|||
index: 0, |
|||
formobj: { |
|||
"sid": "", |
|||
"billNo": "", |
|||
"useOrgSid": "", |
|||
"createBySid": window.sessionStorage.getItem('userSid'), |
|||
"createByName": window.sessionStorage.getItem('name'), |
|||
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"createTime": getCurrentDate(), |
|||
"outOrgName": '', |
|||
"outOrgSid": '', |
|||
"outPlatName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"outPlatSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"inOrgName": '', |
|||
"inOrgSid": '', |
|||
"inPlatName": "", |
|||
"inPlatSid": "", |
|||
"inOrgAttributeKey": "", |
|||
"inOrgAttributeValue": "", |
|||
"confirmName": "", |
|||
"confirmSid": "", |
|||
"remarks": "", |
|||
"grade": "2", |
|||
"createOrgSid": "", |
|||
"procDefId": "", |
|||
"nodeId": "", |
|||
"procInstId": "", |
|||
"nodeState": "待提交", |
|||
"taskId": "", |
|||
"wmsInventoryAllocateBillDetailNewList": [] |
|||
}, |
|||
rules: { |
|||
inOrgName: [{ |
|||
required: true, |
|||
message: '调入分公司不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
inPlatName: [{ |
|||
required: true, |
|||
message: '调入站点不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
confirmName: [{ |
|||
required: true, |
|||
message: '经办人不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
}, |
|||
orgList: [], |
|||
deptList: [], |
|||
operatorNameList: [], |
|||
warehouseList: [], |
|||
warehouseRackList: [] |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
|
|||
getOrgSidByPath({ |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath') |
|||
}).then((resp) => { |
|||
if (resp.success) { |
|||
this.formobj.createOrgSid = resp.data |
|||
this.formobj.inOrgSid = resp.data |
|||
this.formobj.outOrgSid = resp.data |
|||
fetchBySid(resp.data).then((respsone) => { |
|||
if (respsone.success) { |
|||
this.formobj.inOrgName = respsone.data.name |
|||
this.formobj.outOrgName = respsone.data.name |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
|
|||
tranTwo(window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1)).then((resp) => { |
|||
if (resp.success) { |
|||
console.log("tranTwo", resp); |
|||
this.deptList = resp.data |
|||
} |
|||
}) |
|||
|
|||
selAllByOrgSidPath({ |
|||
orgSidPath: window.sessionStorage.getItem('defaultOrgPath') |
|||
}).then((res) => { |
|||
if (res.success) { |
|||
console.log("selAllByOrgSidPath", res); |
|||
this.operatorNameList = res.data |
|||
} |
|||
}) |
|||
}, |
|||
// 合计 |
|||
getSummaries(param) { |
|||
const { |
|||
columns, |
|||
data |
|||
} = param |
|||
const sums = [] |
|||
columns.forEach((column, index) => { |
|||
if (index === 0) { |
|||
sums[index] = '合计' |
|||
return |
|||
} |
|||
const values = data.map(item => Number(item[column.property])) |
|||
if (column.property === 'count') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} else if (column.property === 'amount') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} |
|||
}) |
|||
return sums |
|||
}, |
|||
|
|||
selectInOrg(val) { |
|||
console.log("selectInOrg", val); |
|||
|
|||
const choose = this.orgList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
this.formobj.inOrgSid = choose[0].sid |
|||
this.formobj.inOrgName = choose[0].name |
|||
|
|||
getServiceStationByOrgSid(choose[0].sid).then((res) => { |
|||
if (res.success) { |
|||
this.formobj.inDeptSid = '' |
|||
this.formobj.inDeptName = '' |
|||
this.formobj.inOrgAttributeKey = '' |
|||
this.formobj.inOrgAttributeValue = '' |
|||
console.log("getListDeptByOrgSid", res); |
|||
this.deptList = res.data |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
|
|||
selectInDeptName(val) { |
|||
console.log("selectInDeptName", val); |
|||
|
|||
const choose = this.deptList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInDeptName', choose) |
|||
this.formobj.inPlatSid = choose[0].sid |
|||
this.formobj.inPlatName = choose[0].name |
|||
this.formobj.inOrgAttributeKey = choose[0].orgAttributeKey |
|||
this.formobj.inOrgAttributeValue = choose[0].orgAttributeValue |
|||
|
|||
}, |
|||
selectOperatorName(val) { |
|||
console.log("selectOperatorName", val); |
|||
const choose = this.operatorNameList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectOutOrg', choose) |
|||
this.formobj.confirmSid = choose[0].sid |
|||
this.formobj.confirmName = choose[0].name |
|||
}, |
|||
|
|||
getWarehouseAreaList(sid) { |
|||
var query = { |
|||
ckSid: sid |
|||
} |
|||
req.getWarehouseareas(query).then((res) => { |
|||
if (res.success) { |
|||
this.warehouseRackList = res.data |
|||
|
|||
console.log("aaaaaa", this.warehouseRackList); |
|||
|
|||
} |
|||
}) |
|||
}, |
|||
selectWarehouseName(row, val) { |
|||
console.log("selectWarehouseName", row); |
|||
console.log("selectWarehouseName", val); |
|||
|
|||
const choose = this.warehouseList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
row.inWarehouseSid = choose[0].sid |
|||
row.inWarehouseName = choose[0].warehouseName |
|||
row.inWarehouseRackSid = '' |
|||
row.inWarehouseRackCode = '' |
|||
|
|||
|
|||
this.getWarehouseAreaList(val) |
|||
}, |
|||
selectWarehouseAreaCode(row, val) { |
|||
console.log("selectWarehouseAreaCode", row); |
|||
console.log("selectWarehouseAreaCode", val); |
|||
|
|||
const choose = this.warehouseRackList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
row.inWarehouseRackSid = choose[0].sid |
|||
row.inWarehouseRackCode = choose[0].areaCode |
|||
|
|||
}, |
|||
showAdd() { |
|||
|
|||
this.init(), |
|||
this.viewTitle = '【新增】商品调拨申请' |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
}, |
|||
showEdit(sid) { |
|||
|
|||
this.init() |
|||
|
|||
this.viewTitle = '【修改】商品调拨申请' |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.init(sid).then((res) => { |
|||
if (res.success) { |
|||
this.formobj = res.data |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
backData(value) { |
|||
this.viewState = 1 |
|||
if (value.length > 0) { |
|||
value.forEach((e) => { |
|||
|
|||
this.formobj.wmsInventoryAllocateBillDetailNewList.push({ |
|||
"goodsSpuSid": e.goodsSpuSid, |
|||
"goodsSpuName": e.goodsSpuName, |
|||
"goodsSkuCode": e.goodsSkuCode, |
|||
"goodsSkuOwnSpec": e.goodsSkuOwnSpec, |
|||
"goodsSkuSid": e.goodsSkuSid, |
|||
"goodsSkuTitle": e.goodsSkuTitle, |
|||
"billSid": this.formobj.sid, |
|||
"inventorySid": e.inventorySid, |
|||
"warehouseSid": e.warehouseSid, |
|||
"warehouseName": e.warehouseName, |
|||
"warehouseAreaSid": e.warehouseAreaSid, |
|||
"warehouseArea": e.warehouseArea, |
|||
"warehouseRackSid": e.warehouseRackSid, |
|||
"warehouseRackCode": e.warehouseRackCode, |
|||
"taxPrice": e.taxPrice, |
|||
"stockCount": e.count, |
|||
"inWarehouseSid": '', |
|||
"inWarehouseName": '', |
|||
"inWarehouseRackSid": '', |
|||
"inWarehouseRackCode": '', |
|||
"count": 0, |
|||
"amount": 0, |
|||
"requAmount": e.taxPrice, |
|||
"markUpRatio": 0, |
|||
"unit": e.unit, |
|||
"goodsID": e.goodsID, |
|||
"manufacturerSid": e.manufacturerSid, |
|||
"manufacturerName": e.manufacturerName, |
|||
}) |
|||
}) |
|||
} |
|||
}, |
|||
deleteGoods(index) { |
|||
this.formobj.wmsInventoryAllocateBillDetailNewList.splice(index, 1) |
|||
}, |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
seleGoods() { |
|||
this.viewState = 2 |
|||
const aa = [] |
|||
this.$refs['divSp'].showData(aa, this.formobj.deptSid) |
|||
}, |
|||
|
|||
// 计算调拨单、调拨金额 |
|||
commodityComputeYHAndXSJE(row) { |
|||
console.log("commodityComputeYHAndXSJE", row); |
|||
row.requAmount = (Number(row.taxPrice) * Number(1 + Number(row.markUpRatio) / 100)).toFixed(2) |
|||
row.amount = (Number(row.count) * Number(row.requAmount)).toFixed(2) |
|||
}, |
|||
// 计算调拨金额 |
|||
commodityComputeYHAndXSJE2(row) { |
|||
|
|||
if (Number(row.stockCount) < Number(row.count)) { |
|||
row.count = Number(row.stockCount) |
|||
} else { |
|||
row.amount = (Number(row.count) * Number(row.requAmount)).toFixed(2) |
|||
} |
|||
|
|||
}, |
|||
saveOrUpdate() { |
|||
console.log("saveOrUpdate", this.formobj); |
|||
|
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
this.submitdisabled = true |
|||
req.save(this.formobj).then((res) => { |
|||
if (res.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '保存成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
this.submitdisabled = false |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
confirm() { |
|||
console.log("saveOrUpdate", this.formobj); |
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
|
|||
if (this.formobj.wmsInventoryAllocateBillDetailNewList.length == 0) { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '调拨商品不能为空' |
|||
}) |
|||
return |
|||
} |
|||
|
|||
for (var i = 0; i < this.formobj.wmsInventoryAllocateBillDetailNewList.length; i++) { |
|||
var item = this.formobj.wmsInventoryAllocateBillDetailNewList[i] |
|||
|
|||
if (Number(item.count) == 0) { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '调拨数量不能为空或0' |
|||
}) |
|||
return |
|||
} |
|||
|
|||
} |
|||
|
|||
this.submitdisabled = true |
|||
req.allocation(this.formobj).then((res) => { |
|||
if (res.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '调拨成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
this.submitdisabled = false |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
"sid": "", |
|||
"billNo": "", |
|||
"useOrgSid": "", |
|||
"createBySid": window.sessionStorage.getItem('userSid'), |
|||
"createByName": window.sessionStorage.getItem('name'), |
|||
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"createTime": getCurrentDate(), |
|||
"outOrgName": '', |
|||
"outOrgSid": '', |
|||
"outPlatName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"outPlatSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"inOrgName": '', |
|||
"inOrgSid": '', |
|||
"inPlatName": "", |
|||
"inPlatSid": "", |
|||
"inOrgAttributeKey": "", |
|||
"inOrgAttributeValue": "", |
|||
"confirmName": "", |
|||
"confirmSid": "", |
|||
"remarks": "", |
|||
"grade": "2", |
|||
"createOrgSid": "", |
|||
"procDefId": "", |
|||
"nodeId": "", |
|||
"procInstId": "", |
|||
"nodeState": "待提交", |
|||
"taskId": "", |
|||
"wmsInventoryAllocateBillDetailNewList": [] |
|||
} |
|||
this.submitdisabled = false |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
} |
|||
|
|||
.span-sty2 { |
|||
position: absolute; |
|||
top: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
line-height: 42px; |
|||
text-align: right; |
|||
font-size: 14px; |
|||
color: #606266; |
|||
font-weight: 600; |
|||
width: 70px; |
|||
padding-right: 5px; |
|||
border-right: 1px solid #e0e3eb; |
|||
width: 110px !important; |
|||
} |
|||
|
|||
.addinputInfo2 { |
|||
margin-left: 110px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw2 { |
|||
margin-left: 110px !important; |
|||
width: calc(100% - 105px); |
|||
} |
|||
|
|||
|
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,198 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="tab-header webtop"> |
|||
<div>调拨详情</div> |
|||
<div> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
|
|||
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> |
|||
|
|||
<el-row class="first_row"> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请部门</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请日期</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">调出站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.outPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="5"> |
|||
<div class="span-sty">调入站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.inOrgName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item><span style="width: 100%;">{{ formobj.inPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">经办人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.confirmName }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
|
|||
<div class="title titleOne"> |
|||
<div>调拨商品列表</div> |
|||
</div> |
|||
|
|||
<el-table :data="formobj.wmsInventoryAllocateBillDetailNewList" :index="index" border style="width: 100%;" |
|||
show-summary :summary-method="getSummaries"> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> |
|||
<el-table-column prop="goodsID" label="商品ID" align="center" /> |
|||
<el-table-column prop="goodsSpuName" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseArea" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="stockCount" label="库存数量" align="center" /> |
|||
<el-table-column prop="markUpRatio" label="加价比例" align="center" /> |
|||
<el-table-column prop="requAmount" label="调拨单价" align="center" /> |
|||
<el-table-column prop="count" label="调拨数量" align="center" /> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" width="100" /> |
|||
</el-table> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocation.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
index: 0, |
|||
formobj: {}, |
|||
} |
|||
}, |
|||
|
|||
methods: { |
|||
// 合计 |
|||
getSummaries(param) { |
|||
const { |
|||
columns, |
|||
data |
|||
} = param |
|||
const sums = [] |
|||
columns.forEach((column, index) => { |
|||
if (index === 0) { |
|||
sums[index] = '合计' |
|||
return |
|||
} |
|||
const values = data.map(item => Number(item[column.property])) |
|||
if (column.property === 'count') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} else if (column.property === 'amount') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} |
|||
}) |
|||
return sums |
|||
}, |
|||
|
|||
|
|||
showAdd(sid) { |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.init(sid).then((res) => { |
|||
if (res.success) { |
|||
this.formobj = res.data |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
|
|||
} |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
/deep/ .el-form-item__error { |
|||
margin-left: 180px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,562 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState == 1"> |
|||
<button-bar ref="btnbar" view-title="调拨列表" :btndisabled="btndisabled" @btnhandle="btnHandle" /> |
|||
<div class="main-content"> |
|||
<div class="searchcon"> |
|||
<el-button size="small" class="searchbtn" @click="clicksearchShow"> |
|||
{{ searchxianshitit }} |
|||
</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form :inline="true" class="tab-header"> |
|||
|
|||
<el-form-item label="申请部门"> |
|||
<el-input v-model="queryParams.params.deptName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="申请人"> |
|||
<el-input v-model="queryParams.params.createByName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="单据编号"> |
|||
<el-input v-model="queryParams.params.billNo" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="单据日期"> |
|||
<el-date-picker v-model="queryParams.params.createStartTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.createDateStart" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="办结日期"> |
|||
<el-date-picker v-model="queryParams.params.finishStartTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.finishEndTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="调出分公司"> |
|||
<el-input v-model="queryParams.params.outOrgName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调出站"> |
|||
<el-input v-model="queryParams.params.outPlatName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调入分公司"> |
|||
<el-input v-model="queryParams.params.inOrgName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调入站"> |
|||
<el-input v-model="queryParams.params.inPlatName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="经办人"> |
|||
<el-input v-model="queryParams.params.confirmName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button> |
|||
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- Start 项目列表头部 --> |
|||
<div class="listtop"> |
|||
<div class="tit">调拨列表</div> |
|||
</div> |
|||
<!-- End 项目列表头部 --> |
|||
<!-- Start 项目列表 --> |
|||
<div class=""> |
|||
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" |
|||
@selection-change="selectionLineChangeHandle"> |
|||
<el-table-column fixed width="50" type="selection" align="center" /> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> |
|||
<el-table-column fixed label="操作" align="center" width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="primary" size="mini" :disabled="scope.row.nodeState!='待提交'" |
|||
@click="toRelevancy(scope.row)">办理</el-button> |
|||
<el-button type="primary" size="mini" @click="toDetails(scope.row)">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="nodeState" label="流程状态" align="center" /> |
|||
<el-table-column prop="billNo" label="单据编号" align="center" /> |
|||
<el-table-column prop="createByName" label="申请人" align="center" /> |
|||
<el-table-column prop="createTime" label="申请日期" align="center" /> |
|||
<!-- <el-table-column prop="state" label="完成标志" align="center" /> --> |
|||
<!-- <el-table-column label="完成标志" align="center" width="180"> |
|||
<template slot-scope="scope"> |
|||
<span>{{scope.row.state=='1'?'未完成':'已完成'}}</span> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column prop="finishTime" label="办结日期" align="center" /> |
|||
<el-table-column prop="createOrgName" label="调出分公司" align="center" /> |
|||
<el-table-column prop="outPlatName" label="调出站" align="center" /> |
|||
<el-table-column prop="inOrgName" label="调入分公司" align="center" /> |
|||
<el-table-column prop="inPlatName" label="调入站" align="center" /> |
|||
<el-table-column prop="confirmName" label="经办人" align="center" /> |
|||
<el-table-column prop="count" label="调拨数量" align="center" /> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" /> |
|||
</el-table> |
|||
</div> |
|||
<!-- End 项目列表 --> |
|||
<div class="pages"> |
|||
<div class="tit" /> |
|||
<!-- 翻页 --> |
|||
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" |
|||
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- End 查询和其列表部分 --> |
|||
<!-- 新增修改部分组件 --> |
|||
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> |
|||
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" /> |
|||
|
|||
<el-dialog title="补充物流信息" :visible.sync="dialogVisible" :before-close="handleClose" |
|||
style="width:120%;margin-left: -10%;"> |
|||
<el-form ref="dataForm" class="formaddcopy02" style="margin-top: -40px;" :model="formobj"> |
|||
<el-row class="first_row"> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">送货方式</div> |
|||
<el-form-item> <el-select v-model="formobj.deliveryKey" placeholder="请选择送货方式" @change="selectDeliveryKey" |
|||
class="addinputInfo"> |
|||
<el-option v-for="(item,i) in deliveryKeyList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
|
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==1"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">快递单号</div> |
|||
<el-form-item><el-input v-model="formobj.expressBillNo" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">快递公司</div> |
|||
<el-form-item><el-input v-model="formobj.expressCompany" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==2"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">取货人</div> |
|||
<el-form-item><el-input v-model="formobj.pickUpName" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">取货日期</div> |
|||
<el-form-item> <el-date-picker v-model="formobj.pickUpDate" type="date" class="addinputw addinputInfo" |
|||
value-format="yyyy-MM-dd" placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==3"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">送货人</div> |
|||
<el-form-item><el-input v-model="formobj.deliveryPerson" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">送达日期</div> |
|||
<el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputw addinputInfo" |
|||
value-format="yyyy-MM-dd" placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
</el-form> |
|||
|
|||
<div style="display: flex;flex-direction: row;width: 100%;justify-content: center;align-items: center;"> |
|||
<el-button type="primary" style="margin-top: 20px;" @click="saveData">确 定</el-button> |
|||
</div> |
|||
|
|||
</el-dialog> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocationByBranches.js' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import divAdd from './allocationByBranchesAdd.vue' |
|||
import divInfo from './allocationByBranchesInfo.vue' |
|||
export default { |
|||
components: { |
|||
ButtonBar, |
|||
Pagination, |
|||
pageye, |
|||
divAdd, |
|||
divInfo |
|||
}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
btndisabled: false, |
|||
viewState: 1, // 1、列表 2、添加 3、修改 4、查看 |
|||
isSearchShow: false, |
|||
searchxianshitit: '显示查询条件', |
|||
tableLoading: false, |
|||
dataList: [], |
|||
btnList: [{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'plus', |
|||
btnKey: 'toAdd', |
|||
btnLabel: '新增' |
|||
}, |
|||
|
|||
{ |
|||
type: 'danger', |
|||
size: 'small', |
|||
icon: 'el-icon-delete', |
|||
btnKey: 'doDel', |
|||
btnLabel: '删除' |
|||
}, |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'edit', |
|||
btnKey: 'toSupplement', |
|||
btnLabel: '补充物流信息' |
|||
}, |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
queryParams: { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
"outOrgName": "", |
|||
"deptName": "", |
|||
"createByName": "", |
|||
"billNo": "", |
|||
"createStartTime": "", |
|||
"createEndTime": "", |
|||
"finishStartTime": "", |
|||
"finishEndTime": "", |
|||
"outPlatName": "", |
|||
"inOrgName": "", |
|||
"inPlatName": "", |
|||
"confirmName": "", |
|||
"grade": "2", |
|||
} |
|||
}, |
|||
sids: [], |
|||
selectionList: [], |
|||
deliveryKeyList: [{ |
|||
name: '快递', |
|||
sid: 1 |
|||
}, |
|||
{ |
|||
name: '对方自取', |
|||
sid: 2 |
|||
}, |
|||
{ |
|||
name: '我方送货', |
|||
sid: 3 |
|||
} |
|||
], |
|||
formobj: { |
|||
"sids": [], |
|||
"remarks": "", |
|||
"deliveryKey": "", |
|||
"deliveryName": "", |
|||
"expressBillNo": "", |
|||
"expressCompany": "", |
|||
"pickUpName": "", |
|||
"pickUpDate": "", |
|||
"deliveryPerson": "", |
|||
"deliveryDate": "" |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
}, |
|||
created() { |
|||
this.loadList() |
|||
}, |
|||
methods: { |
|||
// 搜索条件效果 |
|||
clicksearchShow() { |
|||
this.isSearchShow = !this.isSearchShow |
|||
if (this.isSearchShow) { |
|||
this.searchxianshitit = '隐藏查询条件' |
|||
} else { |
|||
this.searchxianshitit = '显示查询条件' |
|||
} |
|||
}, |
|||
btnHandle(btnKey) { |
|||
switch (btnKey) { |
|||
case 'toAdd': |
|||
this.toAdd() |
|||
break |
|||
case 'doDel': |
|||
this.doDel() |
|||
break |
|||
case 'toSupplement': |
|||
this.toSupplement() |
|||
break |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
loadList() { |
|||
this.tableLoading = true |
|||
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') |
|||
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') |
|||
this.queryParams.params.menuUrl = this.$route.path |
|||
req.listPage(this.queryParams).then((resp) => { |
|||
this.tableLoading = false |
|||
if (resp.success) { |
|||
const data = resp.data |
|||
this.queryParams.total = data.total |
|||
this.dataList = data.records |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
this.dataList = [] |
|||
this.queryParams.total = 0 |
|||
} |
|||
}).catch(() => { |
|||
this.tableLoading = false |
|||
}) |
|||
}, |
|||
|
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.queryParams.current - 1) * this.queryParams.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
selectTime1() { |
|||
|
|||
}, |
|||
selectTime2() { |
|||
|
|||
}, |
|||
|
|||
dosearch() { |
|||
this.queryParams.current = 1 |
|||
this.loadList() |
|||
}, |
|||
resetQuery() { |
|||
this.queryParams = { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
"outOrgName": "", |
|||
"deptName": "", |
|||
"createByName": "", |
|||
"billNo": "", |
|||
"createStartTime": "", |
|||
"createEndTime": "", |
|||
"finishStartTime": "", |
|||
"finishEndTime": "", |
|||
"outPlatName": "", |
|||
"inOrgName": "", |
|||
"inPlatName": "", |
|||
"confirmName": "", |
|||
"grade": "2", |
|||
} |
|||
} |
|||
this.loadList() |
|||
}, |
|||
toAdd() { |
|||
this.viewState = 2 |
|||
this.$refs['divadd'].showAdd() |
|||
}, |
|||
doDel() { |
|||
|
|||
if (this.sids.length > 0) { |
|||
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' |
|||
this.$confirm(tip, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}) |
|||
req.deleteBySids(this.sids).then((resp) => { |
|||
loading.close() |
|||
if (resp.success) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
loading.close() |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => { |
|||
loading.close() |
|||
}) |
|||
}).catch(() => {}) |
|||
} else { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行删除操作' |
|||
}) |
|||
} |
|||
}, |
|||
|
|||
selectionLineChangeHandle(val) { |
|||
console.log("val", val); |
|||
|
|||
this.selectionList = val |
|||
const aa = [] |
|||
val.forEach(element => { |
|||
aa.push(element.sid) |
|||
}) |
|||
this.sids = aa |
|||
}, |
|||
toRelevancy(row) { |
|||
this.viewState = 3 |
|||
this.$refs['divadd'].showEdit(row.sid) |
|||
}, |
|||
toDetails(row) { |
|||
this.viewState = 4 |
|||
this.$refs['divinfo'].showAdd(row.sid) |
|||
}, |
|||
|
|||
toSupplement() { |
|||
if (this.sids.length > 0) { |
|||
this.dialogVisible = true |
|||
|
|||
console.log("toSupplement", this.sids); |
|||
|
|||
} else { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行操作' |
|||
}) |
|||
} |
|||
}, |
|||
saveData() { |
|||
|
|||
this.formobj.sids = this.sids |
|||
|
|||
req.saveLogisticsInfo(this.formobj).then((resp) => { |
|||
if (resp.success) { |
|||
this.dialogVisible = false |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => {}) |
|||
|
|||
|
|||
}, |
|||
handleClose() { |
|||
this.dialogVisible = false |
|||
}, |
|||
selectDeliveryKey(val) { |
|||
console.log("selectDeliveryKey", val); |
|||
const choose = this.deliveryKeyList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectDeliveryKey', choose) |
|||
this.formobj.deliveryName = choose[0].name |
|||
this.formobj.deliveryKey = choose[0].sid |
|||
|
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
}, |
|||
|
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 90px !important; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 80px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 80px !important; |
|||
width: calc(100% - 70px); |
|||
} |
|||
|
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
/deep/ .el-form-item__error { |
|||
margin-left: 180px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,172 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div> |
|||
<div class="tab-header webtop"> |
|||
<div>选择商品</div> |
|||
<div> |
|||
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class=""> |
|||
<div class="searchcon"> |
|||
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header"> |
|||
<el-form-item label="商品ID" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsID" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="商品编码" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsSkuCode" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="商品名称" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsSkuTitle" placeholder="" clearable /> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button> |
|||
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">商品列表</div> |
|||
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>--> |
|||
</div> |
|||
<div class=""> |
|||
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" |
|||
@selection-change="handleSelectionChange"> |
|||
<el-table-column width="50px" type="selection" align="center" /> |
|||
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center" /> |
|||
<el-table-column prop="goodsID" label="商品ID" align="center" /> |
|||
<el-table-column prop="goodsSkuTitle" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" align="center" /> |
|||
<el-table-column prop="warehouseArea" label="库区" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="count" label="库存数量" align="center" /> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<div class="tit" /> |
|||
<!-- 翻页 --> |
|||
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" |
|||
:limit.sync="listQuery.size" class="pagination" @pagination="getList" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from '@/components/pagination' |
|||
import req from '@/api/storage/allocation.js' |
|||
export default { |
|||
name: 'SelectVehicle', |
|||
components: { |
|||
Pagination |
|||
}, |
|||
data() { |
|||
return { |
|||
isSearchShow: false, |
|||
searchxianshitit: '隐藏查询条件', |
|||
tableKey: 0, |
|||
sids: [], |
|||
list: [], |
|||
number: '', |
|||
listLoading: false, |
|||
listQuery: { |
|||
current: 1, |
|||
size: 10, |
|||
params: { |
|||
deptSid: '', |
|||
goodsID: '', |
|||
goodsSkuTitle: '', |
|||
goodsSkuCode: '', |
|||
}, |
|||
total: 0 |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
// 搜索条件效果 |
|||
clicksearchShow() { |
|||
this.isSearchShow = !this.isSearchShow |
|||
if (this.isSearchShow) { |
|||
this.searchxianshitit = '隐藏查询条件' |
|||
} else { |
|||
this.searchxianshitit = '显示查询条件' |
|||
} |
|||
}, |
|||
indexMethod(index) { |
|||
var pagestart = (this.listQuery.current - 1) * this.listQuery.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 查询列表信息 |
|||
getList() { |
|||
this.listLoading = true |
|||
req.getGoods(this.listQuery).then((response) => { |
|||
this.listLoading = false |
|||
if (response.success) { |
|||
this.listQuery.total = response.data.total |
|||
this.list = response.data.records |
|||
} |
|||
}) |
|||
}, |
|||
// 查询按钮 |
|||
handleFilter() { |
|||
this.listQuery.current = 1 |
|||
this.getList() |
|||
}, |
|||
// 重置按钮 |
|||
handleReset() { |
|||
this.listQuery.current = 1 |
|||
this.listQuery.size = 10 |
|||
this.listQuery.total = 0 |
|||
this.listQuery.params.goodsID = '' |
|||
this.listQuery.params.goodsSkuTitle = '' |
|||
this.listQuery.params.goodsSkuCode = '' |
|||
this.getList() |
|||
}, |
|||
handleSelectionChange(row) { |
|||
this.sids = row |
|||
}, |
|||
showData(value, deptSid) { |
|||
// const aa = [] |
|||
// if (value.length > 0) { |
|||
// for (var i = 0; i < value.length; i++) { |
|||
// aa.push(value[i].saleVehSid) |
|||
// } |
|||
// this.listQuery.params.saleVehSids = aa |
|||
// } else { |
|||
// this.listQuery.params.saleVehSids = [] |
|||
// }`` |
|||
this.listQuery.params.deptSid = deptSid |
|||
this.getList() |
|||
}, |
|||
// 添加修改返回 |
|||
AddUpdateReturn() { |
|||
if (this.sids.length > 0) { |
|||
this.$emit('backData', this.sids) |
|||
} else { |
|||
this.$notify({ |
|||
title: '提示', |
|||
message: '请至少选择一条记录进行操作', |
|||
type: 'error', |
|||
duration: 2000 |
|||
}) |
|||
} |
|||
}, |
|||
// 返回 |
|||
handleReturn() { |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,693 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState == 1"> |
|||
<div class="tab-header webtop"> |
|||
<div>{{ viewTitle }}</div> |
|||
<div> |
|||
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveOrUpdate()">保存</el-button> |
|||
<el-button type="primary" size="small" :disabled="submitdisabled" @click="confirm()">提交</el-button> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
|
|||
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02"> |
|||
<!-- <div style="display: flex;flex-direction: row;align-items: center;padding: 10px;"> |
|||
|
|||
<div> |
|||
<span>调出门店:</span> |
|||
<el-select v-model="commodityQuery.params.inOrg" placeholder="请选择" @change="selectOutOrg"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
<div style="margin-left: 30px;"> |
|||
<span>调入门店:</span> |
|||
<el-select v-model="commodityQuery.params.outOrg" placeholder="请选择" @change="selectInOrg"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</div> |
|||
|
|||
</div> --> |
|||
|
|||
<el-row class="first_row"> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请部门</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请日期</div> |
|||
<span class="addinputInfo">{{ formobj.createTime }}</span> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
|
|||
<el-col :span="6"> |
|||
<div class="span-sty">调出站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.outPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="5"> |
|||
<div class="span-sty2"><span class="must">*</span> 调入分公司</div> |
|||
<el-form-item prop="inOrgName"> <el-select v-model="formobj.inOrgName" placeholder="请选择分公司" |
|||
@change="selectInOrg" class="addinputInfo2 addinputw2"> |
|||
<el-option v-for="(item,i) in orgList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="5"> |
|||
<div class="span-sty2"><span class="must">*</span> 调入站点</div> |
|||
<el-form-item prop="inPlatName"> |
|||
<el-select v-model="formobj.inPlatName" placeholder="请选择调入站" @change="selectInDeptName" |
|||
class="addinputInfo addinputw"> |
|||
<el-option v-for="(item,i) in deptList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty"><span class="must">*</span> 经办人</div> |
|||
<el-form-item prop="confirmName"> <el-select v-model="formobj.confirmName" placeholder="请选择经办人" clearable |
|||
@change="selectOperatorName" class="addinputInfo addinputw"> |
|||
<el-option v-for="(item,i) in operatorNameList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item> <el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
type="textarea" :rows="4" clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
|
|||
<div class="title titleOne"> |
|||
<div>调拨商品列表</div> |
|||
<el-button type="primary" size="mini" class="btntopblueline" @click="seleGoods()">添加</el-button> |
|||
</div> |
|||
|
|||
<el-table :data="formobj.wmsInventoryAllocateBillDetailNewList" :index="index" border style="width: 100%;" |
|||
show-summary :summary-method="getSummaries"> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> |
|||
<!-- <el-table-column align="center" width="70" :render-header="commodityHeader"> |
|||
<template slot-scope="scope"> |
|||
<i class="el-icon-delete" @click="commodityDelete(scope.$index)"></i> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="商品名称" align="center" min-width="200"> |
|||
<template slot-scope="scope"> |
|||
<el-popover placement="right" width="900" trigger="click"> |
|||
<div> |
|||
<el-table :data="commodityData" v-loading="commodityLoading" highlight-current-row |
|||
@current-change="commodityCurrentChange($event, scope.row)"> |
|||
<el-table-column fixed prop="goodsSpuName" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="count" label="库存数量" align="center" /> |
|||
</el-table> |
|||
<pagination v-show="commodityData.length > 0" :total="commodityQuery.total" |
|||
:limit.sync="commodityQuery.size" class="pagination" |
|||
@pagination="commodityInput(scope.row.goodsSpuName)" /> |
|||
</div> |
|||
<el-input slot="reference" v-model="scope.row.goodsSpuName" |
|||
@input="commodityInput(scope.row.goodsSpuName)" clearable placeholder="商品名称" /> |
|||
</el-popover> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column fixed label="操作" wid align="center" width="100"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="primary" size="mini" @click="deleteGoods(scope.$index)">删除</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="goodsID" label="商品ID" width="100" align="center" /> |
|||
<el-table-column prop="goodsSpuName" label="商品名称" width="100" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" width="100" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseArea" label="库区" width="150" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="stockCount" label="库存数量" width="100" align="center" /> |
|||
<!-- <el-table-column prop="taxPrice" label="单价" width="100" align="center" /> --> |
|||
<el-table-column prop="markUpRatio" label="加价比例(%)" width="120" align="center"> |
|||
<template slot-scope="scope"> |
|||
<el-input v-model="scope.row.markUpRatio" clearable placeholder="" |
|||
oninput="value=value.replace(/^([0-9-]\d*\.?\d{0,2})?.*$/,'$1')" |
|||
@input="commodityComputeYHAndXSJE(scope.row)" /> |
|||
</template> |
|||
</el-table-column> |
|||
<!-- <el-table-column label="调入仓库" align="center" width="200"> |
|||
<template slot-scope="scope"> |
|||
<el-select v-model="scope.row.inWarehouseName" placeholder="请选择" |
|||
@change="selectWarehouseName(scope.row,$event)"> |
|||
<el-option v-for="(item,i) in warehouseList" :key="i" :label="item.warehouseName" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column label="调入库位" align="center" width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-select v-model="scope.row.inWarehouseRackCode" placeholder="请选择" |
|||
@change="selectWarehouseAreaCode(scope.row,$event)"> |
|||
<el-option v-for="(item,i) in warehouseRackList" :key="i" :label="item.areaCode" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column prop="requAmount" label="调拨单价" align="center" width="100" /> |
|||
<el-table-column prop="count" label="调拨数量" width="120" align="center"> |
|||
<template slot-scope="scope"> |
|||
<el-input @input="commodityComputeYHAndXSJE2(scope.row)" v-model="scope.row.count" clearable |
|||
placeholder="" oninput="value=value.replace(/^(0+)|[^\d]+/g,'')" /> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" width="100" /> |
|||
</el-table> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
<!-- 选择商品 --> |
|||
<chooseproducts v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" /> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocation.js' |
|||
import chooseproducts from './relation/chooseproducts' |
|||
import { |
|||
getCurrentDate |
|||
} from '@/utils/index.js' |
|||
import { |
|||
selectOrgSidList, |
|||
getOrgSidByPath, |
|||
selAllByOrgSidPath, |
|||
fetchBySid, |
|||
tranThree |
|||
} from '@/api/Common/dictcommons' |
|||
export default { |
|||
components: { |
|||
chooseproducts, |
|||
}, |
|||
data() { |
|||
return { |
|||
viewTitle: '', |
|||
viewState: 1, |
|||
submitdisabled: false, |
|||
activeNames: '1', |
|||
index: 0, |
|||
formobj: { |
|||
"sid": "", |
|||
"billNo": "", |
|||
"useOrgSid": "", |
|||
"createBySid": window.sessionStorage.getItem('userSid'), |
|||
"createByName": window.sessionStorage.getItem('name'), |
|||
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"createTime": getCurrentDate(), |
|||
"outOrgName": '', |
|||
"outOrgSid": '', |
|||
"outPlatName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"outPlatSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"inOrgName": '', |
|||
"inOrgSid": '', |
|||
"inPlatName": "", |
|||
"inPlatSid": "", |
|||
"inOrgAttributeKey": "", |
|||
"inOrgAttributeValue": "", |
|||
"confirmName": "", |
|||
"confirmSid": "", |
|||
"remarks": "", |
|||
"grade": "3", |
|||
"createOrgSid": "", |
|||
"procDefId": "", |
|||
"nodeId": "", |
|||
"procInstId": "", |
|||
"nodeState": "待提交", |
|||
"taskId": "", |
|||
"wmsInventoryAllocateBillDetailNewList": [] |
|||
}, |
|||
rules: { |
|||
inOrgName: [{ |
|||
required: true, |
|||
message: '调入分公司不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
inPlatName: [{ |
|||
required: true, |
|||
message: '调入站点不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
confirmName: [{ |
|||
required: true, |
|||
message: '经办人不能为空', |
|||
trigger: 'change' |
|||
}], |
|||
}, |
|||
orgList: [], |
|||
deptList: [], |
|||
operatorNameList: [], |
|||
warehouseList: [], |
|||
warehouseRackList: [] |
|||
} |
|||
}, |
|||
methods: { |
|||
init() { |
|||
|
|||
getOrgSidByPath({ |
|||
orgPath: window.sessionStorage.getItem('defaultOrgPath') |
|||
}).then((resp) => { |
|||
if (resp.success) { |
|||
this.formobj.createOrgSid = resp.data |
|||
this.formobj.outOrgSid = resp.data |
|||
fetchBySid(resp.data).then((respsone) => { |
|||
if (respsone.success) { |
|||
this.formobj.outOrgName = respsone.data.name |
|||
} |
|||
}) |
|||
} |
|||
}) |
|||
|
|||
selectOrgSidList().then((res) => { |
|||
if (res.success) { |
|||
console.log("selectOrgSidList", res); |
|||
this.orgList = res.data |
|||
} |
|||
}) |
|||
|
|||
selAllByOrgSidPath({ |
|||
orgSidPath: window.sessionStorage.getItem('defaultOrgPath') |
|||
}).then((res) => { |
|||
if (res.success) { |
|||
console.log("selAllByOrgSidPath", res); |
|||
this.operatorNameList = res.data |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
// 合计 |
|||
getSummaries(param) { |
|||
const { |
|||
columns, |
|||
data |
|||
} = param |
|||
const sums = [] |
|||
columns.forEach((column, index) => { |
|||
if (index === 0) { |
|||
sums[index] = '合计' |
|||
return |
|||
} |
|||
const values = data.map(item => Number(item[column.property])) |
|||
if (column.property === 'count') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} else if (column.property === 'amount') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} |
|||
}) |
|||
return sums |
|||
}, |
|||
|
|||
selectInOrg(val) { |
|||
console.log("selectInOrg", val); |
|||
|
|||
const choose = this.orgList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
this.formobj.inOrgSid = choose[0].sid |
|||
this.formobj.inOrgName = choose[0].name |
|||
|
|||
tranThree({ |
|||
sid: choose[0].sid, |
|||
deptSid: window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1) |
|||
}).then((res) => { |
|||
if (res.success) { |
|||
this.formobj.inDeptSid = '' |
|||
this.formobj.inDeptName = '' |
|||
this.formobj.inOrgAttributeKey = '' |
|||
this.formobj.inOrgAttributeValue = '' |
|||
console.log("getListDeptByOrgSid", res); |
|||
this.deptList = res.data |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
|
|||
selectInDeptName(val) { |
|||
console.log("selectInDeptName", val); |
|||
|
|||
const choose = this.deptList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInDeptName', choose) |
|||
this.formobj.inPlatSid = choose[0].sid |
|||
this.formobj.inPlatName = choose[0].name |
|||
this.formobj.inOrgAttributeKey = choose[0].orgAttributeKey |
|||
this.formobj.inOrgAttributeValue = choose[0].orgAttributeValue |
|||
|
|||
}, |
|||
selectOperatorName(val) { |
|||
console.log("selectOperatorName", val); |
|||
const choose = this.operatorNameList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectOutOrg', choose) |
|||
this.formobj.confirmSid = choose[0].sid |
|||
this.formobj.confirmName = choose[0].name |
|||
}, |
|||
|
|||
getWarehouseAreaList(sid) { |
|||
var query = { |
|||
ckSid: sid |
|||
} |
|||
req.getWarehouseareas(query).then((res) => { |
|||
if (res.success) { |
|||
this.warehouseRackList = res.data |
|||
|
|||
console.log("aaaaaa", this.warehouseRackList); |
|||
|
|||
} |
|||
}) |
|||
}, |
|||
selectWarehouseName(row, val) { |
|||
console.log("selectWarehouseName", row); |
|||
console.log("selectWarehouseName", val); |
|||
|
|||
const choose = this.warehouseList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
row.inWarehouseSid = choose[0].sid |
|||
row.inWarehouseName = choose[0].warehouseName |
|||
row.inWarehouseRackSid = '' |
|||
row.inWarehouseRackCode = '' |
|||
|
|||
|
|||
this.getWarehouseAreaList(val) |
|||
}, |
|||
selectWarehouseAreaCode(row, val) { |
|||
console.log("selectWarehouseAreaCode", row); |
|||
console.log("selectWarehouseAreaCode", val); |
|||
|
|||
const choose = this.warehouseRackList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectInOrg', choose) |
|||
row.inWarehouseRackSid = choose[0].sid |
|||
row.inWarehouseRackCode = choose[0].areaCode |
|||
|
|||
}, |
|||
showAdd() { |
|||
|
|||
this.init(), |
|||
this.viewTitle = '【新增】商品调拨申请' |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
}, |
|||
showEdit(sid) { |
|||
|
|||
this.init() |
|||
|
|||
this.viewTitle = '【修改】商品调拨申请' |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.init(sid).then((res) => { |
|||
if (res.success) { |
|||
this.formobj = res.data |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
backData(value) { |
|||
this.viewState = 1 |
|||
if (value.length > 0) { |
|||
value.forEach((e) => { |
|||
|
|||
this.formobj.wmsInventoryAllocateBillDetailNewList.push({ |
|||
"goodsSpuSid": e.goodsSpuSid, |
|||
"goodsSpuName": e.goodsSpuName, |
|||
"goodsSkuCode": e.goodsSkuCode, |
|||
"goodsSkuOwnSpec": e.goodsSkuOwnSpec, |
|||
"goodsSkuSid": e.goodsSkuSid, |
|||
"goodsSkuTitle": e.goodsSkuTitle, |
|||
"billSid": this.formobj.sid, |
|||
"inventorySid": e.inventorySid, |
|||
"warehouseSid": e.warehouseSid, |
|||
"warehouseName": e.warehouseName, |
|||
"warehouseAreaSid": e.warehouseAreaSid, |
|||
"warehouseArea": e.warehouseArea, |
|||
"warehouseRackSid": e.warehouseRackSid, |
|||
"warehouseRackCode": e.warehouseRackCode, |
|||
"taxPrice": e.taxPrice, |
|||
"stockCount": e.count, |
|||
"inWarehouseSid": '', |
|||
"inWarehouseName": '', |
|||
"inWarehouseRackSid": '', |
|||
"inWarehouseRackCode": '', |
|||
"count": 0, |
|||
"amount": 0, |
|||
"requAmount": e.taxPrice, |
|||
"markUpRatio": 0, |
|||
"unit": e.unit, |
|||
"goodsID": e.goodsID, |
|||
"manufacturerSid": e.manufacturerSid, |
|||
"manufacturerName": e.manufacturerName, |
|||
}) |
|||
}) |
|||
} |
|||
}, |
|||
deleteGoods(index) { |
|||
this.formobj.wmsInventoryAllocateBillDetailNewList.splice(index, 1) |
|||
}, |
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
seleGoods() { |
|||
this.viewState = 2 |
|||
const aa = [] |
|||
this.$refs['divSp'].showData(aa, this.formobj.deptSid) |
|||
}, |
|||
|
|||
// 计算调拨单、调拨金额 |
|||
commodityComputeYHAndXSJE(row) { |
|||
console.log("commodityComputeYHAndXSJE", row); |
|||
row.requAmount = (Number(row.taxPrice) * Number(1 + Number(row.markUpRatio) / 100)).toFixed(2) |
|||
row.amount = (Number(row.count) * Number(row.requAmount)).toFixed(2) |
|||
}, |
|||
// 计算调拨金额 |
|||
commodityComputeYHAndXSJE2(row) { |
|||
|
|||
if (Number(row.stockCount) < Number(row.count)) { |
|||
row.count = Number(row.stockCount) |
|||
} else { |
|||
row.amount = (Number(row.count) * Number(row.requAmount)).toFixed(2) |
|||
} |
|||
|
|||
}, |
|||
saveOrUpdate() { |
|||
console.log("saveOrUpdate", this.formobj); |
|||
|
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
this.submitdisabled = true |
|||
req.save(this.formobj).then((res) => { |
|||
if (res.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '保存成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
this.submitdisabled = false |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
confirm() { |
|||
console.log("saveOrUpdate", this.formobj); |
|||
this.$refs['form_obj'].validate((valid) => { |
|||
if (valid) { |
|||
|
|||
if (this.formobj.wmsInventoryAllocateBillDetailNewList.length == 0) { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '调拨商品不能为空' |
|||
}) |
|||
return |
|||
} |
|||
|
|||
for (var i = 0; i < this.formobj.wmsInventoryAllocateBillDetailNewList.length; i++) { |
|||
var item = this.formobj.wmsInventoryAllocateBillDetailNewList[i] |
|||
|
|||
if (Number(item.count) == 0) { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '调拨数量不能为空或0' |
|||
}) |
|||
return |
|||
} |
|||
|
|||
} |
|||
|
|||
this.submitdisabled = true |
|||
req.allocation(this.formobj).then((res) => { |
|||
if (res.success) { |
|||
this.$message({ |
|||
showClose: true, |
|||
type: 'success', |
|||
message: '调拨成功' |
|||
}) |
|||
this.handleReturn('true') |
|||
} else { |
|||
this.submitdisabled = false |
|||
} |
|||
}).catch(() => { |
|||
this.submitdisabled = false |
|||
}) |
|||
} |
|||
}) |
|||
}, |
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
"sid": "", |
|||
"billNo": "", |
|||
"useOrgSid": "", |
|||
"createBySid": window.sessionStorage.getItem('userSid'), |
|||
"createByName": window.sessionStorage.getItem('name'), |
|||
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"createTime": getCurrentDate(), |
|||
"outOrgName": '', |
|||
"outOrgSid": '', |
|||
"outPlatName": window.sessionStorage.getItem('defaultOrgPathName').substring(window |
|||
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1), |
|||
"outPlatSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage |
|||
.getItem('defaultOrgPath').lastIndexOf('/') + 1), |
|||
"inOrgName": '', |
|||
"inOrgSid": '', |
|||
"inPlatName": "", |
|||
"inPlatSid": "", |
|||
"inOrgAttributeKey": "", |
|||
"inOrgAttributeValue": "", |
|||
"confirmName": "", |
|||
"confirmSid": "", |
|||
"remarks": "", |
|||
"grade": "3", |
|||
"createOrgSid": "", |
|||
"procDefId": "", |
|||
"nodeId": "", |
|||
"procInstId": "", |
|||
"nodeState": "待提交", |
|||
"taskId": "", |
|||
"wmsInventoryAllocateBillDetailNewList": [] |
|||
} |
|||
this.submitdisabled = false |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
} |
|||
|
|||
.span-sty2 { |
|||
position: absolute; |
|||
top: 0; |
|||
bottom: 0; |
|||
left: 0; |
|||
line-height: 42px; |
|||
text-align: right; |
|||
font-size: 14px; |
|||
color: #606266; |
|||
font-weight: 600; |
|||
width: 70px; |
|||
padding-right: 5px; |
|||
border-right: 1px solid #e0e3eb; |
|||
width: 110px !important; |
|||
} |
|||
|
|||
.addinputInfo2 { |
|||
margin-left: 110px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw2 { |
|||
margin-left: 110px !important; |
|||
width: calc(100% - 105px); |
|||
} |
|||
|
|||
|
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,198 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div class="tab-header webtop"> |
|||
<div>调拨详情</div> |
|||
<div> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class="listconadd"> |
|||
|
|||
<el-form ref="form_obj" :model="formobj" class="formaddcopy02"> |
|||
|
|||
<el-row class="first_row"> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createByName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请部门</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.deptName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">申请日期</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.createTime }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
|
|||
<el-col :span="8"> |
|||
<div class="span-sty">调出站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.outPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="5"> |
|||
<div class="span-sty">调入站</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.inOrgName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="3"> |
|||
<el-form-item><span style="width: 100%;">{{ formobj.inPlatName }}</span></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">经办人</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.confirmName }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><span class="addinputInfo">{{ formobj.remarks }}</span></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
|
|||
<div class="title titleOne"> |
|||
<div>调拨商品列表</div> |
|||
</div> |
|||
|
|||
<el-table :data="formobj.wmsInventoryAllocateBillDetailNewList" :index="index" border style="width: 100%;" |
|||
show-summary :summary-method="getSummaries"> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="index + 1" align="center" /> |
|||
<el-table-column prop="goodsID" label="商品ID" align="center" /> |
|||
<el-table-column prop="goodsSpuName" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="型号" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseArea" label="仓库" width="150" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="stockCount" label="库存数量" align="center" /> |
|||
<el-table-column prop="markUpRatio" label="加价比例" align="center" /> |
|||
<el-table-column prop="requAmount" label="调拨单价" align="center" /> |
|||
<el-table-column prop="count" label="调拨数量" align="center" /> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" width="100" /> |
|||
</el-table> |
|||
</el-form> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocation.js' |
|||
export default { |
|||
data() { |
|||
return { |
|||
index: 0, |
|||
formobj: {}, |
|||
} |
|||
}, |
|||
|
|||
methods: { |
|||
// 合计 |
|||
getSummaries(param) { |
|||
const { |
|||
columns, |
|||
data |
|||
} = param |
|||
const sums = [] |
|||
columns.forEach((column, index) => { |
|||
if (index === 0) { |
|||
sums[index] = '合计' |
|||
return |
|||
} |
|||
const values = data.map(item => Number(item[column.property])) |
|||
if (column.property === 'count') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} else if (column.property === 'amount') { |
|||
sums[index] = values.reduce((prev, curr) => { |
|||
const value = Number(curr) |
|||
if (!isNaN(value)) { |
|||
return prev + curr |
|||
} else { |
|||
return prev |
|||
} |
|||
}, 0) |
|||
sums[index] += '' |
|||
} |
|||
}) |
|||
return sums |
|||
}, |
|||
|
|||
|
|||
showAdd(sid) { |
|||
this.$nextTick(() => { |
|||
this.$refs['form_obj'].clearValidate() |
|||
}) |
|||
req.init(sid).then((res) => { |
|||
if (res.success) { |
|||
this.formobj = res.data |
|||
} |
|||
}) |
|||
}, |
|||
|
|||
handleReturn(isreload) { |
|||
if (isreload === 'true') this.$emit('reloadlist') |
|||
this.formobj = { |
|||
|
|||
} |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 130px !important; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 120px !important; |
|||
width: calc(100% - 115px); |
|||
} |
|||
|
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
/deep/ .el-form-item__error { |
|||
margin-left: 180px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,562 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div v-show="viewState == 1"> |
|||
<button-bar ref="btnbar" view-title="调拨列表" :btndisabled="btndisabled" @btnhandle="btnHandle" /> |
|||
<div class="main-content"> |
|||
<div class="searchcon"> |
|||
<el-button size="small" class="searchbtn" @click="clicksearchShow"> |
|||
{{ searchxianshitit }} |
|||
</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form :inline="true" class="tab-header"> |
|||
|
|||
<el-form-item label="申请部门"> |
|||
<el-input v-model="queryParams.params.deptName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="申请人"> |
|||
<el-input v-model="queryParams.params.createByName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="单据编号"> |
|||
<el-input v-model="queryParams.params.billNo" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="单据日期"> |
|||
<el-date-picker v-model="queryParams.params.createStartTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.createDateStart" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="办结日期"> |
|||
<el-date-picker v-model="queryParams.params.finishStartTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
至 |
|||
<el-date-picker v-model="queryParams.params.finishEndTime" type="date" placeholder="选择日期" |
|||
format="yyyy-MM-dd" value-format="yyyy-MM-dd" style="width: 200px;"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="调出分公司"> |
|||
<el-input v-model="queryParams.params.outOrgName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调出站"> |
|||
<el-input v-model="queryParams.params.outPlatName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调入分公司"> |
|||
<el-input v-model="queryParams.params.inOrgName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="调入站"> |
|||
<el-input v-model="queryParams.params.inPlatName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="经办人"> |
|||
<el-input v-model="queryParams.params.confirmName" placeholder="" clearable /> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button type="primary" size="small" icon="el-icon-search" @click="dosearch">查询</el-button> |
|||
<el-button type="primary" size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- Start 项目列表头部 --> |
|||
<div class="listtop"> |
|||
<div class="tit">调拨列表</div> |
|||
</div> |
|||
<!-- End 项目列表头部 --> |
|||
<!-- Start 项目列表 --> |
|||
<div class=""> |
|||
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" |
|||
@selection-change="selectionLineChangeHandle"> |
|||
<el-table-column fixed width="50" type="selection" align="center" /> |
|||
<el-table-column fixed width="60" label="序号" type="index" :index="indexMethod" align="center" /> |
|||
<el-table-column fixed label="操作" align="center" width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="primary" size="mini" :disabled="scope.row.nodeState!='待提交'" |
|||
@click="toRelevancy(scope.row)">办理</el-button> |
|||
<el-button type="primary" size="mini" @click="toDetails(scope.row)">查看</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="nodeState" label="流程状态" align="center" /> |
|||
<el-table-column prop="billNo" label="单据编号" align="center" /> |
|||
<el-table-column prop="createByName" label="申请人" align="center" /> |
|||
<el-table-column prop="createTime" label="申请日期" align="center" /> |
|||
<!-- <el-table-column prop="state" label="完成标志" align="center" /> --> |
|||
<!-- <el-table-column label="完成标志" align="center" width="180"> |
|||
<template slot-scope="scope"> |
|||
<span>{{scope.row.state=='1'?'未完成':'已完成'}}</span> |
|||
</template> |
|||
</el-table-column> --> |
|||
<el-table-column prop="finishTime" label="办结日期" align="center" /> |
|||
<el-table-column prop="createOrgName" label="调出分公司" align="center" /> |
|||
<el-table-column prop="outPlatName" label="调出站" align="center" /> |
|||
<el-table-column prop="inOrgName" label="调入分公司" align="center" /> |
|||
<el-table-column prop="inPlatName" label="调入站" align="center" /> |
|||
<el-table-column prop="confirmName" label="经办人" align="center" /> |
|||
<el-table-column prop="count" label="调拨数量" align="center" /> |
|||
<el-table-column prop="amount" label="调拨金额" align="center" /> |
|||
</el-table> |
|||
</div> |
|||
<!-- End 项目列表 --> |
|||
<div class="pages"> |
|||
<div class="tit" /> |
|||
<!-- 翻页 --> |
|||
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" |
|||
:limit.sync="queryParams.size" class="pagination" @pagination="loadList" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<!-- End 查询和其列表部分 --> |
|||
<!-- 新增修改部分组件 --> |
|||
<divAdd v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList" /> |
|||
<divInfo v-show="viewState == 4" ref="divinfo" @doback="resetState" @reloadlist="loadList" /> |
|||
|
|||
<el-dialog title="补充物流信息" :visible.sync="dialogVisible" :before-close="handleClose" |
|||
style="width:120%;margin-left: -10%;"> |
|||
<el-form ref="dataForm" class="formaddcopy02" style="margin-top: -40px;" :model="formobj"> |
|||
<el-row class="first_row"> |
|||
<el-col :span="24"> |
|||
<div class="span-sty">送货方式</div> |
|||
<el-form-item> <el-select v-model="formobj.deliveryKey" placeholder="请选择送货方式" @change="selectDeliveryKey" |
|||
class="addinputInfo"> |
|||
<el-option v-for="(item,i) in deliveryKeyList" :key="i" :label="item.name" :value="item.sid"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-col> |
|||
|
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==1"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">快递单号</div> |
|||
<el-form-item><el-input v-model="formobj.expressBillNo" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">快递公司</div> |
|||
<el-form-item><el-input v-model="formobj.expressCompany" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==2"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">取货人</div> |
|||
<el-form-item><el-input v-model="formobj.pickUpName" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">取货日期</div> |
|||
<el-form-item> <el-date-picker v-model="formobj.pickUpDate" type="date" class="addinputw addinputInfo" |
|||
value-format="yyyy-MM-dd" placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
<el-row v-show="formobj.deliveryKey==3"> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">送货人</div> |
|||
<el-form-item><el-input v-model="formobj.deliveryPerson" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">送达日期</div> |
|||
<el-form-item> <el-date-picker v-model="formobj.deliveryDate" type="date" class="addinputw addinputInfo" |
|||
value-format="yyyy-MM-dd" placeholder="选择日期"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
</el-col> |
|||
<el-col :span="8"> |
|||
<div class="span-sty">备注</div> |
|||
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw addinputInfo" |
|||
clearable /></el-form-item> |
|||
</el-col> |
|||
</el-row> |
|||
|
|||
</el-form> |
|||
|
|||
<div style="display: flex;flex-direction: row;width: 100%;justify-content: center;align-items: center;"> |
|||
<el-button type="primary" style="margin-top: 20px;" @click="saveData">确 定</el-button> |
|||
</div> |
|||
|
|||
</el-dialog> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import req from '@/api/storage/allocationByGroup.js' |
|||
import ButtonBar from '@/components/ButtonBar' |
|||
import Pagination from '@/components/pagination' |
|||
import pageye from '@/components/pagination/pageye' |
|||
import divAdd from './allocationByGroupAdd.vue' |
|||
import divInfo from './allocationByGroupInfo.vue' |
|||
export default { |
|||
components: { |
|||
ButtonBar, |
|||
Pagination, |
|||
pageye, |
|||
divAdd, |
|||
divInfo |
|||
}, |
|||
data() { |
|||
return { |
|||
dialogVisible: false, |
|||
btndisabled: false, |
|||
viewState: 1, // 1、列表 2、添加 3、修改 4、查看 |
|||
isSearchShow: false, |
|||
searchxianshitit: '显示查询条件', |
|||
tableLoading: false, |
|||
dataList: [], |
|||
btnList: [{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'plus', |
|||
btnKey: 'toAdd', |
|||
btnLabel: '新增' |
|||
}, |
|||
|
|||
{ |
|||
type: 'danger', |
|||
size: 'small', |
|||
icon: 'el-icon-delete', |
|||
btnKey: 'doDel', |
|||
btnLabel: '删除' |
|||
}, |
|||
{ |
|||
type: 'primary', |
|||
size: 'small', |
|||
icon: 'edit', |
|||
btnKey: 'toSupplement', |
|||
btnLabel: '补充物流信息' |
|||
}, |
|||
{ |
|||
type: 'info', |
|||
size: 'small', |
|||
icon: 'cross', |
|||
btnKey: 'doClose', |
|||
btnLabel: '关闭' |
|||
} |
|||
], |
|||
queryParams: { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
"outOrgName": "", |
|||
"deptName": "", |
|||
"createByName": "", |
|||
"billNo": "", |
|||
"createStartTime": "", |
|||
"createEndTime": "", |
|||
"finishStartTime": "", |
|||
"finishEndTime": "", |
|||
"outPlatName": "", |
|||
"inOrgName": "", |
|||
"inPlatName": "", |
|||
"confirmName": "", |
|||
"grade": "3", |
|||
} |
|||
}, |
|||
sids: [], |
|||
selectionList: [], |
|||
deliveryKeyList: [{ |
|||
name: '快递', |
|||
sid: 1 |
|||
}, |
|||
{ |
|||
name: '对方自取', |
|||
sid: 2 |
|||
}, |
|||
{ |
|||
name: '我方送货', |
|||
sid: 3 |
|||
} |
|||
], |
|||
formobj: { |
|||
"sids": [], |
|||
"remarks": "", |
|||
"deliveryKey": "", |
|||
"deliveryName": "", |
|||
"expressBillNo": "", |
|||
"expressCompany": "", |
|||
"pickUpName": "", |
|||
"pickUpDate": "", |
|||
"deliveryPerson": "", |
|||
"deliveryDate": "" |
|||
} |
|||
} |
|||
}, |
|||
mounted() { |
|||
this.$refs['btnbar'].setButtonList(this.btnList) |
|||
}, |
|||
created() { |
|||
this.loadList() |
|||
}, |
|||
methods: { |
|||
// 搜索条件效果 |
|||
clicksearchShow() { |
|||
this.isSearchShow = !this.isSearchShow |
|||
if (this.isSearchShow) { |
|||
this.searchxianshitit = '隐藏查询条件' |
|||
} else { |
|||
this.searchxianshitit = '显示查询条件' |
|||
} |
|||
}, |
|||
btnHandle(btnKey) { |
|||
switch (btnKey) { |
|||
case 'toAdd': |
|||
this.toAdd() |
|||
break |
|||
case 'doDel': |
|||
this.doDel() |
|||
break |
|||
case 'toSupplement': |
|||
this.toSupplement() |
|||
break |
|||
case 'doClose': |
|||
this.doClose() |
|||
break |
|||
default: |
|||
break |
|||
} |
|||
}, |
|||
loadList() { |
|||
this.tableLoading = true |
|||
this.queryParams.params.userSid = window.sessionStorage.getItem('userSid') |
|||
this.queryParams.params.orgPath = window.sessionStorage.getItem('defaultOrgPath') |
|||
this.queryParams.params.menuUrl = this.$route.path |
|||
req.listPage(this.queryParams).then((resp) => { |
|||
this.tableLoading = false |
|||
if (resp.success) { |
|||
const data = resp.data |
|||
this.queryParams.total = data.total |
|||
this.dataList = data.records |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
this.dataList = [] |
|||
this.queryParams.total = 0 |
|||
} |
|||
}).catch(() => { |
|||
this.tableLoading = false |
|||
}) |
|||
}, |
|||
|
|||
// 序号 |
|||
indexMethod(index) { |
|||
var pagestart = (this.queryParams.current - 1) * this.queryParams.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
selectTime1() { |
|||
|
|||
}, |
|||
selectTime2() { |
|||
|
|||
}, |
|||
|
|||
dosearch() { |
|||
this.queryParams.current = 1 |
|||
this.loadList() |
|||
}, |
|||
resetQuery() { |
|||
this.queryParams = { |
|||
current: 1, |
|||
size: 10, |
|||
total: 0, |
|||
params: { |
|||
"outOrgName": "", |
|||
"deptName": "", |
|||
"createByName": "", |
|||
"billNo": "", |
|||
"createStartTime": "", |
|||
"createEndTime": "", |
|||
"finishStartTime": "", |
|||
"finishEndTime": "", |
|||
"outPlatName": "", |
|||
"inOrgName": "", |
|||
"inPlatName": "", |
|||
"confirmName": "", |
|||
"grade": "3", |
|||
} |
|||
} |
|||
this.loadList() |
|||
}, |
|||
toAdd() { |
|||
this.viewState = 2 |
|||
this.$refs['divadd'].showAdd() |
|||
}, |
|||
doDel() { |
|||
|
|||
if (this.sids.length > 0) { |
|||
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?' |
|||
this.$confirm(tip, '提示', { |
|||
confirmButtonText: '确定', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
const loading = this.$loading({ |
|||
lock: true, |
|||
text: 'Loading', |
|||
spinner: 'el-icon-loading', |
|||
background: 'rgba(0, 0, 0, 0.7)' |
|||
}) |
|||
req.deleteBySids(this.sids).then((resp) => { |
|||
loading.close() |
|||
if (resp.success) { |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
loading.close() |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => { |
|||
loading.close() |
|||
}) |
|||
}).catch(() => {}) |
|||
} else { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行删除操作' |
|||
}) |
|||
} |
|||
}, |
|||
|
|||
selectionLineChangeHandle(val) { |
|||
console.log("val", val); |
|||
|
|||
this.selectionList = val |
|||
const aa = [] |
|||
val.forEach(element => { |
|||
aa.push(element.sid) |
|||
}) |
|||
this.sids = aa |
|||
}, |
|||
toRelevancy(row) { |
|||
this.viewState = 3 |
|||
this.$refs['divadd'].showEdit(row.sid) |
|||
}, |
|||
toDetails(row) { |
|||
this.viewState = 4 |
|||
this.$refs['divinfo'].showAdd(row.sid) |
|||
}, |
|||
|
|||
toSupplement() { |
|||
if (this.sids.length > 0) { |
|||
this.dialogVisible = true |
|||
|
|||
console.log("toSupplement", this.sids); |
|||
|
|||
} else { |
|||
this.$message({ |
|||
type: "warning", |
|||
showClose: true, |
|||
message: '请至少选择一条记录进行操作' |
|||
}) |
|||
} |
|||
}, |
|||
saveData() { |
|||
|
|||
this.formobj.sids = this.sids |
|||
|
|||
req.saveLogisticsInfo(this.formobj).then((resp) => { |
|||
if (resp.success) { |
|||
this.dialogVisible = false |
|||
this.$message({ |
|||
type: 'success', |
|||
message: resp.msg, |
|||
showClose: true |
|||
}) |
|||
this.loadList() |
|||
} else { |
|||
// 根据resp.code进行异常情况处理 |
|||
} |
|||
}).catch(e => {}) |
|||
|
|||
|
|||
}, |
|||
handleClose() { |
|||
this.dialogVisible = false |
|||
}, |
|||
selectDeliveryKey(val) { |
|||
console.log("selectDeliveryKey", val); |
|||
const choose = this.deliveryKeyList.filter((item) => item.sid == val) |
|||
console.log('>>>>>>>>>selectDeliveryKey', choose) |
|||
this.formobj.deliveryName = choose[0].name |
|||
this.formobj.deliveryKey = choose[0].sid |
|||
|
|||
}, |
|||
doClose() { |
|||
this.$store.dispatch('tagsView/delView', this.$route) |
|||
this.$router.go(-1) |
|||
}, |
|||
|
|||
resetState() { |
|||
this.viewState = 1 |
|||
}, |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
/deep/ .el-form-item__error { |
|||
margin-left: 120px !important; |
|||
} |
|||
|
|||
.must { |
|||
color: #f00; |
|||
} |
|||
|
|||
.span-sty { |
|||
width: 90px !important; |
|||
} |
|||
|
|||
.addinputInfo { |
|||
margin-left: 80px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .addinputw { |
|||
margin-left: 80px !important; |
|||
width: calc(100% - 70px); |
|||
} |
|||
|
|||
|
|||
.first_row { |
|||
border-top: 1px solid #E0E3EB; |
|||
} |
|||
|
|||
.titleOne { |
|||
padding: 7px; |
|||
display: flex; |
|||
flex-direction: row; |
|||
justify-content: space-between; |
|||
align-items: center; |
|||
} |
|||
|
|||
/deep/ .el-form-item__error { |
|||
margin-left: 180px !important; |
|||
} |
|||
|
|||
.formaddcopy02 .el-row .el-col /deep/ .el-form-item .el-radio-group { |
|||
display: inline; |
|||
line-height: 1px; |
|||
vertical-align: middle; |
|||
} |
|||
</style> |
@ -0,0 +1,172 @@ |
|||
<template> |
|||
<div class="app-container"> |
|||
<div> |
|||
<div class="tab-header webtop"> |
|||
<div>选择商品</div> |
|||
<div> |
|||
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button> |
|||
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button> |
|||
</div> |
|||
</div> |
|||
<div class=""> |
|||
<div class="searchcon"> |
|||
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button> |
|||
<div v-show="isSearchShow" class="search"> |
|||
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header"> |
|||
<el-form-item label="商品ID" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsID" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="商品编码" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsSkuCode" placeholder="" clearable /> |
|||
</el-form-item> |
|||
<el-form-item label="商品名称" class="searchlist"> |
|||
<el-input v-model="listQuery.params.goodsSkuTitle" placeholder="" clearable /> |
|||
</el-form-item> |
|||
|
|||
</el-form> |
|||
<div class="btn" style="text-align: center;"> |
|||
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button> |
|||
<el-button type="primary" icon="el-icon-refresh" @click="handleReset" size="small">重置</el-button> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
<div class="listtop"> |
|||
<div class="tit">商品列表</div> |
|||
<!-- <pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>--> |
|||
</div> |
|||
<div class=""> |
|||
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" |
|||
@selection-change="handleSelectionChange"> |
|||
<el-table-column width="50px" type="selection" align="center" /> |
|||
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center" /> |
|||
<el-table-column prop="goodsID" label="商品ID" align="center" /> |
|||
<el-table-column prop="goodsSkuTitle" label="商品名称" align="center" /> |
|||
<el-table-column prop="goodsSkuCode" label="商品编码" align="center" /> |
|||
<el-table-column prop="goodsSkuOwnSpec" label="规格" align="center" /> |
|||
<el-table-column prop="unit" label="单位" align="center" /> |
|||
<el-table-column prop="warehouseName" label="仓库" align="center" /> |
|||
<el-table-column prop="warehouseArea" label="库区" align="center" /> |
|||
<el-table-column prop="warehouseRackCode" label="库位" align="center" /> |
|||
<el-table-column prop="count" label="库存数量" align="center" /> |
|||
</el-table> |
|||
</div> |
|||
<div class="pages"> |
|||
<div class="tit" /> |
|||
<!-- 翻页 --> |
|||
<Pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" |
|||
:limit.sync="listQuery.size" class="pagination" @pagination="getList" /> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script> |
|||
import Pagination from '@/components/pagination' |
|||
import req from '@/api/storage/allocation.js' |
|||
export default { |
|||
name: 'SelectVehicle', |
|||
components: { |
|||
Pagination |
|||
}, |
|||
data() { |
|||
return { |
|||
isSearchShow: false, |
|||
searchxianshitit: '隐藏查询条件', |
|||
tableKey: 0, |
|||
sids: [], |
|||
list: [], |
|||
number: '', |
|||
listLoading: false, |
|||
listQuery: { |
|||
current: 1, |
|||
size: 10, |
|||
params: { |
|||
deptSid: '', |
|||
goodsID: '', |
|||
goodsSkuTitle: '', |
|||
goodsSkuCode: '', |
|||
}, |
|||
total: 0 |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
// 搜索条件效果 |
|||
clicksearchShow() { |
|||
this.isSearchShow = !this.isSearchShow |
|||
if (this.isSearchShow) { |
|||
this.searchxianshitit = '隐藏查询条件' |
|||
} else { |
|||
this.searchxianshitit = '显示查询条件' |
|||
} |
|||
}, |
|||
indexMethod(index) { |
|||
var pagestart = (this.listQuery.current - 1) * this.listQuery.size |
|||
var pageindex = index + 1 + pagestart |
|||
return pageindex |
|||
}, |
|||
// 查询列表信息 |
|||
getList() { |
|||
this.listLoading = true |
|||
req.getGoods(this.listQuery).then((response) => { |
|||
this.listLoading = false |
|||
if (response.success) { |
|||
this.listQuery.total = response.data.total |
|||
this.list = response.data.records |
|||
} |
|||
}) |
|||
}, |
|||
// 查询按钮 |
|||
handleFilter() { |
|||
this.listQuery.current = 1 |
|||
this.getList() |
|||
}, |
|||
// 重置按钮 |
|||
handleReset() { |
|||
this.listQuery.current = 1 |
|||
this.listQuery.size = 10 |
|||
this.listQuery.total = 0 |
|||
this.listQuery.params.goodsID = '' |
|||
this.listQuery.params.goodsSkuTitle = '' |
|||
this.listQuery.params.goodsSkuCode = '' |
|||
this.getList() |
|||
}, |
|||
handleSelectionChange(row) { |
|||
this.sids = row |
|||
}, |
|||
showData(value, deptSid) { |
|||
// const aa = [] |
|||
// if (value.length > 0) { |
|||
// for (var i = 0; i < value.length; i++) { |
|||
// aa.push(value[i].saleVehSid) |
|||
// } |
|||
// this.listQuery.params.saleVehSids = aa |
|||
// } else { |
|||
// this.listQuery.params.saleVehSids = [] |
|||
// }`` |
|||
this.listQuery.params.deptSid = deptSid |
|||
this.getList() |
|||
}, |
|||
// 添加修改返回 |
|||
AddUpdateReturn() { |
|||
if (this.sids.length > 0) { |
|||
this.$emit('backData', this.sids) |
|||
} else { |
|||
this.$notify({ |
|||
title: '提示', |
|||
message: '请至少选择一条记录进行操作', |
|||
type: 'error', |
|||
duration: 2000 |
|||
}) |
|||
} |
|||
}, |
|||
// 返回 |
|||
handleReturn() { |
|||
this.$emit('doback') |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
<style scoped> |
|||
</style> |
@ -0,0 +1,60 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.apiadmin.inventroy; |
|||
|
|||
import com.yxt.common.core.result.ResultBean; |
|||
import com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsDetailsVo; |
|||
import com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsDto; |
|||
import com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsService; |
|||
import io.swagger.annotations.Api; |
|||
import io.swagger.annotations.ApiOperation; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
@Api(tags = "(调拨单-物流信息)") |
|||
@RestController |
|||
@RequestMapping("v1/wmsinventoryallocatebilllogistics") |
|||
public class WmsInventoryAllocateBillLogisticsRest { |
|||
|
|||
@Autowired |
|||
private WmsInventoryAllocateBillLogisticsService wmsInventoryAllocateBillLogisticsService; |
|||
|
|||
@ApiOperation("新增或修改") |
|||
@PostMapping("/saveLogisticsInfo") |
|||
public ResultBean saveLogisticsInfo(@RequestBody WmsInventoryAllocateBillLogisticsDto dto){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
wmsInventoryAllocateBillLogisticsService.saveLogisticsInfo(dto); |
|||
return rb.success(); |
|||
} |
|||
|
|||
@ApiOperation("根据SID获取一条记录") |
|||
@GetMapping("/fetchDetailsBySid/{sid}") |
|||
public ResultBean<WmsInventoryAllocateBillLogisticsDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){ |
|||
ResultBean rb = ResultBean.fireFail(); |
|||
WmsInventoryAllocateBillLogisticsDetailsVo vo = wmsInventoryAllocateBillLogisticsService.fetchDetailsVoBySid(sid); |
|||
return rb.success().setData(vo); |
|||
} |
|||
} |
@ -0,0 +1,35 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class CompleteFlowDto { |
|||
|
|||
@ApiModelProperty(value = "用户sid") |
|||
@NotBlank(message = "参数错误:userSid") |
|||
private String userSid; |
|||
@ApiModelProperty(value = "用户全路径sid") |
|||
private String orgSidPath; |
|||
@ApiModelProperty(value = "节点id") |
|||
@NotBlank(message = "参数错误:taskDefKey") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "任务id") |
|||
@NotBlank(message = "参数错误:taskId") |
|||
private String taskId; |
|||
@ApiModelProperty(value = "流程id") |
|||
@NotBlank(message = "参数错误:instanceId") |
|||
private String instanceId; |
|||
@ApiModelProperty(value = "意见") |
|||
private String comment; |
|||
@ApiModelProperty(value = "业务sid") |
|||
@NotBlank(message = "参数错误:businessSid") |
|||
private String businessSid; |
|||
} |
@ -0,0 +1,23 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowDelegateQuery { |
|||
|
|||
private String userSid; |
|||
@ApiModelProperty("流程实例id") |
|||
private String instanceId; |
|||
@ApiModelProperty("任务Id") |
|||
private String taskId; |
|||
@ApiModelProperty("审批人sid") |
|||
private String assignee; |
|||
@ApiModelProperty("填写意见") |
|||
private String views; |
|||
} |
@ -0,0 +1,18 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowNodeQuery { |
|||
|
|||
@ApiModelProperty(value = "环节定义id") |
|||
private String taskDefKey; |
|||
@ApiModelProperty(value = "业务sid") |
|||
private String businessSid; |
|||
} |
@ -0,0 +1,24 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowNodeVo { |
|||
|
|||
@ApiModelProperty(value = "节点名称") |
|||
private String name; |
|||
@ApiModelProperty(value = "节点id") |
|||
private String id; |
|||
@ApiModelProperty(value = "审批组") |
|||
private List<String> candidateGroups; |
|||
@ApiModelProperty(value = "是否是最后环节") |
|||
private String endTask; |
|||
} |
@ -0,0 +1,43 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import javax.validation.constraints.NotBlank; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class FlowTaskQuery { |
|||
|
|||
/** |
|||
* 终止、驳回、撤回 |
|||
*/ |
|||
@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") |
|||
private String instanceId; |
|||
} |
@ -0,0 +1,20 @@ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebill.flowable; |
|||
|
|||
import com.yxt.wms.biz.inventory.wmsinventoryallocatebill.WmsInventoryAllocateBillDtoNew; |
|||
import com.yxt.wms.biz.inventory.wmsinventorycheckbill.WmsInventoryCheckbillDto; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* @description: |
|||
* @author: dimengzhe |
|||
* @date: 2024/5/11 |
|||
**/ |
|||
@Data |
|||
public class SubmitFlowDto extends WmsInventoryAllocateBillDtoNew { |
|||
|
|||
@ApiModelProperty("流程实例id") |
|||
private String instanceId; |
|||
@ApiModelProperty("任务id") |
|||
private String taskId; |
|||
} |
@ -0,0 +1,72 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics; |
|||
|
|||
import com.baomidou.mybatisplus.annotation.TableName; |
|||
import com.yxt.common.core.domain.BaseEntity; |
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单物流信息) <br/> |
|||
* File: WmsInventoryAllocateBillLogistics.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogistics <br/> |
|||
* Description: (调拨单-物流信息). <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-09-06 13:44:42 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单-物流信息)", description = "(调拨单-物流信息)") |
|||
@TableName("wms_inventory_allocate_bill_logistics") |
|||
public class WmsInventoryAllocateBillLogistics extends BaseEntity { |
|||
private static final long serialVersionUID = 1L; |
|||
|
|||
@ApiModelProperty("主表sid") |
|||
private String billSid; // 主表sid
|
|||
@ApiModelProperty("送货方式key") |
|||
private String deliveryKey; // 送货方式key
|
|||
@ApiModelProperty("送货方式Value") |
|||
private String deliveryName; // 送货方式Value
|
|||
@ApiModelProperty("快递单号") |
|||
private String expressBillNo; // 快递单号
|
|||
@ApiModelProperty("快递公司") |
|||
private String expressCompany; // 快递公司
|
|||
@ApiModelProperty("取货人") |
|||
private String pickUpName; // 取货人
|
|||
@ApiModelProperty("取货日期") |
|||
private String pickUpDate; // 取货日期
|
|||
@ApiModelProperty("送货人") |
|||
private String deliveryPerson; // 送货人
|
|||
@ApiModelProperty("送货日期") |
|||
private String deliveryDate; // 送货日期
|
|||
|
|||
} |
@ -0,0 +1,71 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics; |
|||
|
|||
|
|||
import com.yxt.common.core.vo.Vo; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单物流信息) <br/> |
|||
* File: WmsInventoryAllocateBillLogisticsVo.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsVo <br/> |
|||
* Description: (调拨单-物流信息) 视图数据对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-09-06 13:44:43 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单-物流信息) 视图数据详情", description = "(调拨单-物流信息) 视图数据详情") |
|||
public class WmsInventoryAllocateBillLogisticsDetailsVo implements Vo { |
|||
|
|||
private String remarks; |
|||
@ApiModelProperty("主表sid") |
|||
private String billSid; // 主表sid
|
|||
@ApiModelProperty("送货方式key") |
|||
private String deliveryKey; // 送货方式key
|
|||
@ApiModelProperty("送货方式Value") |
|||
private String deliveryName; // 送货方式Value
|
|||
@ApiModelProperty("快递单号") |
|||
private String expressBillNo; // 快递单号
|
|||
@ApiModelProperty("快递公司") |
|||
private String expressCompany; // 快递公司
|
|||
@ApiModelProperty("取货人") |
|||
private String pickUpName; // 取货人
|
|||
@ApiModelProperty("取货日期") |
|||
private String pickUpDate; // 取货日期
|
|||
@ApiModelProperty("送货人") |
|||
private String deliveryPerson; // 送货人
|
|||
@ApiModelProperty("送货日期") |
|||
private String deliveryDate; // 送货日期
|
|||
} |
@ -0,0 +1,75 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics; |
|||
|
|||
|
|||
import com.yxt.common.core.dto.Dto; |
|||
|
|||
import io.swagger.annotations.ApiModel; |
|||
import io.swagger.annotations.ApiModelProperty; |
|||
import lombok.Data; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* Project: yxt-wms(调拨单物流信息) <br/> |
|||
* File: WmsInventoryAllocateBillLogisticsDto.java <br/> |
|||
* Class: com.yxt.wms.api.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsDto <br/> |
|||
* Description: (调拨单-物流信息) 数据传输对象. <br/> |
|||
* Copyright: Copyright (c) 2011 <br/> |
|||
* Company: https://gitee.com/liuzp315 <br/>
|
|||
* Makedate: 2024-09-06 13:44:43 <br/> |
|||
* |
|||
* @author liupopo |
|||
* @version 1.0 |
|||
* @since 1.0 |
|||
*/ |
|||
@Data |
|||
@ApiModel(value = "(调拨单-物流信息) 数据传输对象", description = "(调拨单-物流信息) 数据传输对象") |
|||
public class WmsInventoryAllocateBillLogisticsDto implements Dto { |
|||
|
|||
private String remarks; |
|||
@ApiModelProperty("主表sid") |
|||
private String billSid; // 主表sid
|
|||
@ApiModelProperty("送货方式key") |
|||
private String deliveryKey; // 送货方式key
|
|||
@ApiModelProperty("送货方式Value") |
|||
private String deliveryName; // 送货方式Value
|
|||
@ApiModelProperty("快递单号") |
|||
private String expressBillNo; // 快递单号
|
|||
@ApiModelProperty("快递公司") |
|||
private String expressCompany; // 快递公司
|
|||
@ApiModelProperty("取货人") |
|||
private String pickUpName; // 取货人
|
|||
@ApiModelProperty("取货日期") |
|||
private String pickUpDate; // 取货日期
|
|||
@ApiModelProperty("送货人") |
|||
private String deliveryPerson; // 送货人
|
|||
@ApiModelProperty("送货日期") |
|||
private String deliveryDate; // 送货日期
|
|||
|
|||
private List<String> sids; |
|||
} |
@ -0,0 +1,42 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics; |
|||
|
|||
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; |
|||
|
|||
@Mapper |
|||
public interface WmsInventoryAllocateBillLogisticsMapper extends BaseMapper<WmsInventoryAllocateBillLogistics> { |
|||
|
|||
@Delete("delete from wms_inventory_allocate_bill_logistics where billSid = #{sid}") |
|||
void delByBillSid(String sid); |
|||
} |
@ -0,0 +1,6 @@ |
|||
<?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.wms.biz.inventory.wmsinventoryallocatebilllogistics.WmsInventoryAllocateBillLogisticsMapper"> |
|||
<!-- <where> ${ew.sqlSegment} </where>--> |
|||
<!-- ${ew.customSqlSegment} --> |
|||
</mapper> |
@ -0,0 +1,60 @@ |
|||
/********************************************************* |
|||
********************************************************* |
|||
******************** ******************* |
|||
************* ************ |
|||
******* _oo0oo_ ******* |
|||
*** o8888888o *** |
|||
* 88" . "88 * |
|||
* (| -_- |) * |
|||
* 0\ = /0 * |
|||
* ___/`---'\___ * |
|||
* .' \\| |// '. *
|
|||
* / \\||| : |||// \ *
|
|||
* / _||||| -:- |||||- \ * |
|||
* | | \\\ - /// | | *
|
|||
* | \_| ''\---/'' |_/ | * |
|||
* \ .-\__ '-' ___/-. / * |
|||
* ___'. .' /--.--\ `. .'___ * |
|||
* ."" '< `.___\_<|>_/___.' >' "". * |
|||
* | | : `- \`.;`\ _ /`;.`/ - ` : | | * |
|||
* \ \ `_. \_ __\ /__ _/ .-` / / * |
|||
* =====`-.____`.___ \_____/___.-`___.-'===== * |
|||
* `=---=' * |
|||
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * |
|||
*********__佛祖保佑__永无BUG__验收通过__钞票多多__********* |
|||
*********************************************************/ |
|||
package com.yxt.wms.biz.inventory.wmsinventoryallocatebilllogistics; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import com.yxt.common.base.service.MybatisBaseService; |
|||
|
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
@Service |
|||
public class WmsInventoryAllocateBillLogisticsService extends MybatisBaseService<WmsInventoryAllocateBillLogisticsMapper, WmsInventoryAllocateBillLogistics> { |
|||
|
|||
public void insertByDto(WmsInventoryAllocateBillLogisticsDto dto){ |
|||
WmsInventoryAllocateBillLogistics entity = new WmsInventoryAllocateBillLogistics(); |
|||
BeanUtil.copyProperties(dto, entity, "id", "sid"); |
|||
baseMapper.insert(entity); |
|||
} |
|||
|
|||
public WmsInventoryAllocateBillLogisticsDetailsVo fetchDetailsVoBySid(String sid){ |
|||
WmsInventoryAllocateBillLogistics entity = fetchBySid(sid); |
|||
WmsInventoryAllocateBillLogisticsDetailsVo vo = new WmsInventoryAllocateBillLogisticsDetailsVo(); |
|||
BeanUtil.copyProperties(entity, vo); |
|||
return vo; |
|||
} |
|||
|
|||
public void saveLogisticsInfo(WmsInventoryAllocateBillLogisticsDto dto) { |
|||
List<String> sids = dto.getSids(); |
|||
for (String sid : sids) { |
|||
baseMapper.delByBillSid(sid); |
|||
dto.setBillSid(sid); |
|||
insertByDto(dto); |
|||
} |
|||
} |
|||
} |
Loading…
Reference in new issue