Browse Source

采购退库审批同意、驳回、终止、撤回及完善编辑回显和新增保存字段

master
dimengzhe 3 years ago
parent
commit
41acd9b21c
  1. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleReturnVo.java
  2. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  3. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  4. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  5. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsVo.java
  6. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeign.java
  7. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeignFallback.java
  8. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java
  9. 35
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDetailsVo.java
  10. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java
  11. 27
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java
  12. 53
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowDto.java
  13. 28
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowQuery.java
  14. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnQuery.java
  15. 3
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java
  16. 24
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailssVo.java
  17. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesRest.java
  18. 10
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesService.java
  19. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java
  20. 9
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml
  21. 30
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java
  22. 179
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java
  23. 3
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java
  24. 6
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml
  25. 5
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleReturnVo.java

@ -16,7 +16,7 @@ public class BaseVehicleReturnVo implements Vo {
@ApiModelProperty(value = "品牌")
private String brandName;
@ApiModelProperty(value = "车型")
private String modelName;
private String vehicleAlias;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "颜色")
@ -26,5 +26,10 @@ public class BaseVehicleReturnVo implements Vo {
@ApiModelProperty(value = "销售指导价")
private String guidedPrice;
@ApiModelProperty(value = "常用配置")
private String configName;
@ApiModelProperty(value = "入库日期")
private String priceDate;
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -567,11 +567,13 @@
<!--车架号-->
bv.vinNo,
<!--颜色-->
bmc.carColor,
bmc.carColor color,
<!--存放地点-->
bv.location,
<!--销售指导价-->
bv.guidedPrice
bv.guidedPrice,
bmc.configName,
DATE_FORMAT(bv.priceDate, '%Y-%m-%d') as priceDate
FROM base_vehicle bv
LEFT JOIN base_vehicle_model bvm ON bv.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bv.modelConfigSid = bmc.`sid`

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -15,6 +15,7 @@ public enum ProcDefEnum {
ARREARSCARRYVEHICLE("欠款提车审批流程","arrears_carryvehicle:1:232589"),
VEHICLEAPPLY("排产申请流程","process_9egcg169:1:242660"),
RECORDAPPLICATION("入账申请","record_application_7y80d4r8:1:265008"),
SCMVEHICLERETURN("采购退库", "process_lcgh2q0g:4:235004"),
;
ProcDefEnum(String proDefName, String proDefId) {

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -740,8 +740,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
public ResultBean<FlowTask> businessComplete(BusinessVariables dto) {
ResultBean<FlowTask> rb = new ResultBean<>();
Map<String, Object> formVariables = dto.getFormVariables();
formVariables.put("handleUrl", dto.getHandleUrl());
formVariables.put("detailUrl", dto.getDetailUrl());
// formVariables.put("handleUrl", dto.getHandleUrl());
// formVariables.put("detailUrl", dto.getDetailUrl());
Object taskId_obj = formVariables.get("taskId");
String taskId = null;
if (taskId_obj == null) {

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsVo.java

@ -21,7 +21,7 @@ public class ScmVehicleActualDetailsVo implements Vo {
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private Date inboundDate;
private String inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeign.java

@ -37,8 +37,7 @@ public interface ScmVehicleActualSalesFeign {
@ApiOperation("初始化")
@GetMapping("/details")
@ResponseBody
ResultBean<ScmVehicleActualSalesDetailsVo> details(@RequestParam(value = "sid") String sid,
@RequestParam(value = "name") String name);
ResultBean<ScmVehicleActualSalesDetailsVo> details(@RequestParam(value = "sid", required = false) String sid);
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeignFallback.java

@ -28,7 +28,7 @@ public class ScmVehicleActualSalesFeignFallback implements ScmVehicleActualSales
}
@Override
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid, String name) {
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid) {
return null;
}
}

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturn.java

@ -4,6 +4,8 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author dimengzhe
* @Date 2022/4/6 16:12
@ -18,6 +20,9 @@ public class ScmVehicleReturn extends BaseEntity {
private String applicationName;
@ApiModelProperty(value = "退库原因")
private String reason;
@ApiModelProperty(value = "费用")
private BigDecimal money;
@ApiModelProperty(value = "节点状态")
private String nodeState;
}

35
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDetailsVo.java

@ -0,0 +1,35 @@
package com.yxt.anrui.scm.api.scmvehiclereturn;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/13 11:18
* @Description
*/
@Data
public class ScmVehicleReturnDetailsVo implements Vo {
private static final long serialVersionUID = -5246040124624468517L;
@ApiModelProperty(value = "申请编号")
private String applicationCode;
@ApiModelProperty(value = "申请人")
private String name;
@ApiModelProperty(value = "申请日期")
private String createTime;
@ApiModelProperty(value = "退库原因")
private String reason;
@ApiModelProperty(value = "费用")
@JsonSerialize(using = ToStringSerializer.class)
private String money;
@ApiModelProperty(value = "车辆列表")
private List<ScmVehicleReturnDetailssVo> voList = new ArrayList<>();
}

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java

@ -19,6 +19,8 @@ public class ScmVehicleReturnDto implements Dto {
private static final long serialVersionUID = -276598777097000627L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "申请编号")
private String applicationCode;
@ApiModelProperty(value = "申请人sid", required = true)
private String userSid;
@ApiModelProperty(value = "申请人", required = true)
@ -28,6 +30,8 @@ public class ScmVehicleReturnDto implements Dto {
private Date createTime;
@ApiModelProperty(value = "退库原因", required = true)
private String reason;
@ApiModelProperty(value = "费用")
private String money;
@ApiModelProperty(value = "车辆列表")
private List<ScmVehicleReturnDetailsDto> detailsList;
}

27
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFeign.java

@ -5,9 +5,7 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.*;
/**
* @Author dimengzhe
@ -31,8 +29,31 @@ public interface ScmVehicleReturnFeign {
@ResponseBody
ResultBean saveOrUpdate(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto);
@ApiOperation("初始化回显")
@GetMapping("/details")
@ResponseBody
ResultBean<ScmVehicleReturnDetailsVo> details(@RequestParam(value = "sid", required = false) String sid);
@ApiOperation("提交")
@PostMapping("/submitVehicleReturn")
@ResponseBody
ResultBean submitVehicleReturn(@RequestBody ScmVehicleReturnDto scmVehicleReturnDto);
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@RequestBody ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery);
@ApiOperation(value = "驳回任务")
@PostMapping("/reject")
ResultBean reject(@RequestBody ScmVehicleReturnFlowDto dto);
@ApiOperation(value = "终止任务")
@PostMapping("/breakProcess")
ResultBean breakProcess(@RequestBody ScmVehicleReturnFlowDto dto);
@ApiOperation(value = "撤回任务")
@PostMapping("/revokeProcess")
ResultBean revokeProcess(@RequestBody ScmVehicleReturnFlowDto dto);
}

53
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowDto.java

@ -0,0 +1,53 @@
package com.yxt.anrui.scm.api.scmvehiclereturn;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @Author dimengzhe
* @Date 2022/4/13 10:48
* @Description
*/
@Data
public class ScmVehicleReturnFlowDto implements Serializable {
private static final long serialVersionUID = -1771287589587315324L;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("用户Id")
private String userId;
@ApiModelProperty("用户Sid")
private String userSid;
@ApiModelProperty("任务意见")
private String comment;
@ApiModelProperty("流程实例Id")
private String instanceId;
@ApiModelProperty("节点")
private String targetKey;
@ApiModelProperty("流程变量信息")
private Map<String, Object> values = new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers = new ArrayList<>();
@ApiModelProperty("审批组")
private List<String> candidateGroups = new ArrayList<>();
}

28
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnFlowQuery.java

@ -0,0 +1,28 @@
package com.yxt.anrui.scm.api.scmvehiclereturn;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/12 22:18
* @Description
*/
@Data
public class ScmVehicleReturnFlowQuery implements Query {
private static final long serialVersionUID = -3164237568589023489L;
@ApiModelProperty(value = "处理意见")
private String comment;
@ApiModelProperty(value = "流程id")
private String instanceId;
@ApiModelProperty(value = "环节id")
private String taskId;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnQuery.java

@ -18,5 +18,8 @@ public class ScmVehicleReturnQuery implements Query {
@ApiModelProperty(value = "结束日期")
private String applyDateEnd;
@ApiModelProperty(value = "节点状态")
private String nodeState;
}

3
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnVo.java

@ -28,7 +28,4 @@ public class ScmVehicleReturnVo implements Vo {
@ApiModelProperty(value = "台数")
private Integer num;
@ApiModelProperty(value = "流程状态")
private Integer flowState;
}

24
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturndetails/ScmVehicleReturnDetailssVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.scm.api.scmvehiclereturndetails;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/13 11:31
* @Description
*/
@Data
public class ScmVehicleReturnDetailssVo implements Vo {
private static final long serialVersionUID = 5418774062719853985L;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "常用配置")
private String configName;
@ApiModelProperty(value = "入库日期")
private String inboundDate;
}

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesRest.java

@ -40,7 +40,7 @@ public class ScmVehicleActualSalesRest implements ScmVehicleActualSalesFeign {
}
@Override
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid, String name) {
return scmVehicleActualSalesService.details(sid, name);
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid) {
return scmVehicleActualSalesService.details(sid);
}
}

10
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesService.java

@ -158,15 +158,17 @@ public class ScmVehicleActualSalesService extends MybatisBaseService<ScmVehicleA
* @param sid 未售买断sid
* @return
*/
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid, String name) {
public ResultBean<ScmVehicleActualSalesDetailsVo> details(String sid) {
ResultBean<ScmVehicleActualSalesDetailsVo> rb = ResultBean.fireFail();
ScmVehicleActualSales scmVehicleActualSales = fetchBySid(sid);
ScmVehicleActualSalesDetailsVo vo = new ScmVehicleActualSalesDetailsVo();
if (scmVehicleActualSales == null) {
if (StringUtils.isBlank(sid)) {
//申请日期即为当天
vo.setCreateTime(DateUtil.today());
vo.setApplicationName(name);
} else {
ScmVehicleActualSales scmVehicleActualSales = fetchBySid(sid);
if (scmVehicleActualSales == null) {
return rb.setMsg("该未售买断数据不存在");
}
vo = baseMapper.details(sid);
List<ScmVehicleActualDetailsVo> voList = scmVehicleActualDetailsService.detailsList(sid);
}

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDetailsVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -29,4 +30,5 @@ public interface ScmVehicleReturnMapper extends BaseMapper<ScmVehicleReturn> {
@Param("procInstSid") String procInstSid, @Param("nodeSid") String nodeSid);
ScmVehicleReturnDetailsVo details(String sid);
}

9
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml

@ -5,8 +5,9 @@
select sr.sid,
sr.applicationCode,
sr.applicationName,
sr.modifyTime,
DATE_FORMAT(sr.createTime, '%Y-%m-%d') as createTime,
sr.reason,
sr.nodeState,
(select count(*) from scm_vehicle_return_details sd where sd.vehicleOutSid = sr.sid) as num
from scm_vehicle_return sr
${ew.customSqlSegment}
@ -20,4 +21,10 @@
nodeSid=#{nodeSid}
where sid = #{businessSid}
</update>
<select id="details" resultType="com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDetailsVo">
select sid, DATE_FORMAT(createTime, '%Y-%m-%d') as createTime, reason, applicationName as name, money
from scm_vehicle_return
where sid = #{sid}
</select>
</mapper>

30
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java

@ -1,9 +1,6 @@
package com.yxt.anrui.scm.biz.scmvehiclereturn;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnFeign;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnQuery;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -37,8 +34,33 @@ public class ScmVehicleReturnRest implements ScmVehicleReturnFeign {
return scmVehicleReturnService.saveOrUpdateVehicleReturn(scmVehicleReturnDto);
}
@Override
public ResultBean<ScmVehicleReturnDetailsVo> details(String sid) {
return scmVehicleReturnService.details(sid);
}
@Override
public ResultBean submitVehicleReturn(ScmVehicleReturnDto scmVehicleReturnDto) {
return scmVehicleReturnService.submitVehicleReturn(scmVehicleReturnDto);
}
@Override
public ResultBean complete(ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery) {
return scmVehicleReturnService.complete(scmVehicleReturnFlowQuery);
}
@Override
public ResultBean reject(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.reject(dto);
}
@Override
public ResultBean breakProcess(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.breakProcess(dto);
}
@Override
public ResultBean revokeProcess(ScmVehicleReturnFlowDto dto) {
return scmVehicleReturnService.revokeProcess(dto);
}
}

179
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

@ -1,18 +1,26 @@
package com.yxt.anrui.scm.biz.scmvehiclereturn;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTask;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFlowStateEnum;
import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.api.utils.ProcessStateEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturn;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnQuery;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.*;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo;
import com.yxt.anrui.scm.biz.scmvehiclereturndetails.ScmVehicleReturnDetailsService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -25,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@ -47,6 +56,8 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
/**
* 采购退库新增编辑
@ -61,7 +72,11 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
if (StringUtils.isBlank(sid)) {
//新增
ScmVehicleReturn scmVehicleReturn = new ScmVehicleReturn();
BeanUtils.copyProperties(scmVehicleReturnDto, scmVehicleReturn, scmVehicleReturn.getSid());
BeanUtils.copyProperties(scmVehicleReturnDto, scmVehicleReturn, "sid");
String money = scmVehicleReturnDto.getMoney();
BigDecimal mo = new BigDecimal(money);
scmVehicleReturn.setMoney(mo);
scmVehicleReturn.setApplicationName(scmVehicleReturnDto.getName());
boolean isSave = save(scmVehicleReturn);
if (!isSave) {
return rb.setMsg("保存失败");
@ -77,7 +92,16 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
int i = updateBySid(scmVehicleReturnDto, sid);
ScmVehicleReturn scmVehicleReturn = fetchBySid(sid);
if (scmVehicleReturn == null) {
return rb.setMsg("该申请不存在");
}
BeanUtil.copyProperties(scmVehicleReturnDto, scmVehicleReturn, "id", "sid");
String money = scmVehicleReturnDto.getMoney();
BigDecimal mo = new BigDecimal(money);
scmVehicleReturn.setMoney(mo);
scmVehicleReturn.setApplicationName(scmVehicleReturnDto.getName());
baseMapper.updateById(scmVehicleReturn);
//查询details中是否有关于return的该条sid数据
List<ScmVehicleReturnDetails> scmVehicleReturnDetailsList = scmVehicleReturnDetailsService.selectByReturnSid(sid);
if (scmVehicleReturnDetailsList.size() > 0) {
@ -119,9 +143,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysFormStateVo formState = resultBean.getData();
voList.get(i).setNodeState(formState.getNodeState());
voList.get(i).setFlowState(formState.getFlowState());
} else {
voList.get(i).setFlowState(0);
}
}
}
@ -138,7 +159,14 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
QueryWrapper<ScmVehicleReturnVo> qw = new QueryWrapper<>();
if (params != null) {
//申请日期
//状态
qw.apply(StringUtils.isNotBlank(params.getApplyDateStart()), "date_format (sr.createTime,'%Y-%m-%d') >= date_format('" + params.getApplyDateStart() + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(params.getApplyDateEnd()), "date_format (sr.createTime,'%Y-%m-%d') <= date_format('" + params.getApplyDateEnd() + "','%Y-%m-%d')"
);
//状态:模糊查询
if(StringUtils.isNotBlank(params.getNodeState())){
qw.like("sr.nodeState", params.getNodeState());
}
}
return qw;
}
@ -153,12 +181,12 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
variables.put("businessSid", businessSid);
variables.put("isLoan", true);
variables.put("orgSid", orgSid);//部门sid
ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.ORDERDEPOSITAPPROVE.getProDefId(), scmVehicleReturnDto.getUserSid(), variables);
if (resultBean.getSuccess() && resultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) resultBean.getData();
ResultBean businessResultBean = flowableFeign.businessStart(ProcDefEnum.SCMVEHICLERETURN.getProDefId(), scmVehicleReturnDto.getUserSid(), variables);
if (businessResultBean.getSuccess() && businessResultBean.getData() != null) {
Map<String, String> map = (Map<String, String>) businessResultBean.getData();
//更新退库业务表中的流程状态
modifyFlowState(businessSid,
ProcDefEnum.ORDERDEPOSITAPPROVE.getProDefId(),//procDefId
ProcDefEnum.SCMVEHICLERETURN.getProDefId(),//procDefId
map.get("nodeState"),//state
map.get("procInsId"),//procInstSid
map.get("taskDefKey")//nodeSid
@ -196,4 +224,127 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
procInsId,//procInstSid
taskDefKey);
}
/**
* 办理流程
*
* @param scmVehicleReturnFlowQuery 查询条件
* @return
*/
public ResultBean complete(ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery) {
ResultBean rb = ResultBean.fireFail();
//查询对象转换为map集合
Map<String, Object> variables = Convert.toMap(String.class, Object.class, scmVehicleReturnFlowQuery);
BusinessVariables bv = BusinessVariables.builder().build();
bv.setFormVariables(variables);
ResultBean<FlowTask> resultBean = flowTaskFeign.businessComplete(bv);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = "";
String taskDefKey = "";
Map<String, Object> map = new HashMap<>();
map.put("businessSid", variables.get("businessSid").toString());
if (resultBean.getData() != null) {
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(resultBean.getData().getProcInsId());
if (listResultBean.getSuccess() && listResultBean.getData() != null && listResultBean.getData().size() != 0) {
nodeState = listResultBean.getData().get(0).getName_();
taskDefKey = listResultBean.getData().get(0).getTask_def_key_();
} else {
nodeState = ProcessStateEnum.FINISHED.getStateName();
taskDefKey = "Event_end";
map.put("flowState", SysFormLinkFlowStateEnum.FINISH.getCode());
}
}
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
/**
* 驳回任务
*
* @param dto
* @return
*/
public ResultBean reject(ScmVehicleReturnFlowDto dto) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String incomingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> map = new HashMap<>();
map.put("businessSid", dto.getBusinessSid());
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
if (incomingSourceRef.contains("start")) {
map.put("flowState", SysFormLinkFlowStateEnum.REJECT.getCode());
}
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
public ResultBean breakProcess(ScmVehicleReturnFlowDto dto) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean resultBean = flowTaskFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return resultBean;
}
Map<String, Object> map = new HashMap<>();
map.put("businessSid", dto.getBusinessSid());
map.put("nodeState", String.valueOf(resultBean.getData()));
map.put("taskDefKey", "Event_end");
map.put("flowState", SysFormLinkFlowStateEnum.BREAK.getCode());
sysFormLinkFeign.updateFiled(map);
return resultBean.success();
}
public ResultBean revokeProcess(ScmVehicleReturnFlowDto dto) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(dto, flowTaskVo);
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return resultBean;
}
String nodeState = resultBean.getData().get(0).getName_();
String taskDefKey = resultBean.getData().get(0).getTask_def_key_();
String inComingSourceRef = resultBean.getData().get(0).getIncomingSourceRef();
Map<String, Object> map = new HashMap<>();
map.put("businessSid", dto.getBusinessSid());
if (inComingSourceRef.contains("start")) {
map.put("nodeState", SysFormLinkFlowStateEnum.UNCOMMITTED.getState());
map.put("taskDefKey", taskDefKey);
map.put("flowState", SysFormLinkFlowStateEnum.UNCOMMITTED.getCode());
} else {
map.put("nodeState", nodeState);
map.put("taskDefKey", taskDefKey);
}
sysFormLinkFeign.updateFiled(map);
return new ResultBean().success();
}
public ResultBean<ScmVehicleReturnDetailsVo> details(String sid) {
ResultBean<ScmVehicleReturnDetailsVo> rb = ResultBean.fireFail();
ScmVehicleReturnDetailsVo vo = new ScmVehicleReturnDetailsVo();
if (StringUtils.isBlank(sid)) {
//申请日期即为当天
vo.setCreateTime(DateUtil.today());
vo.setApplicationCode("CGTK" + DateUtil.format(DateUtil.date(), "yyyyMMdd"));
} else {
ScmVehicleReturn ScmVehicleReturn = fetchBySid(sid);
if (ScmVehicleReturn == null) {
return rb.setMsg("该采购退库申请不存在");
}
vo = baseMapper.details(sid);
List<ScmVehicleReturnDetailssVo> voList = scmVehicleReturnDetailsService.detailsList(sid);
vo.setVoList(voList);
}
return rb.success().setData(vo);
}
}

