diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java index 32430cf41f..1d01f7a5dc 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleRebateQuery.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -40,6 +41,12 @@ public class BaseVehicleRebateQuery implements Query { private String vehicleAlias; @ApiModelProperty(value = "快捷检索车型") private String modelName; + @ApiModelProperty("销售日期") + private String salesDateStart; + private String salesDateEnd; + @ApiModelProperty("买断日期") + private String solidDateStart; + private String solidDateEnd; @ApiModelProperty(value = "已选择的车辆的车架号") private List vinNoList = new ArrayList<>(); diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java index a18ec6d1ac..b1f085b389 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java @@ -3281,6 +3281,9 @@ public class BaseVehicleService extends MybatisBaseService vehicleRebateList(PagerQuery pagerQuery) { IPage page = vehicleRebatePageList(pagerQuery); + for (BaseVehicleRebateVo record : page.getRecords()) { + record.setVinNo(record.getVinNo().substring(record.getVinNo().length() - 8)); + } PagerVo pv = new PagerVo<>(); PagerVo pv1 = PagerUtil.pageToVo(page, pv); return pv1; @@ -3410,6 +3413,12 @@ public class BaseVehicleService extends MybatisBaseService= date_format('" + params.getSalesDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(params.getSalesDateEnd()), "date_format (bv.salesDate,'%Y-%m-%d') <= date_format('" + params.getSalesDateEnd() + "','%Y-%m-%d')" + ); + qw.apply(StringUtils.isNotBlank(params.getSolidDateStart()), "date_format (bv.solidDate,'%Y-%m-%d') >= date_format('" + params.getSolidDateStart() + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(params.getSolidDateEnd()), "date_format (bv.solidDate,'%Y-%m-%d') <= date_format('" + params.getSolidDateEnd() + "','%Y-%m-%d')" + ); //快捷检索车型 if (StringUtils.isNotBlank(params.getModelName())) { qw.like("bvm.modelName", params.getModelName()); diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelInfo.java new file mode 100644 index 0000000000..9b5491cdfa --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelInfo.java @@ -0,0 +1,31 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/28 + **/ +@Data +public class OneExcelInfo { + + //创建日期 + private String createTime; + //返利名称 + private String rebateName; + //返利类型 + private String rebateTypeValue; + //预提返利 + private String estimateRebate; + //上传日期 + private String uploadDate; + //上传金额 + private String uploadMoney; + //待确定金额 + private String stayDetermineMoney; + //费用 + private String money; + //调整说明 + private String adjustmentRemarks; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelVo.java new file mode 100644 index 0000000000..fd2a6d695f --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelVo.java @@ -0,0 +1,49 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/28 + **/ +@Data +public class OneExcelVo { + + //创建日期 + @ExportEntityMap(CnName = "创建日期", EnName = "createTime") + private String createTime; + + //返利名称 + @ExportEntityMap(CnName = "返利名称", EnName = "rebateName") + private String rebateName; + + //返利类型 + @ExportEntityMap(CnName = "返利类型", EnName = "rebateTypeValue") + private String rebateTypeValue; + + //预提返利 + @ExportEntityMap(CnName = "预提返利", EnName = "estimateRebate") + private String estimateRebate; + + //上传日期 + @ExportEntityMap(CnName = "上传日期", EnName = "uploadDate") + private String uploadDate; + + //上传金额 + @ExportEntityMap(CnName = "上传金额", EnName = "uploadMoney") + private String uploadMoney; + + //待确定金额 + @ExportEntityMap(CnName = "待确定金额", EnName = "stayDetermineMoney") + private String stayDetermineMoney; + + //费用 + @ExportEntityMap(CnName = "费用", EnName = "money") + private String money; + + //调整说明 + @ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks") + private String adjustmentRemarks; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java index d8f4a27b8a..1af24b289a 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java @@ -32,20 +32,12 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.ParseException; -/** - * Project: anrui-scm(专项返利管理)
- * File: ScmSpecialRebateFeign.java
- * Class: com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateFeign
- * Description: 专项返利表.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-09-08 16:11:43
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "专项返利表") @FeignClient( contextId = "anrui-scm-ScmSpecialRebate", @@ -98,4 +90,23 @@ public interface ScmSpecialRebateFeign { @PostMapping("/stayDisRebate") @ResponseBody public ResultBean> stayDisRebate(@RequestBody PagerQuery pq); + + @ApiOperation("一次导出") + @PostMapping("/excelListOne") + public void excelListOne(@RequestBody ScmSpecialRebateQuery scmSpecialRebateQuery); + + @ApiOperation(value = "一次导入") + @PostMapping("/getExcelOneInfo") + @ResponseBody + public ResultBean getExcelOneInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam("userSid") String userSid) throws IOException, ParseException; + + @ApiOperation("二次导出") + @PostMapping("/excelListTwo") + public void excelListTwo(@RequestBody ScmSpecialRebateQuery scmSpecialRebateQuery); + + @ApiOperation(value = "二次导入") + @PostMapping("/getExcelTwoInfo") + @ResponseBody + public ResultBean getExcelTwoInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid) throws IOException, ParseException; + } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java index 007f7ca771..fca7158adf 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java @@ -29,6 +29,11 @@ import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Component; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.text.ParseException; /** * Project: anrui-scm(专项返利管理)
@@ -92,4 +97,24 @@ public class ScmSpecialRebateFeignFallback implements ScmSpecialRebateFeign { public ResultBean> stayDisRebate(PagerQuery pq) { return null; } + + @Override + public void excelListOne(ScmSpecialRebateQuery scmSpecialRebateQuery) { + + } + + @Override + public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException, ParseException { + return null; + } + + @Override + public void excelListTwo(ScmSpecialRebateQuery scmSpecialRebateQuery) { + + } + + @Override + public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException, ParseException { + return null; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java index c2df3b9276..ad1b8cda93 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java @@ -68,6 +68,9 @@ public class ScmSpecialRebateQuery implements Query { @ApiModelProperty("专项返利sid") private List sidList; // 专项返利sid + @ApiModelProperty("页面分配数量(0查询分配数量大于0的 1查询所有)") + private String isPage; + private String userSid; private String orgPath; private String menuUrl; diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java index 8a1b0a2c1b..545800e987 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java @@ -74,8 +74,7 @@ public class ScmSpecialRebateVo implements Vo { @ApiModelProperty("预计返利") private String estimateRebate; // 预计返利 @ApiModelProperty("预提日期") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - private Date withholdingDate; // 预提日期 + private String withholdingDate; // 预提日期 @ApiModelProperty("预提日期(页面展示)") private String withholdingDateCopy; // 预提日期(页面展示) @ApiModelProperty("上传日期") diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateOneExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateOneExcelInfo.java new file mode 100644 index 0000000000..06203232c9 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateOneExcelInfo.java @@ -0,0 +1,12 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class SpecialRebateOneExcelInfo { + private String checkInfo; + private List infos = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateTwoExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateTwoExcelInfo.java new file mode 100644 index 0000000000..15d844512a --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateTwoExcelInfo.java @@ -0,0 +1,13 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import com.yxt.anrui.scm.api.scmspecialrebate.TwoExcelInfo; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +@Data +public class SpecialRebateTwoExcelInfo { + private String checkInfo; + private List infos = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelInfo.java new file mode 100644 index 0000000000..6fc8c6ee1d --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelInfo.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/28 + **/ +@Data +public class TwoExcelInfo { + + //创建日期 + private String createTime; + //返利名称 + private String rebateName; + //返利类型 + private String rebateTypeValue; + //预提返利 + private String estimateRebate; + //上传日期 + private String uploadDate; + //上传金额 + private String uploadMoney; + //待确定金额 + private String stayDetermineMoney; + //二次上传日期 + private String secondaryUploadDate; + //二次上传金额 + private String secondaryUploadMoney; + //费用 + private String money; + //调整说明 + private String adjustmentRemarks; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelVo.java new file mode 100644 index 0000000000..53574753a8 --- /dev/null +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelVo.java @@ -0,0 +1,56 @@ +package com.yxt.anrui.scm.api.scmspecialrebate; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/4/28 + **/ +@Data +public class TwoExcelVo { + + @ExportEntityMap(CnName = "创建日期", EnName = "createTime") + private String createTime; + + //返利名称 + @ExportEntityMap(CnName = "返利名称", EnName = "rebateName") + private String rebateName; + + //返利类型 + @ExportEntityMap(CnName = "返利类型", EnName = "rebateTypeValue") + private String rebateTypeValue; + + //预提返利 + @ExportEntityMap(CnName = "预提返利", EnName = "estimateRebate") + private String estimateRebate; + + //上传日期 + @ExportEntityMap(CnName = "上传日期", EnName = "uploadDate") + private String uploadDate; + + //上传金额 + @ExportEntityMap(CnName = "上传金额", EnName = "uploadMoney") + private String uploadMoney; + + //待确定金额 + @ExportEntityMap(CnName = "待确定金额", EnName = "stayDetermineMoney") + private String stayDetermineMoney; + + //二次上传日期 + @ExportEntityMap(CnName = "二次上传日期", EnName = "secondaryUploadDate") + private String secondaryUploadDate; + + //二次上传金额 + @ExportEntityMap(CnName = "二次上传金额", EnName = "secondaryUploadMoney") + private String secondaryUploadMoney; + + //费用 + @ExportEntityMap(CnName = "费用", EnName = "money") + private String money; + + //调整说明 + @ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks") + private String adjustmentRemarks; +} diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java index 168978aa7d..69963598ab 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java @@ -71,6 +71,8 @@ public class ScmVehRebateQuery implements Query { private String createOrgSid; @ApiModelProperty("单车返利sid") private List sidList; + @ApiModelProperty("调整状态") + private String adjustmentState; private String userSid; private String orgPath; diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java index 3260c8f72f..88f99fbb5c 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java @@ -91,8 +91,6 @@ public class ScmVehRebateVo implements Vo { private String palceGenDateCopy; // 所属年月(页面展示) @ApiModelProperty("预提日期") private String withholdingDate; // 预提日期 - @ApiModelProperty("预提日期(页面展示)") - private String withholdingDateCopy; // 预提日期(页面展示) @ApiModelProperty("上传日期") private String uploadDate; // 上传日期 @ApiModelProperty("上传金额") diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java index dd67c9401b..372ff253d0 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java @@ -1,5 +1,6 @@ package com.yxt.anrui.scm.api.scmvehrebate; +import com.yxt.anrui.scm.api.scmvehrebate.TwoExcelInfo; import lombok.Data; import java.util.ArrayList; diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailDetailsVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailDetailsVo.java index d4b29c633e..3fc7120767 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailDetailsVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailDetailsVo.java @@ -59,8 +59,6 @@ public class ScmVehrebateCheckapplydetailDetailsVo implements Vo { private String palceGenDateCopy; // 所属年月(页面展示) @ApiModelProperty("预提日期") private String withholdingDate; // 预提日期 - @ApiModelProperty("预提日期(页面展示)") - private String withholdingDateCopy; // 预提日期(页面展示) @ApiModelProperty("返利类型key") private String rebateTypeKey; // 返利类型key @ApiModelProperty("返利类型value") diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewith/ScmVehRebateWithDetailsVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewith/ScmVehRebateWithDetailsVo.java index 9b79d652e3..f7196e5f0d 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewith/ScmVehRebateWithDetailsVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewith/ScmVehRebateWithDetailsVo.java @@ -32,6 +32,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.List; /** @@ -56,7 +57,7 @@ public class ScmVehRebateWithDetailsVo implements Vo { @ApiModelProperty("备注") private String remarks; // 备注 @ApiModelProperty("预提返利") - private String withRebate; // 预提返利 + private BigDecimal withRebate; // 预提返利 @ApiModelProperty("台数") private String num; // 台数 @ApiModelProperty("单车返利sid") diff --git a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyVo.java b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyVo.java index 69334686d0..52432291c9 100644 --- a/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyVo.java +++ b/anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebatewithapply/ScmVehRebateWithApplyVo.java @@ -33,6 +33,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; import java.util.Date; /** @@ -64,7 +65,7 @@ public class ScmVehRebateWithApplyVo implements Vo { @ApiModelProperty("预提申请") private String withApply; // 预提申请 @ApiModelProperty("预提返利合计") - private String withRebateTotal; // 预提返利合计 + private BigDecimal withRebateTotal; // 预提返利合计 @ApiModelProperty("创建人姓名") private String createByName; // 创建人姓名 @ApiModelProperty("使用组织sid") diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java index 5d4602c08d..9392377a4f 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java @@ -30,12 +30,10 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; -import com.yxt.anrui.scm.api.scmspecialrebate.ScmStayDisRebateVo; +import com.yxt.anrui.scm.api.scmspecialrebate.*; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; -import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebate; -import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo; import org.apache.ibatis.annotations.Update; import java.util.List; @@ -73,4 +71,14 @@ public interface ScmSpecialRebateMapper extends BaseMapper { void updateWithholdingDateBySid(String sid); IPage stayDisRebate(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); + + ScmSpecialRebateVo selectExcelInfo(@Param("createTime") String createTime,@Param("rebateName") String rebateName,@Param("rebateTypeValue") String rebateTypeValue,@Param("estimateRebate") String estimateRebate); + + void updateOneExcelInfo(@Param("uploadDate") String uploadDate,@Param("uploadMoney") String uploadMoney,@Param("stayDetermineMoney") String stayDetermineMoney,@Param("money") String money,@Param("adjustmentRemarks") String adjustmentRemarks,@Param("sid") String sid); + + void updateTwoExcelInfo(@Param("secondaryUploadDate") String secondaryUploadDate,@Param("secondaryUploadMoney") String secondaryUploadMoney,@Param("money") String money,@Param("adjustmentRemarks") String adjustmentRemarks,@Param("sid") String sid); + + List excelListOne(@Param(Constants.WRAPPER) QueryWrapper qw); + + List excelListTwo(@Param(Constants.WRAPPER) QueryWrapper qw); } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml index 60676aba46..95aee9366f 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml @@ -28,7 +28,7 @@ ssr.rebateTypeKey, ssr.rebateTypeValue, ssr.estimateRebate, - ssr.uploadMoney + ssr.uploadMoney + ssr.secondaryUploadMoney as uploadMoney FROM scm_specialrebate_checkapplydetail sscad LEFT JOIN scm_special_rebate ssr ON sscad.`specialRebateSid` = ssr.`sid` @@ -38,4 +38,55 @@ ${ew.sqlSegment} + + + + + UPDATE + scm_special_rebate + SET + uploadDate = #{uploadDate}, + uploadMoney = #{uploadMoney}, + stayDetermineMoney = #{stayDetermineMoney}, + money = #{money}, + adjustmentRemarks = #{adjustmentRemarks} + WHERE sid = #{sid} + + + + UPDATE + scm_special_rebate + SET + secondaryUploadDate = #{secondaryUploadDate}, + secondaryUploadMoney = #{secondaryUploadMoney}, + money = #{money}, + adjustmentRemarks = #{adjustmentRemarks} + WHERE sid = #{sid} + + + + + \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java index 144c7dfb33..176a23134f 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java @@ -27,10 +27,9 @@ package com.yxt.anrui.scm.biz.scmspecialrebate; import com.yxt.anrui.scm.api.scmspecialrebate.*; import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApply; -import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyVo; -import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebate; import com.yxt.anrui.scm.biz.scmspecialrebatewith.ScmSpecialRebateWithService; import com.yxt.anrui.scm.biz.scmspecialrebatewithapply.ScmSpecialRebateWithApplyService; +import com.yxt.common.base.utils.ExportExcelUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -38,114 +37,150 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.text.ParseException; import java.util.List; -/** - * Project: anrui-scm(专项返利管理)
- * File: ScmSpecialRebateFeignFallback.java
- * Class: com.yxt.anrui.scm.biz.scmspecialrebate.ScmSpecialRebateRest
- * Description: 专项返利表.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-09-08 16:11:43
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Api(tags = "专项返利表") -@RestController("com.yxt.anrui.scm.biz.scmspecialrebate.ScmSpecialRebateRest") +@RestController @RequestMapping("v1/scmspecialrebate") public class ScmSpecialRebateRest implements ScmSpecialRebateFeign { - @Autowired - private ScmSpecialRebateService scmSpecialRebateService; - @Autowired - private ScmSpecialRebateWithService scmSpecialRebateWithService; - @Autowired - private ScmSpecialRebateWithApplyService scmSpecialRebateWithApplyService; - - @Override - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = scmSpecialRebateService.listPageVo(pq); - return rb.success().setData(pv); - } - - @Override - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody ScmSpecialRebateDto dto){ - ResultBean rb = ResultBean.fireFail(); - scmSpecialRebateService.saveOrUpdateDto(dto); - return rb.success(); - } - - @Override - public ResultBean adjustment(ScmSpecialRebateSpecialAdjDto dto) { - return scmSpecialRebateService.adjustment(dto); - } - - @Override - @ApiOperation("根据sid批量删除") + @Autowired + private ScmSpecialRebateService scmSpecialRebateService; + @Autowired + private ScmSpecialRebateWithService scmSpecialRebateWithService; + @Autowired + private ScmSpecialRebateWithApplyService scmSpecialRebateWithApplyService; + @Autowired + HttpServletResponse response; + + @Override + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmSpecialRebateService.listPageVo(pq); + return rb.success().setData(pv); + } + + @Override + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody ScmSpecialRebateDto dto) { + ResultBean rb = ResultBean.fireFail(); + scmSpecialRebateService.saveOrUpdateDto(dto); + return rb.success(); + } + + @Override + public ResultBean adjustment(ScmSpecialRebateSpecialAdjDto dto) { + return scmSpecialRebateService.adjustment(dto); + } + + @Override + @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - for (String sid : sids) { - List stringList = scmSpecialRebateWithService.fetchBySpecialReBateSid(sid); - for (String s : stringList) { - ScmSpecialRebateWithApply scmSpecialRebateWithApply = scmSpecialRebateWithApplyService.fetchBySid(s); - if (!scmSpecialRebateWithApply.getNodeState().equals("待提交")){ - return rb.setMsg("所选数据中包含已提交专项返利信息,无法删除"); - } - } - ScmSpecialRebate scmSpecialRebate = scmSpecialRebateService.fetchBySid(sid); - Integer state = scmSpecialRebate.getState(); - if (state == 1){ - return rb.setMsg("所选数据中包含已预提专项返利信息,无法删除"); - } - } - scmSpecialRebateService.delBySids(sids); - return rb.success(); - } - - @Override - @ApiOperation("根据SID获取一条记录") + public ResultBean delBySids(@RequestBody String[] sids) { + ResultBean rb = ResultBean.fireFail(); + for (String sid : sids) { + List stringList = scmSpecialRebateWithService.fetchBySpecialReBateSid(sid); + for (String s : stringList) { + ScmSpecialRebateWithApply scmSpecialRebateWithApply = scmSpecialRebateWithApplyService.fetchBySid(s); + if (!scmSpecialRebateWithApply.getNodeState().equals("待提交")) { + return rb.setMsg("所选数据中包含已提交专项返利信息,无法删除"); + } + } + ScmSpecialRebate scmSpecialRebate = scmSpecialRebateService.fetchBySid(sid); + Integer state = scmSpecialRebate.getState(); + if (state == 1) { + return rb.setMsg("所选数据中包含已预提专项返利信息,无法删除"); + } + } + scmSpecialRebateService.delBySids(sids); + return rb.success(); + } + + @Override + @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - ScmSpecialRebateDetailsVo vo = scmSpecialRebateService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } - - @Override - public ResultBean> withApplyGetSpecialRebate(PagerQuery pq) { - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = scmSpecialRebateService.withApplyGetSpecialRebate(pq); - return rb.success().setData(pv); - } - - @Override - public ResultBean> checkApplyGetSpecialRebate(PagerQuery pq) { - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = scmSpecialRebateService.checkApplyGetSpecialRebate(pq); - return rb.success().setData(pv); - } - - @Override - public ResultBean> checkApplyGetAlreadyUploadSpecialRebate(PagerQuery pq) { - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = scmSpecialRebateService.checkApplyGetAlreadyUploadSpecialRebate(pq); - return rb.success().setData(pv); - } - - @Override - public ResultBean> stayDisRebate(PagerQuery pq) { - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = scmSpecialRebateService.stayDisRebate(pq); - return rb.success().setData(pv); - } + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid) { + ResultBean rb = ResultBean.fireFail(); + ScmSpecialRebateDetailsVo vo = scmSpecialRebateService.fetchDetailsVoBySid(sid); + return rb.success().setData(vo); + } + + @Override + public ResultBean> withApplyGetSpecialRebate(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmSpecialRebateService.withApplyGetSpecialRebate(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> checkApplyGetSpecialRebate(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmSpecialRebateService.checkApplyGetSpecialRebate(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> checkApplyGetAlreadyUploadSpecialRebate(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmSpecialRebateService.checkApplyGetAlreadyUploadSpecialRebate(pq); + return rb.success().setData(pv); + } + + @Override + public ResultBean> stayDisRebate(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = scmSpecialRebateService.stayDisRebate(pq); + return rb.success().setData(pv); + } + + @Override + public void excelListOne(ScmSpecialRebateQuery scmSpecialRebateQuery) { + //得到所有要导出的数据 + List exportVoList = scmSpecialRebateService.excelListOne(scmSpecialRebateQuery); + //定义导出的excel名字 + String excelName = "一次导出"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, OneExcelVo.class, response); + } + + @Override + public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException, ParseException { + return scmSpecialRebateService.getExcelOneInfo(file, request, userSid); + } + + @Override + public void excelListTwo(ScmSpecialRebateQuery scmSpecialRebateQuery) { + //得到所有要导出的数据 + List exportVoList = scmSpecialRebateService.excelListTwo(scmSpecialRebateQuery); + //定义导出的excel名字 + String excelName = "二次导出"; + String fileNameURL = ""; + try { + fileNameURL = URLEncoder.encode(excelName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); + } + ExportExcelUtils.export(fileNameURL, exportVoList, TwoExcelVo.class, response); + } + + @Override + public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException, ParseException { + return scmSpecialRebateService.getExcelTwoInfo(file, request, userSid); + } } diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java index 6f7bca6c0a..de0cfa58f9 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java @@ -29,10 +29,12 @@ import cn.hutool.core.bean.BeanUtil; 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.portal.api.dictcommon.DictCommonFeign; import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery; import com.yxt.anrui.portal.api.sysuser.SysUserFeign; -import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.ScmCollectionrebateCheckapplyVo; import com.yxt.anrui.scm.api.scmspecialrebate.*; +import com.yxt.anrui.scm.api.scmspecialrebate.OneExcelInfo; +import com.yxt.anrui.scm.api.scmspecialrebate.TwoExcelInfo; import com.yxt.anrui.scm.biz.scmspecialrebatevehs.ScmSpecialrebateVehsService; import com.yxt.common.core.result.ResultBean; import org.apache.commons.lang3.StringUtils; @@ -41,26 +43,25 @@ import com.yxt.common.base.utils.PagerUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.vo.PagerVo; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.usermodel.Sheet; +import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.regex.Pattern; -/** - * Project: anrui-scm(专项返利管理)
- * File: ScmSpecialRebateService.java
- * Class: com.yxt.anrui.scm.biz.scmspecialrebate.ScmSpecialRebateService
- * Description: 专项返利表 业务逻辑.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2022-09-08 16:11:43
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ @Service public class ScmSpecialRebateService extends MybatisBaseService { @@ -68,13 +69,10 @@ public class ScmSpecialRebateService extends MybatisBaseService createQueryWrapper(ScmSpecialRebateQuery query) { - // todo: 这里根据具体业务调整查询条件 - // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); - QueryWrapper qw = new QueryWrapper<>(); - return qw; - } + @Autowired + HttpServletResponse response; + @Autowired + private DictCommonFeign dictCommonFeign; public PagerVo listPageVo(PagerQuery pq) { ScmSpecialRebateQuery query = pq.getParams(); @@ -367,18 +365,21 @@ public class ScmSpecialRebateService extends MybatisBaseService= date_format('" + createStartTime + "','%Y-%m-%d')"). apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" ); - qw.eq("state", 3); + qw.eq("adjustmentState", 1); + qw.isNotNull("uploadDate"); if (query.getSidList().size() > 0) { qw.notIn("sid", query.getSidList()); } IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); for (ScmSpecialRebateVo record : pagging.getRecords()) { - Date withholdingDate = record.getWithholdingDate(); - int year = DateUtil.year(withholdingDate); - int month = DateUtil.month(withholdingDate) + 1; - String withholdingDateCopy = year + "年" + month + "月"; - record.setWithholdingDateCopy(withholdingDateCopy); + if (StringUtils.isNotBlank(record.getWithholdingDate())){ + Date withholdingDate = DateUtil.parseDate(record.getWithholdingDate()); + int year = DateUtil.year(withholdingDate); + int month = DateUtil.month(withholdingDate) + 1; + String withholdingDateCopy = year + "年" + month + "月"; + record.setWithholdingDateCopy(withholdingDateCopy); + } } PagerVo p = PagerUtil.pageToVo(pagging, null); return p; @@ -460,7 +461,7 @@ public class ScmSpecialRebateService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.stayDisRebate(page, qw); - List records = pagging.getRecords(); - for (ScmStayDisRebateVo record : records) { - String sid = record.getSid(); - int disVehCount = scmSpecialrebateVehsService.getDisVehCount(sid); - record.setDisNum(String.valueOf(disVehCount)); + Iterator iterator = pagging.getRecords().iterator(); + while (iterator.hasNext()) { + ScmStayDisRebateVo record = iterator.next(); + int disVehCount = scmSpecialrebateVehsService.getDisVehCount(record.getSid()); + if ("0".equals(query.getIsPage()) && disVehCount == 0){ + iterator.remove(); + continue; + }else { + record.setDisNum(String.valueOf(disVehCount)); + } } PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } + + public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException { + ResultBean rb = ResultBean.fireFail(); + String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 + File tempFile = new File(temp); + if (!tempFile.exists()) { + tempFile.mkdirs(); + } + String fileName = file.getOriginalFilename(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + return rb.fail().setMsg("上传文件不正确"); + } + + int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8}; + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = file.getInputStream(); + Workbook wb = null; + if (isExcel2003) { + wb = new HSSFWorkbook(is); + } else { + wb = new XSSFWorkbook(is); + } + Sheet sheet = wb.getSheetAt(0); + SpecialRebateOneExcelInfo importReturn = getSheetValOne(sheet, resultCell, userSid); + if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { + return rb.setMsg(importReturn.getCheckInfo()); + } else { + List infos = importReturn.getInfos(); + for (OneExcelInfo info : infos) { + ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(info.getCreateTime(), info.getRebateName(), info.getRebateTypeValue(), info.getEstimateRebate()); + Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000)); + String uploadDate = DateUtil.formatDate(javaDate); + baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getMoney(), info.getAdjustmentRemarks(), scmSpecialRebateVo.getSid()); + } + return rb.success().setMsg("成功导入数据,请点击确定按钮"); + } + } + + private SpecialRebateOneExcelInfo getSheetValOne(Sheet sheet, int[] resultCell, String userSid) { + SpecialRebateOneExcelInfo importReturn = new SpecialRebateOneExcelInfo(); + List importVoList = new ArrayList<>(); + Set checkWord = new HashSet<>(); + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + OneExcelInfo importVo = new OneExcelInfo(); + int physicalNumberOfCells = row.getPhysicalNumberOfCells(); + if (physicalNumberOfCells < 8) { + physicalNumberOfCells = 8; + } + for (int i = 0; i < physicalNumberOfCells; i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + if (StringUtils.isBlank(trim)) { + NullPointerException nullPointerException = new NullPointerException(); + } + String temp = getCellVal(row.getCell(i)).toString().trim(); + for (int j = 0; j < resultCell.length; j++) { + if (i == resultCell[j]) { + switch (i) { + case 0: + importVo.setCreateTime(temp); + break; + case 1: + importVo.setRebateName(temp); + break; + case 2: + importVo.setRebateTypeValue(temp); + break; + case 3: + importVo.setEstimateRebate(temp); + break; + case 4: + importVo.setUploadDate(temp); + break; + case 5: + importVo.setUploadMoney(temp); + break; + case 6: + importVo.setStayDetermineMoney(temp); + break; + case 7: + importVo.setMoney(temp); + break; + case 8: + importVo.setAdjustmentRemarks(temp); + break; + default: + break; + } + } else { + continue; + } + } + } catch (Exception e) { + if (StringUtils.isBlank(trim)) { + String word = new String(); + switch (i) { + case 0: + word = "创建日期"; + break; + case 1: + word = "返利名称"; + break; + case 2: + word = "返利类型"; + break; + case 3: + word = "预提返利"; + break; + case 4: + word = "上传日期"; + break; + case 5: + word = "上传金额"; + break; + case 6: + word = "待确定金额"; + break; + case 7: + word = "费用"; + break; + case 8: + word = "调整说明"; + break; + default: + break; + } + continue; + } + } + } + importVoList.add(importVo); + } + if (!importVoList.isEmpty()) { + for (OneExcelInfo excelInfo : importVoList) { + ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(excelInfo.getCreateTime(), excelInfo.getRebateName(), excelInfo.getRebateTypeValue(), excelInfo.getEstimateRebate()); + if (scmSpecialRebateVo == null || StringUtils.isBlank(scmSpecialRebateVo.getSid())) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息不存在"); + break; + } + if (scmSpecialRebateVo.getAdjustmentState() == 1) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息已调整"); + break; + } + if (StringUtils.isBlank(excelInfo.getCreateTime())) { + checkWord.add("创建日期不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getCreateTime())) { + String createTime = ""; + if (isNumber(excelInfo.getCreateTime())){ + Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getCreateTime()) - 25569) * 86400 * 1000)); + createTime = DateUtil.formatDate(javaDate); + }else { + createTime = excelInfo.getCreateTime(); + } + String[] split = createTime.split("-"); + if (split.length != 3) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); + break; + } else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getRebateName())) { + checkWord.add("返利名称不能为空"); + break; + } + if (StringUtils.isBlank(excelInfo.getRebateTypeValue())) { + checkWord.add("返利类型不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) { + String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData(); + if (StringUtils.isBlank(dictKey)) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利类型填写不正确"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getEstimateRebate())) { + checkWord.add("预提返利不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getEstimateRebate())) { + String estimateRebate = excelInfo.getEstimateRebate(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(estimateRebate).matches(); + if (!matches) { + checkWord.add("预提返利必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getUploadDate())) { + checkWord.add("上传日期不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getUploadDate())) { + String uploadDate = ""; + if (isNumber(excelInfo.getUploadDate())){ + Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getUploadDate()) - 25569) * 86400 * 1000)); + uploadDate = DateUtil.formatDate(javaDate); + }else { + uploadDate = excelInfo.getUploadDate(); + } + String[] split = uploadDate.split("-"); + if (split.length != 3) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); + break; + } else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getUploadMoney())) { + checkWord.add("上传金额不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getUploadMoney())) { + String uploadMoney = excelInfo.getUploadMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(uploadMoney).matches(); + if (!matches) { + checkWord.add("上传金额必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) { + checkWord.add("待确定金额不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getStayDetermineMoney())) { + String stayDetermineMoney = excelInfo.getStayDetermineMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(stayDetermineMoney).matches(); + if (!matches) { + checkWord.add("待确定金额必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getMoney())) { + checkWord.add("费用不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getMoney())) { + String money = excelInfo.getMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(money).matches(); + if (!matches) { + checkWord.add("费用必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { + checkWord.add("调整说明不能为空"); + break; + } + } + } + StringBuffer sbcheck1 = new StringBuffer(); + if (!checkWord.isEmpty()) { + for (String s : checkWord) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck1.append(s).append(";"); + } + } + if (sbcheck1.length() > 0) { + sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); + importReturn.setCheckInfo(sbcheck1.toString()); + importReturn.setInfos(new ArrayList<>()); + return importReturn; + } + importReturn.setInfos(importVoList); + return importReturn; + } + + public Object getCellVal(Cell cell) { + Object obj = null; + if (cell != null) { + switch (cell.getCellTypeEnum()) { + case BOOLEAN: + obj = cell.getBooleanCellValue(); + break; + case ERROR: + obj = cell.getErrorCellValue(); + break; + case NUMERIC: + obj = cell.getNumericCellValue(); + break; + case STRING: + obj = cell.getStringCellValue(); + break; + default: + break; + } + } + return obj; + } + + public boolean isFourDigitNumber(String input) { + // 判断输入是否为数字 + try { + int number = Integer.parseInt(input); + } catch (NumberFormatException e) { + return false; + } + // 判断输入是否为四位数 + if (input.length() != 4) { + return false; + } + return true; + } + + public boolean isTwoDigitNumber(String input) { + // 判断输入是否为数字 + try { + int number = Integer.parseInt(input); + } catch (NumberFormatException e) { + return false; + } + // 判断输入是否为二位数 + if (input.length() != 2) { + return false; + } + return true; + } + + public boolean isNumber(String input) { + // 判断输入是否为数字 + try { + double v = Double.parseDouble(input); + } catch (NumberFormatException e) { + return false; + } + return true; + } + + public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid) throws IOException { + ResultBean rb = ResultBean.fireFail(); + String temp = request.getSession().getServletContext().getRealPath(File.separator) + "temp";// 临时目录 + File tempFile = new File(temp); + if (!tempFile.exists()) { + tempFile.mkdirs(); + } + String fileName = file.getOriginalFilename(); + if (!fileName.matches("^.+\\.(?i)(xls)$") && !fileName.matches("^.+\\.(?i)(xlsx)$")) { + return rb.fail().setMsg("上传文件不正确"); + } + + int[] resultCell = new int[]{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; + boolean isExcel2003 = true; + if (fileName.matches("^.+\\.(?i)(xlsx)$")) { + isExcel2003 = false; + } + InputStream is = file.getInputStream(); + Workbook wb = null; + if (isExcel2003) { + wb = new HSSFWorkbook(is); + } else { + wb = new XSSFWorkbook(is); + } + Sheet sheet = wb.getSheetAt(0); + SpecialRebateTwoExcelInfo importReturn = getSheetValTwo(sheet, resultCell, userSid); + if (StringUtils.isNotBlank(importReturn.getCheckInfo())) { + return rb.setMsg(importReturn.getCheckInfo()); + } else { + List infos = importReturn.getInfos(); + for (TwoExcelInfo info : infos) { + ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(info.getCreateTime(), info.getRebateName(), info.getRebateTypeValue(), info.getEstimateRebate()); + Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); + String secondaryUploadDate = DateUtil.formatDate(javaDate); + baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(), info.getMoney(), info.getAdjustmentRemarks(), scmSpecialRebateVo.getSid()); + } + return rb.success().setMsg("成功导入数据,请点击确定按钮"); + } + } + + private SpecialRebateTwoExcelInfo getSheetValTwo(Sheet sheet, int[] resultCell, String userSid) { + SpecialRebateTwoExcelInfo importReturn = new SpecialRebateTwoExcelInfo(); + List importVoList = new ArrayList<>(); + Set checkWord = new HashSet<>(); + for (int r = 1; r <= sheet.getLastRowNum(); r++) { + Row row = sheet.getRow(r); + if (row == null) { + continue; + } + TwoExcelInfo importVo = new TwoExcelInfo(); + int physicalNumberOfCells = row.getPhysicalNumberOfCells(); + if (physicalNumberOfCells < 8) { + physicalNumberOfCells = 8; + } + for (int i = 0; i < physicalNumberOfCells; i++) { + String trim = new String(); + try { + trim = getCellVal(row.getCell(i)).toString().trim(); + if (StringUtils.isBlank(trim)) { + NullPointerException nullPointerException = new NullPointerException(); + } + String temp = getCellVal(row.getCell(i)).toString().trim(); + for (int j = 0; j < resultCell.length; j++) { + if (i == resultCell[j]) { + switch (i) { + case 0: + importVo.setCreateTime(temp); + break; + case 1: + importVo.setRebateName(temp); + break; + case 2: + importVo.setRebateTypeValue(temp); + break; + case 3: + importVo.setEstimateRebate(temp); + break; + case 4: + importVo.setUploadDate(temp); + break; + case 5: + importVo.setUploadMoney(temp); + break; + case 6: + importVo.setStayDetermineMoney(temp); + break; + case 7: + importVo.setSecondaryUploadDate(temp); + break; + case 8: + importVo.setSecondaryUploadMoney(temp); + break; + case 9: + importVo.setMoney(temp); + break; + case 10: + importVo.setAdjustmentRemarks(temp); + break; + default: + break; + } + } else { + continue; + } + } + } catch (Exception e) { + if (StringUtils.isBlank(trim)) { + String word = new String(); + switch (i) { + case 0: + word = "创建日期"; + break; + case 1: + word = "返利名称"; + break; + case 2: + word = "返利类型"; + break; + case 3: + word = "预提返利"; + break; + case 4: + word = "上传日期"; + break; + case 5: + word = "上传金额"; + break; + case 6: + word = "待确定金额"; + break; + case 7: + word = "二次上传日期"; + break; + case 8: + word = "二次上传金额"; + break; + case 9: + word = "费用"; + break; + case 10: + word = "调整说明"; + break; + default: + break; + } + continue; + } + } + } + importVoList.add(importVo); + } + if (!importVoList.isEmpty()) { + for (TwoExcelInfo excelInfo : importVoList) { + ScmSpecialRebateVo scmSpecialRebateVo = baseMapper.selectExcelInfo(excelInfo.getCreateTime(), excelInfo.getRebateName(), excelInfo.getRebateTypeValue(), excelInfo.getEstimateRebate()); + if (scmSpecialRebateVo == null || StringUtils.isBlank(scmSpecialRebateVo.getSid())) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息不存在"); + break; + } + if (scmSpecialRebateVo.getAdjustmentState() == 1) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利信息已调整"); + break; + } + if (StringUtils.isBlank(excelInfo.getCreateTime())) { + checkWord.add("创建日期不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getCreateTime())) { + String createTime = ""; + if (isNumber(excelInfo.getCreateTime())){ + Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getCreateTime()) - 25569) * 86400 * 1000)); + createTime = DateUtil.formatDate(javaDate); + }else { + createTime = excelInfo.getCreateTime(); + } + String[] split = createTime.split("-"); + if (split.length != 3) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); + break; + } else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的创建日期填写不正确,格式yyyy-MM-dd"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getRebateName())) { + checkWord.add("返利名称不能为空"); + break; + } + if (StringUtils.isBlank(excelInfo.getRebateTypeValue())) { + checkWord.add("返利类型不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) { + String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData(); + if (StringUtils.isBlank(dictKey)) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的返利类型填写不正确"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getEstimateRebate())) { + checkWord.add("预提返利不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getEstimateRebate())) { + String estimateRebate = excelInfo.getEstimateRebate(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(estimateRebate).matches(); + if (!matches) { + checkWord.add("预提返利必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getUploadDate())) { + checkWord.add("上传日期不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getUploadDate())) { + String uploadDate = ""; + if (isNumber(excelInfo.getUploadDate())){ + Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getUploadDate()) - 25569) * 86400 * 1000)); + uploadDate = DateUtil.formatDate(javaDate); + }else { + uploadDate = excelInfo.getUploadDate(); + } + String[] split = uploadDate.split("-"); + if (split.length != 3) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); + break; + } else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的上传日期填写不正确,格式yyyy-MM-dd"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getUploadMoney())) { + checkWord.add("上传金额不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getUploadMoney())) { + String uploadMoney = excelInfo.getUploadMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(uploadMoney).matches(); + if (!matches) { + checkWord.add("上传金额必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) { + checkWord.add("待确定金额不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getStayDetermineMoney())) { + String stayDetermineMoney = excelInfo.getStayDetermineMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(stayDetermineMoney).matches(); + if (!matches) { + checkWord.add("待确定金额必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getUploadDate())) { + checkWord.add("二次上传日期不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate())) { + String secondaryUploadDate = ""; + if (isNumber(excelInfo.getSecondaryUploadDate())){ + Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getSecondaryUploadDate()) - 25569) * 86400 * 1000)); + secondaryUploadDate = DateUtil.formatDate(javaDate); + }else { + secondaryUploadDate = excelInfo.getSecondaryUploadDate(); + } + String[] split = secondaryUploadDate.split("-"); + if (split.length != 3) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的二次上传日期填写不正确,格式yyyy-MM-dd"); + break; + } else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) { + checkWord.add("返利名称" + excelInfo.getRebateName() + "导入的二次上传日期填写不正确,格式yyyy-MM-dd"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getSecondaryUploadMoney())) { + checkWord.add("二次上传金额不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) { + String secondaryUploadMoney = excelInfo.getSecondaryUploadMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(secondaryUploadMoney).matches(); + if (!matches) { + checkWord.add("二次上传金额必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getMoney())) { + checkWord.add("费用不能为空"); + break; + } + if (StringUtils.isNotBlank(excelInfo.getMoney())) { + String money = excelInfo.getMoney(); + Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$"); + boolean matches = pattern.matcher(money).matches(); + if (!matches) { + checkWord.add("费用必须为数字"); + break; + } + } + if (StringUtils.isBlank(excelInfo.getAdjustmentRemarks())) { + checkWord.add("调整说明不能为空"); + break; + } + } + } + StringBuffer sbcheck1 = new StringBuffer(); + if (!checkWord.isEmpty()) { + for (String s : checkWord) { + if (StringUtils.isBlank(s)) { + continue; + } + sbcheck1.append(s).append(";"); + } + } + if (sbcheck1.length() > 0) { + sbcheck1.delete(sbcheck1.length() - 1, sbcheck1.length()); + importReturn.setCheckInfo(sbcheck1.toString()); + importReturn.setInfos(new ArrayList<>()); + return importReturn; + } + importReturn.setInfos(importVoList); + return importReturn; + } + + public List excelListOne(ScmSpecialRebateQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("orgPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("orgPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("orgPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("orgPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("createBySid", query.getUserSid()); + } else { + List p = new ArrayList<>(); + return p; + } + } else { + List p = new ArrayList<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getBrandSid())) { + qw.eq("brandSid", query.getBrandSid()); + } + if (StringUtils.isNotBlank(query.getRebateTypeKey())) { + qw.eq("rebateTypeKey", query.getRebateTypeKey()); + } + if (StringUtils.isNotBlank(query.getRebateName())) { + qw.like("rebateName", query.getRebateName()); + } + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + String createStartTime = query.getCreateStartTime(); + String createEndTime = query.getCreateEndTime(); + qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + qw.ne("adjustmentState", 1); + qw.eq("state", 2); + qw.orderByDesc("createTime"); + List oneExcelVos = baseMapper.excelListOne(qw); + for (OneExcelVo oneExcelVo : oneExcelVos) { + oneExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(oneExcelVo.getCreateTime()))); + } + return oneExcelVos; + } + + public List excelListTwo(ScmSpecialRebateQuery query) { + QueryWrapper qw = new QueryWrapper<>(); + //========================================数据授权开始 + if (StringUtils.isNotBlank(query.getMenuUrl())) { + PrivilegeQuery privilegeQuery = new PrivilegeQuery(); + privilegeQuery.setOrgPath(query.getOrgPath()); + privilegeQuery.setMenuUrl(query.getMenuUrl()); + privilegeQuery.setMenuSid(query.getMenuSid()); + privilegeQuery.setUserSid(query.getUserSid()); + ResultBean defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("orgPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("orgPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("orgPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("orgPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("createBySid", query.getUserSid()); + } else { + List p = new ArrayList<>(); + return p; + } + } else { + List p = new ArrayList<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getBrandSid())) { + qw.eq("brandSid", query.getBrandSid()); + } + if (StringUtils.isNotBlank(query.getRebateTypeKey())) { + qw.eq("rebateTypeKey", query.getRebateTypeKey()); + } + if (StringUtils.isNotBlank(query.getRebateName())) { + qw.like("rebateName", query.getRebateName()); + } + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + String createStartTime = query.getCreateStartTime(); + String createEndTime = query.getCreateEndTime(); + qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + qw.ne("adjustmentState", 1); + qw.eq("state", 2); + qw.isNotNull("uploadDate"); + qw.orderByDesc("createTime"); + List twoExcelVos = baseMapper.excelListTwo(qw); + for (TwoExcelVo twoExcelVo : twoExcelVos) { + twoExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(twoExcelVo.getCreateTime()))); + } + return twoExcelVos; + } } \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewith/ScmSpecialRebateWithMapper.xml b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewith/ScmSpecialRebateWithMapper.xml index c4c0d9e010..5f7117cbfb 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewith/ScmSpecialRebateWithMapper.xml +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewith/ScmSpecialRebateWithMapper.xml @@ -27,7 +27,7 @@ LEFT JOIN scm_special_rebate ssr ON ssr.`sid` = ssrw.`specialRebateSid` WHERE ssrw.`mainSid` = #{sid} - GROUP BY ssr.`calculationModeKey` + GROUP BY ssr.rebateTypeKey @@ -54,23 +58,21 @@ UPDATE scm_veh_rebate - SET - uploadDate = #{uploadDate}, - uploadMoney = #{uploadMoney}, - stayDetermineMoney = #{stayDetermineMoney}, - money = #{money}, - adjustmentRemarks = #{adjustmentRemarks} + SET uploadDate = #{uploadDate}, + uploadMoney = #{uploadMoney}, + stayDetermineMoney = #{stayDetermineMoney}, + money = #{money}, + adjustmentRemarks = #{adjustmentRemarks} WHERE sid = #{sid} UPDATE scm_veh_rebate - SET - secondaryUploadDate = #{secondaryUploadDate}, - secondaryUploadMoney = #{secondaryUploadMoney}, - money = #{money}, - adjustmentRemarks = #{adjustmentRemarks} + SET secondaryUploadDate = #{secondaryUploadDate}, + secondaryUploadMoney = #{secondaryUploadMoney}, + money = #{money}, + adjustmentRemarks = #{adjustmentRemarks} WHERE sid = #{sid} \ No newline at end of file diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java index f5c1dacf8a..02a106c3c8 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java @@ -117,7 +117,7 @@ public class ScmVehRebateRest implements ScmVehRebateFeign { //得到所有要导出的数据 List exportVoList = scmVehRebateService.excelListTwo(scmVehRebateQuery); //定义导出的excel名字 - String excelName = "二导出"; + String excelName = "二次导出"; String fileNameURL = ""; try { fileNameURL = URLEncoder.encode(excelName, "UTF-8"); diff --git a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java index 37a0df5869..9dd9b91762 100644 --- a/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java +++ b/anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java @@ -263,6 +263,9 @@ public class ScmVehRebateService extends MybatisBaseService= date_format('" + createStartTime + "','%Y-%m-%d')"). @@ -494,13 +497,6 @@ public class ScmVehRebateService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); for (ScmVehRebateVo record : pagging.getRecords()) { - String withholdingDate = record.getWithholdingDate(); - Date parse = DateUtil.parse(withholdingDate); - int year = DateUtil.year(parse); - int month = DateUtil.month(parse) + 1; - String withholdingDateCopy = year + "年" + month + "月"; - record.setWithholdingDate(parse.toString()); - record.setWithholdingDateCopy(withholdingDateCopy); //所属年月 String palceGenDate = record.getPalceGenDate(); String[] split = palceGenDate.split("-"); @@ -535,7 +531,7 @@ public class ScmVehRebateService extends MybatisBaseService page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); - for (ScmVehRebateWithApplyVo record : pagging.getRecords()) { - String withRebateTotal = record.getWithRebateTotal(); - if (StringUtils.isBlank(withRebateTotal)) { - withRebateTotal = "0.0"; - } - withRebateTotal = withRebateTotal.substring(0, withRebateTotal.lastIndexOf(".")); - record.setWithRebateTotal(withRebateTotal); - } PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } @@ -265,9 +257,6 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService vehRebateSids = scmVehRebateWith.getVehRebateSids(); for (String vehRebateSid : vehRebateSids) { - scmVehRebateService.updateWithholdingDateBySid(vehRebateSid); scmVehRebateService.updateState(vehRebateSid, 1); } } @@ -394,6 +382,7 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.api.as.bwdiffapply; + +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.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Data +@ApiModel(value = "保外应收调差工单列表 视图数据详情", description = "保外应收调差工单列表 视图数据详情") +public class AppBwdiffapplyDetailDetailsVo implements Vo { + + @ApiModelProperty("维修工单号") + private String sourceBillNo; + @ApiModelProperty("客户名称") + private String customerName; + @ApiModelProperty("车牌号") + private String vehMark; + @ApiModelProperty("车架号") + private String vinNo; + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("结算日期") + private Date settleTime; + @ApiModelProperty("工时费") + private BigDecimal hourAmount; + @ApiModelProperty("材料费") + private BigDecimal goodsAmount; + @ApiModelProperty("外出费") + private BigDecimal outAmount; + @ApiModelProperty("施救费") + private BigDecimal rescueAmount; + @ApiModelProperty("其他费用") + private BigDecimal otherAmount; + @ApiModelProperty("费用合计") + private BigDecimal totalAmount; + @ApiModelProperty("调整工时费") + private BigDecimal diffHourAmount; + @ApiModelProperty("调整材料费") + private BigDecimal diffGoodsAmount; + @ApiModelProperty("调整外出费") + private BigDecimal diffOutAomunt; + @ApiModelProperty("调整施救费") + private BigDecimal diffRescueAmount; + @ApiModelProperty("调整其他费用") + private BigDecimal diffOtherAmount; + @ApiModelProperty("调整费用合计") + private BigDecimal diffTotalAmount; + @ApiModelProperty("调整说明") + private BigDecimal adjustmentRemarks; + @ApiModelProperty("附件") + private List files = new ArrayList<>(); + @ApiModelProperty("附件") + private List fileList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailFile.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailFile.java new file mode 100644 index 0000000000..231381a62a --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailFile.java @@ -0,0 +1,37 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.api.as.bwdiffapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "保外工单开票申请 视图数据对象", description = "保外工单开票申请 视图数据对象") +public class AppBwdiffapplyDetailFile implements Vo { + + private String url; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailsVo.java new file mode 100644 index 0000000000..5ec1445cf3 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyDetailsVo.java @@ -0,0 +1,61 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.api.as.bwdiffapply; + +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; + +@Data +@ApiModel(value = "保外工单应收调差申请 视图数据详情", description = "保外工单应收调差申请 视图数据详情") +public class AppBwdiffapplyDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("申请人") + private String createByName; + @ApiModelProperty("申请部门名称") + private String deptName; + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("申请日期") + private Date createTime; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("附件") + private List files = new ArrayList<>(); + @ApiModelProperty("实例id") + private String procInsId; + @ApiModelProperty("任务id") + private String taskId; + @ApiModelProperty("工单列表") + private List asBwdiffapplyDetailList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyFeign.java new file mode 100644 index 0000000000..960faf8322 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/AppBwdiffapplyFeign.java @@ -0,0 +1,64 @@ +package com.yxt.anrui.terminal.api.as.bwdiffapply; + +import com.yxt.anrui.terminal.api.as.bwdiffapply.flowable.AppDelegateQuery; +import com.yxt.anrui.terminal.api.as.bwdiffapply.flowable.AppFlowDto; +import com.yxt.anrui.terminal.api.as.bwdiffapply.flowable.AppFlowQuery; +import com.yxt.anrui.terminal.api.as.bwdiffapply.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-AppBwdiffapply", + name = "anrui-terminal", + path = "v1/bwdiffapply") +public interface AppBwdiffapplyFeign { + + @ApiOperation("详情") + @GetMapping("/fetchDetailsBySid/{sid}") + public ResultBean 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 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); +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppDelegateQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppDelegateQuery.java new file mode 100644 index 0000000000..304eb873bd --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppDelegateQuery.java @@ -0,0 +1,25 @@ +package com.yxt.anrui.terminal.api.as.bwdiffapply.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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowDto.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowDto.java new file mode 100644 index 0000000000..7723517423 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowDto.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.terminal.api.as.bwdiffapply.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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowQuery.java new file mode 100644 index 0000000000..f92aebb52b --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowQuery.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.terminal.api.as.bwdiffapply.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; +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowTaskQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowTaskQuery.java new file mode 100644 index 0000000000..0e4a756a00 --- /dev/null +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/as/bwdiffapply/flowable/AppFlowTaskQuery.java @@ -0,0 +1,47 @@ +package com.yxt.anrui.terminal.api.as.bwdiffapply.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; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyRest.java similarity index 98% rename from anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyRest.java rename to anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyRest.java index a5f4f25925..e13aff7f2b 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyRest.java @@ -23,7 +23,7 @@ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* *********************************************************/ -package com.yxt.anrui.terminal.biz.as.oldparthandleapply; +package com.yxt.anrui.terminal.biz.as.bwdiffapply; import com.yxt.anrui.terminal.api.as.oldparthandleapply.AppOldparthandleApplyDetailsVo; import com.yxt.anrui.terminal.api.as.oldparthandleapply.AppOldparthandleApplyFeign; diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyService.java similarity index 96% rename from anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyService.java rename to anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyService.java index f5d35ff3b7..a424794e39 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppOldparthandleApplyService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/bwdiffapply/AppOldparthandleApplyService.java @@ -23,7 +23,7 @@ * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* *********************************************************/ -package com.yxt.anrui.terminal.biz.as.oldparthandleapply; +package com.yxt.anrui.terminal.biz.as.bwdiffapply; import cn.hutool.core.bean.BeanUtil; import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg; @@ -32,7 +32,10 @@ import com.yxt.anrui.portal.api.sysuser.SysUserFeign; import com.yxt.anrui.portal.api.sysuser.SysUserVo; import com.yxt.anrui.terminal.api.as.oldparthandleapply.AppOldparthandleApplyDetailsVo; import com.yxt.anrui.terminal.api.as.oldparthandleapply.AppOldparthandleDetailsVo; -import com.yxt.anrui.terminal.api.as.oldparthandleapply.flowable.*; +import com.yxt.anrui.terminal.api.as.oldparthandleapply.flowable.AppDelegateQuery; +import com.yxt.anrui.terminal.api.as.oldparthandleapply.flowable.AppFlowDto; +import com.yxt.anrui.terminal.api.as.oldparthandleapply.flowable.AppFlowQuery; +import com.yxt.anrui.terminal.api.as.oldparthandleapply.flowable.AppFlowTaskQuery; import com.yxt.anrui.terminal.fegin.asoldparthandleapply.AsOldparthandleApplyDetailsVo; import com.yxt.anrui.terminal.fegin.asoldparthandleapply.AsOldparthandleApplyFegin; import com.yxt.anrui.terminal.fegin.asoldparthandleapply.flowable.*; diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyRest.java new file mode 100644 index 0000000000..d5d695b898 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyRest.java @@ -0,0 +1,82 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.biz.as.oldparthandleapply; + +import com.yxt.anrui.terminal.api.as.bwdiffapply.AppBwdiffapplyDetailsVo; +import com.yxt.anrui.terminal.api.as.bwdiffapply.AppBwdiffapplyFeign; +import com.yxt.anrui.terminal.api.as.bwdiffapply.flowable.*; +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/bwdiffapply") +public class AppBwdiffapplyRest implements AppBwdiffapplyFeign { + + @Autowired + private AppBwdiffapplyService appBwdiffapplyService; + + @Override + public ResultBean fetchDetailsBySid(String sid) { + return appBwdiffapplyService.fetchDetailsBySid(sid); + } + + @Override + public ResultBean agreeCreditInfo(AppFlowDto dto) { + return appBwdiffapplyService.agreeCreditInfo(dto); + } + + @Override + public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { + return appBwdiffapplyService.rejectCreditInfo(query); + } + + @Override + public ResultBean recallCreditInfo(AppFlowTaskQuery query) { + return appBwdiffapplyService.recallCreditInfo(query); + } + + @Override + public ResultBean stopCreditInfo(AppFlowTaskQuery query) { + return appBwdiffapplyService.stopCreditInfo(query); + } + + @Override + public ResultBean getFlowOperateTitle(AppFlowQuery query) { + return appBwdiffapplyService.getFlowOperateTitle(query); + } + + @Override + public ResultBean delegate(AppDelegateQuery delegateQuery) { + return appBwdiffapplyService.delegate(delegateQuery); + } + + @Override + public ResultBean assignTask(AppDelegateQuery delegateQuery) { + return appBwdiffapplyService.assignTask(delegateQuery); + } +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyService.java new file mode 100644 index 0000000000..cb8a8d9abd --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/as/oldparthandleapply/AppBwdiffapplyService.java @@ -0,0 +1,185 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.biz.as.oldparthandleapply; + +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.bwdiffapply.AppBwdiffapplyDetailDetailsVo; +import com.yxt.anrui.terminal.api.as.bwdiffapply.AppBwdiffapplyDetailFile; +import com.yxt.anrui.terminal.api.as.bwdiffapply.AppBwdiffapplyDetailsVo; +import com.yxt.anrui.terminal.api.as.bwdiffapply.flowable.*; +import com.yxt.anrui.terminal.fegin.asbwdiffapply.*; +import com.yxt.anrui.terminal.fegin.asbwdiffapply.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 AppBwdiffapplyService { + + @Resource + private AsBwdiffapplyFegin asBwdiffapplyFegin; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + @Autowired + private SysUserFeign sysUserFeign; + + public ResultBean fetchDetailsBySid(String sid) { + ResultBean rb = ResultBean.fireFail(); + AsBwdiffapplyDetailsVo data = asBwdiffapplyFegin.fetchDetailsBySid(sid).getData(); + AppBwdiffapplyDetailsVo appBwdiffapplyDetailsVo = new AppBwdiffapplyDetailsVo(); + BeanUtil.copyProperties(data,appBwdiffapplyDetailsVo); + appBwdiffapplyDetailsVo.setProcInsId(data.getProcInstId()); + List fileList = data.getFileList(); + ArrayList files = new ArrayList<>(); + for (AsBwdiffapplyFile asBwdiffapplyFile : fileList) { + files.add(asBwdiffapplyFile.getUrl()); + } + appBwdiffapplyDetailsVo.setFiles(files); + List asBwdiffapplyDetailList = appBwdiffapplyDetailsVo.getAsBwdiffapplyDetailList(); + for (AppBwdiffapplyDetailDetailsVo appBwdiffapplyDetailDetailsVo : asBwdiffapplyDetailList) { + List fileList1 = appBwdiffapplyDetailDetailsVo.getFileList(); + ArrayList files1 = new ArrayList<>(); + for (AppBwdiffapplyDetailFile appBwdiffapplyDetailFile : fileList1) { + files1.add(appBwdiffapplyDetailFile.getUrl()); + } + appBwdiffapplyDetailDetailsVo.setFiles(files1); + } + return rb.success().setData(appBwdiffapplyDetailsVo); + } + + public ResultBean agreeCreditInfo(AppFlowDto dto) { + ResultBean rb = ResultBean.fireFail(); + //根据用户sid获取staffSid + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + CompleteBwdiffApplyDto completeBwdiffApplyDto = new CompleteBwdiffApplyDto(); + BeanUtil.copyProperties(dto, completeBwdiffApplyDto); + completeBwdiffApplyDto.setOrgSidPath(orgSidPath); + ResultBean resultBean = asBwdiffapplyFegin.complete(completeBwdiffApplyDto); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean rejectCreditInfo(AppFlowTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BwdiffApplyTaskQuery bwdiffApplyTaskQuery = new BwdiffApplyTaskQuery(); + BeanUtil.copyProperties(query, bwdiffApplyTaskQuery); + ResultBean resultBean = asBwdiffapplyFegin.taskReject(bwdiffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppFlowTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BwdiffApplyTaskQuery bwdiffApplyTaskQuery = new BwdiffApplyTaskQuery(); + BeanUtil.copyProperties(query, bwdiffApplyTaskQuery); + ResultBean resultBean = asBwdiffapplyFegin.revokeProcess(bwdiffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppFlowTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + BwdiffApplyTaskQuery bwdiffApplyTaskQuery = new BwdiffApplyTaskQuery(); + BeanUtil.copyProperties(query, bwdiffApplyTaskQuery); + ResultBean resultBean = asBwdiffapplyFegin.breakProcess(bwdiffApplyTaskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(AppFlowQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + BwdiffApplyNodeQuery getNodeQuery = new BwdiffApplyNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = asBwdiffapplyFegin.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> getNextNodesForSubmit = asBwdiffapplyFegin.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(); + BwdiffApplyDelegateQuery delegateQuery1 = new + BwdiffApplyDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + asBwdiffapplyFegin.delegate(delegateQuery1); + return rb.success(); + } + + public ResultBean assignTask(AppDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + BwdiffApplyDelegateQuery delegateQuery1 = new + BwdiffApplyDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + asBwdiffapplyFegin.assignTask(delegateQuery1); + return rb.success(); + } +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailDetailsVo.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailDetailsVo.java new file mode 100644 index 0000000000..6398b6164c --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailDetailsVo.java @@ -0,0 +1,90 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.fegin.asbwdiffapply; + +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.math.BigDecimal; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Data +@ApiModel(value = "保外应收调差工单列表 视图数据详情", description = "保外应收调差工单列表 视图数据详情") +public class AsBwdiffapplyDetailDetailsVo implements Vo { + + private String sid; // sid + + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("业务sid") + private String mainSid; // 业务sid + @ApiModelProperty("维修工单sid") + private String sourceBillSid; // 维修工单sid + @ApiModelProperty("维修工单号") + private String sourceBillNo; // 维修工单号 + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("车牌号") + private String vehMark; // 车牌号 + @ApiModelProperty("车架号") + private String vinNo; // 车架号 + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("结算日期") + private Date settleTime; // 结算日期 + @ApiModelProperty("工时费") + private BigDecimal hourAmount; // 工时费 + @ApiModelProperty("材料费") + private BigDecimal goodsAmount; // 材料费 + @ApiModelProperty("外出费") + private BigDecimal outAmount; // 外出费 + @ApiModelProperty("施救费") + private BigDecimal rescueAmount; // 施救费 + @ApiModelProperty("其他费用") + private BigDecimal otherAmount; // 其他费用 + @ApiModelProperty("费用合计") + private BigDecimal totalAmount; // 费用合计 + @ApiModelProperty("调整工时费") + private BigDecimal diffHourAmount; // 调整工时费 + @ApiModelProperty("调整材料费") + private BigDecimal diffGoodsAmount; // 调整材料费 + @ApiModelProperty("调整外出费") + private BigDecimal diffOutAomunt; // 调整外出费 + @ApiModelProperty("调整施救费") + private BigDecimal diffRescueAmount; // 调整施救费 + @ApiModelProperty("调整其他费用") + private BigDecimal diffOtherAmount; // 调整其他费用 + @ApiModelProperty("调整费用合计") + private BigDecimal diffTotalAmount; // 调整费用合计 + @ApiModelProperty("附件") + private List fileList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailFile.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailFile.java new file mode 100644 index 0000000000..00016838d5 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailFile.java @@ -0,0 +1,37 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.fegin.asbwdiffapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "保外工单开票申请 视图数据对象", description = "保外工单开票申请 视图数据对象") +public class AsBwdiffapplyDetailFile implements Vo { + + private String url; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailsVo.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailsVo.java new file mode 100644 index 0000000000..c831426ccd --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyDetailsVo.java @@ -0,0 +1,80 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.fegin.asbwdiffapply; + +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; + +@Data +@ApiModel(value = "保外工单应收调差申请 视图数据详情", description = "保外工单应收调差申请 视图数据详情") +public class AsBwdiffapplyDetailsVo implements Vo { + + private String sid; // sid + + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("申请日期") + private Date createTime; + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("申请人sid") + private String createBySid; + @ApiModelProperty("申请人") + private String createByName; // 申请人 + @ApiModelProperty("申请部门sid") + private String deptSid; // 申请部门sid + @ApiModelProperty("申请部门名称") + private String deptName; // 申请部门名称 + @ApiModelProperty("分公司sid") + private String useOrgSid; // 分公司sid + @ApiModelProperty("分公司名称") + private String useOrgName; // 分公司名称 + @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") + @ApiModelProperty("办结日期") + private Date finishTime; // 办结日期 + @ApiModelProperty("实例id") + private String procInstId; // 实例id + @ApiModelProperty("流程定义id") + private String procDefId; // 流程定义id + @ApiModelProperty("任务id") + private String taskId; // 任务id + @ApiModelProperty("环节id") + private String nodeId; // 环节id + @ApiModelProperty("流程状态") + private String nodeState; // 流程状态 + @ApiModelProperty("附件") + private List fileList = new ArrayList<>(); + @ApiModelProperty("工单列表") + private List asBwdiffapplyDetailList = new ArrayList<>(); +} \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFegin.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFegin.java new file mode 100644 index 0000000000..991c70152b --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFegin.java @@ -0,0 +1,59 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply; + +import com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable.*; +import com.yxt.anrui.terminal.fegin.asoldparthandleapply.AsOldparthandleApplyDetailsVo; +import com.yxt.anrui.terminal.fegin.asoldparthandleapply.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-AsBwdiffapply", + name = "yxt-as", + path = "v1/asoldparthandleapply" +) +public interface AsBwdiffapplyFegin { + + @ApiOperation("详情") + @GetMapping("/fetchDetailsBySid/{sid}") + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody CompleteBwdiffApplyDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap BwdiffApplyNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap BwdiffApplyNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean taskReject(@Valid @RequestBody BwdiffApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody BwdiffApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody BwdiffApplyTaskQuery query); + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + @ResponseBody + public ResultBean delegate(@RequestBody BwdiffApplyDelegateQuery query); + + @ApiOperation(value = "转办") + @PutMapping(value = "/assignTask") + @ResponseBody + public ResultBean assignTask(@RequestBody BwdiffApplyDelegateQuery query); +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFile.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFile.java new file mode 100644 index 0000000000..8fb72201ea --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/AsBwdiffapplyFile.java @@ -0,0 +1,37 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.terminal.fegin.asbwdiffapply; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import lombok.Data; + +@Data +@ApiModel(value = "保外工单开票申请 视图数据对象", description = "保外工单开票申请 视图数据对象") +public class AsBwdiffapplyFile implements Vo { + + private String url; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyDelegateQuery.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyDelegateQuery.java new file mode 100644 index 0000000000..2fa5bd9007 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyDelegateQuery.java @@ -0,0 +1,23 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class BwdiffApplyDelegateQuery { + + private String userSid; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeQuery.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeQuery.java new file mode 100644 index 0000000000..a9cae8413b --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeQuery.java @@ -0,0 +1,18 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class BwdiffApplyNodeQuery { + + @ApiModelProperty(value = "环节定义id") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeVo.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeVo.java new file mode 100644 index 0000000000..acb7427892 --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyNodeVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class BwdiffApplyNodeVo { + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyTaskQuery.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyTaskQuery.java new file mode 100644 index 0000000000..93c5ba775c --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/BwdiffApplyTaskQuery.java @@ -0,0 +1,43 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class BwdiffApplyTaskQuery { + + /** + * 终止、驳回、撤回 + */ + @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; +} diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/CompleteBwdiffApplyDto.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/CompleteBwdiffApplyDto.java new file mode 100644 index 0000000000..0614b3e46a --- /dev/null +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/fegin/asbwdiffapply/flowable/CompleteBwdiffApplyDto.java @@ -0,0 +1,35 @@ +package com.yxt.anrui.terminal.fegin.asbwdiffapply.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/5/11 + **/ +@Data +public class CompleteBwdiffApplyDto { + + @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; +}