3
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.java

@ -2,6 +2,7 @@ package com.yxt.anrui.scm.biz.scmvehiclereturndetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -30,4 +31,6 @@ public interface ScmVehicleReturnDetailsMapper extends BaseMapper<ScmVehicleRetu
int deleteByReturnSid(String sid);
List<String> selectVinNoList(String sid);
List<ScmVehicleReturnDetailssVo> detailsList(String sid);
}

6
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsMapper.xml

@ -18,4 +18,10 @@
from scm_vehicle_return_details
where vehicleOutSid = #{sid}
</select>
<select id="detailsList" resultType="com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo">
select sid, vinNo, modelName, DATE_FORMAT(inboundDate, '%Y-%m-%d') as inboundDate, configName
from scm_vehicle_return_details
where vehicleOutSid = #{sid}
</select>
</mapper>

5
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturndetails/ScmVehicleReturnDetailsService.java

@ -2,6 +2,7 @@ package com.yxt.anrui.scm.biz.scmvehiclereturndetails;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetails;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailssVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.BeanUtils;
@ -61,4 +62,8 @@ public class ScmVehicleReturnDetailsService extends MybatisBaseService<ScmVehicl
List<String> vinNoList = baseMapper.selectVinNoList(sid);
return rb.success().setData(vinNoList);
}
public List<ScmVehicleReturnDetailssVo> detailsList(String sid) {
return baseMapper.detailsList(sid);
}
}

Loading…
Cancel
Save