Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
fanzongzhe 9 months ago
parent
commit
cdfd3b33cb
  1. 2
      anrui-riskcenter-ui/src/views/settle/settleAdd.vue
  2. 2
      anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleEdit.vue
  3. 40
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelInfo.java
  4. 68
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelVo.java
  5. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebate.java
  6. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateDetailsVo.java
  7. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateDto.java
  8. 18
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java
  9. 20
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java
  10. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java
  11. 43
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelInfo.java
  12. 75
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelVo.java
  13. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateOneExcelInfo.java
  14. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java
  15. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java
  16. 50
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml
  17. 47
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java
  18. 938
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  19. 39
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java
  20. 3
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailMapper.java
  21. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailService.java
  22. 20
      anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js
  23. 154
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue
  24. 51
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/wms/inventoryallocatebill/AppInventoryAllocateBillDetailsVoNew.java
  25. 26
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/wms/inventoryallocatebill/AppInventoryAllocatebillDetailDetailsVoNew.java
  26. 9
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/wms/inventoryallocatebill/AppInventoryAllocatebillService.java

2
anrui-riskcenter-ui/src/views/settle/settleAdd.vue

@ -308,7 +308,7 @@
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="UpNumber" v-model="formobj.loanSettleCompanyReductionVo.notDuePriceRelief" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">减免依据</div>
<div class="span-sty">减免依据(资方未到期利息减免)</div>
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="UpNumber" v-model="formobj.loanSettleCompanyReductionVo.reliefBasis" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>

2
anrui-riskcenter-ui/src/views/workFlow/jieqingFlow/settleEdit.vue

@ -307,7 +307,7 @@
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="UpNumber" v-model="formobj.loanSettleCompanyReductionVo.notDuePriceRelief" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="16">
<div class="span-sty">减免依据</div>
<div class="span-sty">减免依据(资方未到期利息减免)</div>
<el-form-item><el-input class="addinputInfo addinputw" @keyup.native="UpNumber" v-model="formobj.loanSettleCompanyReductionVo.reliefBasis" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>

40
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelInfo.java

@ -0,0 +1,40 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/28
**/
@Data
public class OneExcelInfo {
//车架号
private String vinNo;
//厂家结算价
private String manufactorSettlementPrice;
//其中运费金额
private String freight;
//创建日期
private String createTime;
//返利名称
private String rebateName;
//返利类型
private String rebateTypeValue;
//预提返利
private String estimateRebate;
//所属年月
private String palceGenDate;
//上传日期
private String uploadDate;
//上传金额
private String uploadMoney;
//待确定金额
private String stayDetermineMoney;
//费用
private String money;
//调整说明
private String adjustmentRemarks;
}

68
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelVo.java

@ -0,0 +1,68 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/28
**/
@Data
public class OneExcelVo {
//车架号
@ExportEntityMap(CnName = "车架号", EnName = "vinNo")
private String vinNo;
//厂家结算价
@ExportEntityMap(CnName = "厂家结算价", EnName = "manufactorSettlementPrice")
private String manufactorSettlementPrice;
//其中运费金额
@ExportEntityMap(CnName = "其中运费金额", EnName = "freight")
private String freight;
//创建日期
@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 = "palceGenDate")
private String palceGenDate;
//上传日期
@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;
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebate.java

@ -105,7 +105,7 @@ public class ScmVehRebate extends BaseEntity {
private String calculationModeKey; // 计算方式key
@ApiModelProperty("计算方式Value")
private String calculationModeValue; // 计算方式Value
@ApiModelProperty("调整状态(1已调整0未调整)")
@ApiModelProperty("调整状态(0未调整1待核对2核对中3已调整)")
private Integer adjustmentState;
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateDetailsVo.java

@ -113,7 +113,7 @@ public class ScmVehRebateDetailsVo implements Vo {
private String calculationModeKey; // 计算方式key
@ApiModelProperty("计算方式Value")
private String calculationModeValue; // 计算方式Value
@ApiModelProperty("调整状态(1已调整0未调整)")
@ApiModelProperty("调整状态(0未调整1待核对2核对中3已调整)")
private Integer adjustmentState;
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateDto.java

@ -67,7 +67,7 @@ public class ScmVehRebateDto implements Dto {
private String calculationModeKey;
@ApiModelProperty("计算方式Value")
private String calculationModeValue;
@ApiModelProperty("调整状态(1已调整0未调整)")
@ApiModelProperty("调整状态(0未调整1待核对2核对中3已调整)")
private Integer adjustmentState;
@ApiModelProperty("组织全路径")
private String orgPath;

18
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java

@ -77,6 +77,24 @@ public interface ScmVehRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmVehRebateVo>> checkApplyGetVehRebate(@RequestBody PagerQuery<ScmVehRebateQuery> pq);
@ApiOperation("一次导出")
@PostMapping("/excelListOne")
public void excelListOne(@RequestBody ScmVehRebateQuery scmVehRebateQuery);
@ApiOperation(value = "一次导入")
@PostMapping("/getExcelOneInfo")
@ResponseBody
public ResultBean getExcelOneInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("二次导出")
@PostMapping("/excelListTwo")
public void excelListTwo(@RequestBody ScmVehRebateQuery scmVehRebateQuery);
@ApiOperation(value = "二次导入")
@PostMapping("/getExcelTwoInfo")
@ResponseBody
public ResultBean getExcelTwoInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request,@RequestParam("userSid") String userSid,@RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("单车返利核对申请选择已上传单车返利信息")
@PostMapping("/checkApplyGetAlreadyUploadVehRebate")
@ResponseBody

20
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java

@ -68,6 +68,26 @@ public class ScmVehRebateFeignFallback implements ScmVehRebateFeign {
return null;
}
@Override
public void excelListOne(ScmVehRebateQuery scmVehRebateQuery) {
}
@Override
public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException {
return null;
}
@Override
public void excelListTwo(ScmVehRebateQuery scmVehRebateQuery) {
}
@Override
public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException {
return null;
}
@Override
public ResultBean<PagerVo<ScmVehRebateVo>> checkApplyGetAlreadyUploadVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
return null;

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java

@ -127,6 +127,6 @@ public class ScmVehRebateVo implements Vo {
private String uploadState; // 上传状态
@ApiModelProperty("是否可以点击是否调整")
private Boolean adjustOrNot;
@ApiModelProperty("调整状态(1已调整0未调整)")
@ApiModelProperty("调整状态(0未调整1待核对2核对中3已调整)")
private Integer adjustmentState;
}

43
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelInfo.java

@ -0,0 +1,43 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/28
**/
@Data
public class TwoExcelInfo {
//车架号
private String vinNo;
//厂家结算价
private String manufactorSettlementPrice;
//其中运费金额
private String freight;
//创建日期
private String createTime;
//返利名称
private String rebateName;
//返利类型
private String rebateTypeValue;
//预提返利
private String estimateRebate;
//所属年月
private String palceGenDate;
//上传日期
private String uploadDate;
//上传金额
private String uploadMoney;
//待确定金额
private String stayDetermineMoney;
//二次上传日期
private String secondaryUploadDate;
//二次上传金额
private String secondaryUploadMoney;
//费用
private String money;
//调整说明
private String adjustmentRemarks;
}

75
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelVo.java

@ -0,0 +1,75 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/28
**/
@Data
public class TwoExcelVo {
//车架号
@ExportEntityMap(CnName = "车架号", EnName = "vinNo")
private String vinNo;
//厂家结算价
@ExportEntityMap(CnName = "厂家结算价", EnName = "manufactorSettlementPrice")
private String manufactorSettlementPrice;
//其中运费金额
@ExportEntityMap(CnName = "其中运费金额", EnName = "freight")
private String freight;
@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 = "palceGenDate")
private String palceGenDate;
//上传日期
@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;
}

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateOneExcelInfo.java

@ -0,0 +1,12 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class VehRebateOneExcelInfo {
private String checkInfo;
private List<OneExcelInfo> infos = new ArrayList<>();
}

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/VehRebateTwoExcelInfo.java

@ -0,0 +1,12 @@
package com.yxt.anrui.scm.api.scmvehrebate;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class VehRebateTwoExcelInfo {
private String checkInfo;
private List<TwoExcelInfo> infos = new ArrayList<>();
}

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java

@ -26,9 +26,12 @@
package com.yxt.anrui.scm.biz.scmvehrebate;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
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.scmvehrebate.OneExcelVo;
import com.yxt.anrui.scm.api.scmvehrebate.TwoExcelVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -68,4 +71,17 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
@Update("update scm_veh_rebate set withholdingDate = CURRENT_TIMESTAMP where sid = #{vehRebateSid}")
void updateWithholdingDateBySid(String vehRebateSid);
List<OneExcelVo> excelListOne(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
List<TwoExcelVo> excelListTwo(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
ScmVehRebateVo selectExcelInfo(@Param("vinNo") String vinNo,@Param("rebateName") String rebateName,@Param("palceGenDate") String palceGenDate);
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);
@Update("update scm_veh_rebate set adjustmentState = #{adjustmentState} where sid = #{sid}")
void updateAdjustmentState(@Param("adjustmentState") Integer adjustmentState,@Param("sid") String sid);
}

50
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml

@ -23,4 +23,54 @@
WHERE vinNo = #{vinNo}
AND createOrgSid = #{createOrgSid}
</select>
<select id="excelListOne" resultType="com.yxt.anrui.scm.api.scmvehrebate.OneExcelVo">
SELECT
*
FROM
scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="excelListTwo" resultType="com.yxt.anrui.scm.api.scmvehrebate.TwoExcelVo">
SELECT
*
FROM
scm_veh_rebate
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectExcelInfo" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo">
SELECT * FROM scm_veh_rebate
WHERE vinNo LIKE CONCAT( '%', #{vinNo}, '%' )
AND rebateName = #{rebateName}
AND palceGenDate = #{palceGenDate}
</select>
<update id="updateOneExcelInfo">
UPDATE
scm_veh_rebate
SET
uploadDate = #{uploadDate},
uploadMoney = #{uploadMoney},
stayDetermineMoney = #{stayDetermineMoney},
money = #{money},
adjustmentRemarks = #{adjustmentRemarks}
WHERE sid = #{sid}
</update>
<update id="updateTwoExcelInfo">
UPDATE
scm_veh_rebate
SET
secondaryUploadDate = #{secondaryUploadDate},
secondaryUploadMoney = #{secondaryUploadMoney},
money = #{money},
adjustmentRemarks = #{adjustmentRemarks}
WHERE sid = #{sid}
</update>
</mapper>

47
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java

@ -26,6 +26,7 @@
package com.yxt.anrui.scm.biz.scmvehrebate;
import com.yxt.anrui.scm.api.scmvehrebate.*;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
@ -37,7 +38,10 @@ 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;
@ -61,6 +65,8 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
@Autowired
private ScmVehRebateService scmVehRebateService;
@Autowired
HttpServletResponse response;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@ -85,6 +91,47 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
return rb.success().setData(pv);
}
@Override
public void excelListOne(ScmVehRebateQuery scmVehRebateQuery) {
//得到所有要导出的数据
List<OneExcelVo> exportVoList = scmVehRebateService.excelListOne(scmVehRebateQuery);
//定义导出的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, String orgPath) throws IOException, ParseException {
return scmVehRebateService.getExcelOneInfo(file,request,userSid,orgPath);
}
@Override
public void excelListTwo(ScmVehRebateQuery scmVehRebateQuery) {
//得到所有要导出的数据
List<TwoExcelVo> exportVoList = scmVehRebateService.excelListTwo(scmVehRebateQuery);
//定义导出的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, String orgPath) throws IOException, ParseException {
return scmVehRebateService.getExcelTwoInfo(file,request,userSid,orgPath);
}
@Override
public ResultBean<PagerVo<ScmVehRebateVo>> checkApplyGetAlreadyUploadVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
ResultBean rb = ResultBean.fireFail();

938
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java

@ -277,14 +277,13 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
IPage<ScmVehRebateVo> pagging = baseMapper.selectPageVo(page, qw);
for (ScmVehRebateVo record : pagging.getRecords()) {
//上传状态:未上传
if (StringUtils.isBlank(record.getUploadDate()) && StringUtils.isBlank(record.getUploadMoney())) {
if (StringUtils.isBlank(record.getUploadDate())) {
record.setUploadState("0");
}
//上传状态:已上传
if (StringUtils.isNotBlank(record.getUploadDate()) && StringUtils.isNotBlank(record.getUploadMoney())) {
} else {//上传状态:已上传
record.setUploadState("1");
}
//是否调整
if (0 == record.getAdjustmentState()){
if (new BigDecimal(record.getStayDetermineMoney()).compareTo(BigDecimal.ZERO) == 0) {
BigDecimal decimal = new BigDecimal(StringUtils.isNotBlank(record.getUploadMoney()) ? record.getUploadMoney() : "0").add(new BigDecimal(StringUtils.isNotBlank(record.getSecondaryUploadMoney()) ? record.getSecondaryUploadMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getMoney()) ? record.getMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getStayDetermineMoney()) ? record.getStayDetermineMoney() : "0")).subtract(new BigDecimal(StringUtils.isNotBlank(record.getEstimateRebate()) ? record.getEstimateRebate() : "0"));
int i = decimal.compareTo(BigDecimal.ZERO);
@ -307,10 +306,161 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
record.setAdjustOrNot(false);
}
}
}
PagerVo<ScmVehRebateVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public List<OneExcelVo> excelListOne(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> 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<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("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<OneExcelVo> p = new ArrayList<>();
return p;
}
} else {
List<OneExcelVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getBrandSid())) {
qw.eq("brandSid", query.getBrandSid());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
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.eq("adjustmentState", 0);
qw.ne("state", 0);
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
qw.orderByDesc("createTime");
List<OneExcelVo> oneExcelVos = baseMapper.excelListOne(qw);
for (OneExcelVo oneExcelVo : oneExcelVos) {
oneExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(oneExcelVo.getCreateTime())));
}
return oneExcelVos;
}
public List<TwoExcelVo> excelListTwo(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> 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<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);
int i3 = orgSidPath.indexOf("/", i2 + 1);
int i4 = orgSidPath.indexOf("/", i3 + 1);
String orgLevelKey = defaultIdReltBean.getData();
if ("1".equals(orgLevelKey)) {
orgSidPath = orgSidPath.substring(0, i1);
qw.like("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<TwoExcelVo> p = new ArrayList<>();
return p;
}
} else {
List<TwoExcelVo> p = new ArrayList<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getBrandSid())) {
qw.eq("brandSid", query.getBrandSid());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
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.eq("adjustmentState", 0);
qw.ne("state", 0);
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
qw.orderByDesc("createTime");
List<TwoExcelVo> twoExcelVos = baseMapper.excelListTwo(qw);
for (TwoExcelVo twoExcelVo : twoExcelVos) {
twoExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parseDate(twoExcelVo.getCreateTime())));
}
return twoExcelVos;
}
public PagerVo<ScmVehRebateVo> checkApplyGetAlreadyUploadVehRebate(PagerQuery<ScmVehRebateQuery> pq) {
ScmVehRebateQuery query = pq.getParams();
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
@ -425,6 +575,7 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
scmVehRebateVehDto.setMoney(dto.getCost());
scmVehRebateVehDto.setAdjustmentMoney(dto.getAdjustmentMoney());
scmVehRebateVehDto.setIsAdjustment("是");
scmVehRebateVehDto.setAdjustmentState(1);
updateBySid(scmVehRebateVehDto, sid);
return rb.success().setMsg("调整成功");
}
@ -614,14 +765,20 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("车架号不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())){
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) {
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>();
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery();
params.setVinNo(excelInfo.getVinNo());
params.setUserSid(userSid);
pq.setParams(params);
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData();
if (data.getRecords().size() == 0){
if (data.getRecords().size() == 0) {
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在");
break;
}
@ -656,10 +813,10 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) {
String palceGenDate = excelInfo.getPalceGenDate();
String[] split = palceGenDate.split("-");
if (split.length != 2){
if (split.length != 2) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
}else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])){
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
}
@ -735,4 +892,769 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
}
return true;
}
public ResultBean getExcelOneInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) 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, 11, 12};
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);
VehRebateOneExcelInfo importReturn = getSheetValOne(sheet, resultCell, userSid);
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) {
return rb.setMsg(importReturn.getCheckInfo());
} else {
List<OneExcelInfo> infos = importReturn.getInfos();
for (OneExcelInfo info : infos) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(info.getVinNo(), info.getRebateName(), info.getPalceGenDate());
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(), scmVehRebateVo.getSid());
}
return rb.success().setMsg("成功导入数据,请点击确定按钮");
}
}
private VehRebateOneExcelInfo getSheetValOne(Sheet sheet, int[] resultCell, String userSid) {
VehRebateOneExcelInfo importReturn = new VehRebateOneExcelInfo();
List<OneExcelInfo> importVoList = new ArrayList<>();
Set<String> 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.setVinNo(temp);
break;
case 1:
importVo.setManufactorSettlementPrice(temp);
break;
case 2:
importVo.setFreight(temp);
break;
case 3:
importVo.setCreateTime(temp);
break;
case 4:
importVo.setRebateName(temp);
break;
case 5:
importVo.setRebateTypeValue(temp);
break;
case 6:
importVo.setEstimateRebate(temp);
break;
case 7:
importVo.setPalceGenDate(temp);
break;
case 8:
importVo.setUploadDate(temp);
break;
case 9:
importVo.setUploadMoney(temp);
break;
case 10:
importVo.setStayDetermineMoney(temp);
break;
case 11:
importVo.setMoney(temp);
break;
case 12:
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;
case 11:
word = "费用";
break;
case 12:
word = "调整说明";
break;
default:
break;
}
continue;
}
}
}
importVoList.add(importVo);
}
if (!importVoList.isEmpty()) {
for (OneExcelInfo excelInfo : importVoList) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(excelInfo.getVinNo(), excelInfo.getRebateName(), excelInfo.getPalceGenDate());
if (scmVehRebateVo == null || StringUtils.isBlank(scmVehRebateVo.getSid())) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息不存在");
break;
}
if (scmVehRebateVo.getAdjustmentState() == 1) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息已调整");
break;
}
if (StringUtils.isBlank(excelInfo.getVinNo())) {
checkWord.add("车架号不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) {
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>();
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery();
params.setVinNo(excelInfo.getVinNo());
params.setUserSid(userSid);
pq.setParams(params);
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData();
if (data.getRecords().size() == 0) {
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在");
break;
}
}
if (StringUtils.isBlank(excelInfo.getManufactorSettlementPrice())) {
checkWord.add("厂家结算价不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getManufactorSettlementPrice())) {
String manufactorSettlementPrice = excelInfo.getManufactorSettlementPrice();
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$");
boolean matches = pattern.matcher(manufactorSettlementPrice).matches();
if (!matches) {
checkWord.add("厂家结算价必须为数字");
break;
}
}
if (StringUtils.isBlank(excelInfo.getFreight())) {
checkWord.add("其中运费金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getFreight())) {
String freight = excelInfo.getFreight();
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$");
boolean matches = pattern.matcher(freight).matches();
if (!matches) {
checkWord.add("其中运费金额必须为数字");
break;
}
}
if (StringUtils.isBlank(excelInfo.getCreateTime())) {
checkWord.add("创建日期不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getCreateTime())) {
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getCreateTime()) - 25569) * 86400 * 1000));
String createTime = DateUtil.formatDate(javaDate);
String[] split = createTime.split("-");
if (split.length != 3) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式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.getVinNo() + "导入的返利类型填写不正确");
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.getPalceGenDate())) {
checkWord.add("所属年月不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) {
String palceGenDate = excelInfo.getPalceGenDate();
String[] split = palceGenDate.split("-");
if (split.length != 2) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
}
}
if (StringUtils.isBlank(excelInfo.getUploadDate())) {
checkWord.add("上传日期不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate())) {
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getUploadDate()) - 25569) * 86400 * 1000));
String uploadDate = DateUtil.formatDate(javaDate);
String[] split = uploadDate.split("-");
if (split.length != 3) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式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 ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) 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, 11, 12, 13, 14};
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);
VehRebateTwoExcelInfo importReturn = getSheetValTwo(sheet, resultCell, userSid);
if (StringUtils.isNotBlank(importReturn.getCheckInfo())) {
return rb.setMsg(importReturn.getCheckInfo());
} else {
List<TwoExcelInfo> infos = importReturn.getInfos();
for (TwoExcelInfo info : infos) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(info.getVinNo(), info.getRebateName(), info.getPalceGenDate());
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(), scmVehRebateVo.getSid());
}
return rb.success().setMsg("成功导入数据,请点击确定按钮");
}
}
private VehRebateTwoExcelInfo getSheetValTwo(Sheet sheet, int[] resultCell, String userSid) {
VehRebateTwoExcelInfo importReturn = new VehRebateTwoExcelInfo();
List<TwoExcelInfo> importVoList = new ArrayList<>();
Set<String> 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.setVinNo(temp);
break;
case 1:
importVo.setManufactorSettlementPrice(temp);
break;
case 2:
importVo.setFreight(temp);
break;
case 3:
importVo.setCreateTime(temp);
break;
case 4:
importVo.setRebateName(temp);
break;
case 5:
importVo.setRebateTypeValue(temp);
break;
case 6:
importVo.setEstimateRebate(temp);
break;
case 7:
importVo.setPalceGenDate(temp);
break;
case 8:
importVo.setUploadDate(temp);
break;
case 9:
importVo.setUploadMoney(temp);
break;
case 10:
importVo.setStayDetermineMoney(temp);
break;
case 11:
importVo.setSecondaryUploadDate(temp);
break;
case 12:
importVo.setSecondaryUploadMoney(temp);
break;
case 13:
importVo.setMoney(temp);
break;
case 14:
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;
case 11:
word = "二次上传日期";
break;
case 12:
word = "二次上传金额";
break;
case 13:
word = "费用";
break;
case 14:
word = "调整说明";
break;
default:
break;
}
continue;
}
}
}
importVoList.add(importVo);
}
if (!importVoList.isEmpty()) {
for (TwoExcelInfo excelInfo : importVoList) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectExcelInfo(excelInfo.getVinNo(), excelInfo.getRebateName(), excelInfo.getPalceGenDate());
if (scmVehRebateVo == null || StringUtils.isBlank(scmVehRebateVo.getSid())) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息不存在");
break;
}
if (scmVehRebateVo.getAdjustmentState() == 1) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利信息已调整");
break;
}
if (StringUtils.isBlank(excelInfo.getVinNo())) {
checkWord.add("车架号不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
if (excelInfo.getVinNo().length() != 17 && excelInfo.getVinNo().length() != 8) {
checkWord.add("车架号" + excelInfo.getVinNo() + "填写不正确");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getVinNo())) {
PagerQuery<BaseVehicleRebateQuery> pq = new PagerQuery<>();
BaseVehicleRebateQuery params = new BaseVehicleRebateQuery();
params.setVinNo(excelInfo.getVinNo());
params.setUserSid(userSid);
pq.setParams(params);
PagerVo<BaseVehicleRebateVo> data = baseVehicleFeign.vehicleRebateList(pq).getData();
if (data.getRecords().size() == 0) {
checkWord.add("车架号" + excelInfo.getVinNo() + "不存在");
break;
}
}
if (StringUtils.isBlank(excelInfo.getManufactorSettlementPrice())) {
checkWord.add("厂家结算价不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getManufactorSettlementPrice())) {
String manufactorSettlementPrice = excelInfo.getManufactorSettlementPrice();
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$");
boolean matches = pattern.matcher(manufactorSettlementPrice).matches();
if (!matches) {
checkWord.add("厂家结算价必须为数字");
break;
}
}
if (StringUtils.isBlank(excelInfo.getFreight())) {
checkWord.add("其中运费金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getFreight())) {
String freight = excelInfo.getFreight();
Pattern pattern = Pattern.compile("^\\d+(.\\d{1,2})?$");
boolean matches = pattern.matcher(freight).matches();
if (!matches) {
checkWord.add("其中运费金额必须为数字");
break;
}
}
if (StringUtils.isBlank(excelInfo.getCreateTime())) {
checkWord.add("创建日期不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getCreateTime())) {
String createTime = excelInfo.getCreateTime();
String[] split = createTime.split("-");
if (split.length != 3) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式yyyy-MM-dd");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的创建日期填写不正确,格式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.getVinNo() + "导入的返利类型填写不正确");
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.getPalceGenDate())) {
checkWord.add("所属年月不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getPalceGenDate())) {
String palceGenDate = excelInfo.getPalceGenDate();
String[] split = palceGenDate.split("-");
if (split.length != 2) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的所属年月填写不正确,格式yyyy-MM");
break;
}
}
if (StringUtils.isBlank(excelInfo.getUploadDate())) {
checkWord.add("上传日期不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate())) {
String uploadDate = excelInfo.getUploadDate();
String[] split = uploadDate.split("-");
if (split.length != 3) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式yyyy-MM-dd");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的上传日期填写不正确,格式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())) {
Date javaDate = new Date((long) ((Double.valueOf(excelInfo.getSecondaryUploadDate()) - 25569) * 86400 * 1000));
String secondaryUploadDate = DateUtil.formatDate(javaDate);
String[] split = secondaryUploadDate.split("-");
if (split.length != 3) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的二次上传日期填写不正确,格式yyyy-MM-dd");
break;
} else if (!isFourDigitNumber(split[0]) || !isTwoDigitNumber(split[1]) || !isTwoDigitNumber(split[2])) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的二次上传日期填写不正确,格式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 void updateAdjustmentState(Integer adjustmentState, String sid) {
baseMapper.updateAdjustmentState(adjustmentState,sid);
}
}

39
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -49,6 +49,8 @@ import com.yxt.anrui.scm.api.scmvehrebatecheckapply.flow.SubmitScmVehRebateCheck
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetail;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDetailsVo;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailDto;
import com.yxt.anrui.scm.api.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailVo;
import com.yxt.anrui.scm.biz.scmvehrebate.ScmVehRebateService;
import com.yxt.anrui.scm.biz.scmvehrebatecheckapplydetail.ScmVehrebateCheckapplydetailService;
import com.yxt.common.core.result.ResultBean;
import org.apache.commons.lang3.StringUtils;
@ -87,6 +89,8 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
@Autowired
ScmVehrebateCheckapplydetailService scmVehrebateCheckapplydetailService;
@Autowired
private ScmVehRebateService scmVehRebateService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
@ -364,10 +368,15 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
bv.setFormVariables(variables);
//流程定义id
bv.setModelId(ProcDefEnum.SCMVEHREBATECHECKAPPLY.getProDefId());
//查询单车明细
List<ScmVehrebateCheckapplydetailVo> scmVehrebateCheckapplydetailVos = scmVehrebateCheckapplydetailService.selByMainSid(dto.getSid());
if (r == 1) {
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
for (ScmVehrebateCheckapplydetailVo scmVehrebateCheckapplydetailVo : scmVehrebateCheckapplydetailVos) {
scmVehRebateService.updateAdjustmentState(2,scmVehrebateCheckapplydetailVo.getVehRebateSid());
}
return voResultBean;
}
if (r == 2) {
@ -379,6 +388,9 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
bv.setTaskDefKey(scmVehrebateCheckapply.getNodeSid());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
for (ScmVehrebateCheckapplydetailVo scmVehrebateCheckapplydetailVo : scmVehrebateCheckapplydetailVos) {
scmVehRebateService.updateAdjustmentState(2,scmVehrebateCheckapplydetailVo.getVehRebateSid());
}
return complete(bv);
}
return rb;
@ -426,6 +438,10 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
List<ScmVehrebateCheckapplydetailVo> scmVehrebateCheckapplydetailVos = scmVehrebateCheckapplydetailService.selByMainSid(bv.getBusinessSid());
for (ScmVehrebateCheckapplydetailVo scmVehrebateCheckapplydetailVo : scmVehrebateCheckapplydetailVos) {
scmVehRebateService.updateAdjustmentState(3,scmVehrebateCheckapplydetailVo.getVehRebateSid());
}
}
return rb.success().setData(resultBean.getData());
} else {
@ -491,7 +507,22 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
}
ScmVehrebateCheckapply scmVehrebateCheckapply = fetchBySid(query.getBusinessSid());
String businessTaskId = scmVehrebateCheckapply.getTaskId();
List<ScmVehrebateCheckapplydetailVo> scmVehrebateCheckapplydetailVos = scmVehrebateCheckapplydetailService.selByMainSid(query.getBusinessSid());
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(scmVehrebateCheckapply.getCreateBySid())) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo flowTaskVo = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
for (ScmVehrebateCheckapplydetailVo scmVehrebateCheckapplydetailVo : scmVehrebateCheckapplydetailVos) {
scmVehRebateService.updateAdjustmentState(1,scmVehrebateCheckapplydetailVo.getVehRebateSid());
}
return rb.success().setData(resultBean.getData());
} else {
if (businessTaskId.equals(query.getTaskId())) {
com.yxt.anrui.flowable.api.flowtask.FlowTaskVo flowTaskVo = new com.yxt.anrui.flowable.api.flowtask.FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
@ -499,10 +530,16 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
for (ScmVehrebateCheckapplydetailVo scmVehrebateCheckapplydetailVo : scmVehrebateCheckapplydetailVos) {
scmVehRebateService.updateAdjustmentState(1,scmVehrebateCheckapplydetailVo.getVehRebateSid());
}
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}

3
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailMapper.java

@ -71,4 +71,7 @@ public interface ScmVehrebateCheckapplydetailMapper extends BaseMapper<ScmVehreb
List<ScmVehrebateCheckapplydetailDetailsVo> fetchWhenDetailsVoBySid(String sid);
List<ScmVehrebateCheckapplydetailDetailsVo> fetchLastDetailsVoBySid(String sid);
@Select("select * from scm_vehrebate_checkapplydetail where mainSid = #{sid}")
List<ScmVehrebateCheckapplydetailVo> selByMainSid(String mainSid);
}

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapplydetail/ScmVehrebateCheckapplydetailService.java

@ -112,4 +112,8 @@ public class ScmVehrebateCheckapplydetailService extends MybatisBaseService<ScmV
public List<ScmVehrebateCheckapplydetailDetailsVo> fetchLastDetailsVoBySid(String sid) {
return baseMapper.fetchLastDetailsVoBySid(sid);
}
public List<ScmVehrebateCheckapplydetailVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
}

20
anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js

@ -10,6 +10,26 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 一次导出
excelListOne: function(data) {
return request({
url: '/scm/v1/scmvehrebate/excelListOne',
method: 'post',
data: data,
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: { 'Content-Type': 'application/json' }
})
},
// 二次导出
excelListTwo: function(data) {
return request({
url: '/scm/v1/scmvehrebate/excelListTwo',
method: 'post',
data: data,
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: { 'Content-Type': 'application/json' }
})
},
// 单车返利核对(待核对)列表保存修改记录
updateDate: function(data) {
return request({

154
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue

@ -48,10 +48,10 @@
<div class="listtop">
<div class="tit">单车返利待核对列表</div>
<div>
<el-button size="mini" type="success">一次导出</el-button>
<el-button size="mini" type="success">一次导入</el-button>
<el-button size="mini" type="success">二次导出</el-button>
<el-button size="mini" type="success">二次导入</el-button>
<el-button size="mini" type="success" @click="exportByFirst">一次导出</el-button>
<el-button size="mini" type="success" @click="importByFirst">一次导入</el-button>
<el-button size="mini" type="success" @click="exportBySecond">二次导出</el-button>
<el-button size="mini" type="success" @click="importBySecond">二次导入</el-button>
</div>
</div>
<div class="">
@ -274,6 +274,41 @@
</el-form>
</div>
</el-dialog>
<!-- 导入导出 -->
<el-dialog :visible.sync="dialogFileVisible" width="70%" :show-close="false">
<el-card class="box-card">
<div>
<el-upload
ref="upload"
class="upload-demo"
accept=".xls"
name="file"
:action="updateAction"
:on-success="handleSuccess"
:on-remove="handleRemove"
:file-list="fileList"
:auto-upload="false"
:multiple="false"
:limit="1"
:data="uploadData"
:headers="headers"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传</el-button>
</el-upload>
</div>
<div>
<h3>文件上传结果</h3>
<el-card class="box-card">
<div>{{ uploadResultMesssage }}</div>
</el-card>
</div>
</el-card>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="dialogFileVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
@ -378,6 +413,18 @@ export default {
secondRebate: '',
adjustmentMoney: '',
cost: ''
},
dialogFileVisible: false,
updateAction: '',
fileList: [],
uploadResultMesssage: '',
uploadData: {
sid: '',
userSid: '',
orgPath: ''
},
headers: {
token: window.sessionStorage.getItem('token')
}
}
},
@ -422,9 +469,6 @@ export default {
case 'toAdd':
this.toAdd()
break
case 'doImport':
this.doImport()
break
case 'doClose':
this.doClose()
break
@ -510,8 +554,8 @@ export default {
},
isAdjustmentInput(row) {
let money = '0'
// - - -
money = parseFloat(row.uploadMoney !== '' ? row.uploadMoney : 0) - parseFloat(row.money !== '' ? row.money : 0) - parseFloat(row.stayDetermineMoney !== '' ? row.stayDetermineMoney : 0) - parseFloat(row.estimateRebate !== '' ? row.estimateRebate : 0)
// ( + ) - - -
money = parseFloat(row.uploadMoney !== '' ? row.uploadMoney : 0) + parseFloat(row.secondaryUploadMoney !== '' ? row.secondaryUploadMoney : 0) - parseFloat(row.money !== '' ? row.money : 0) - parseFloat(row.stayDetermineMoney !== '' ? row.stayDetermineMoney : 0) - parseFloat(row.estimateRebate !== '' ? row.estimateRebate : 0)
if (row.stayDetermineMoney === '0') {
if (parseFloat(money) > 0) {
row.isAdjustment = '是'
@ -536,7 +580,7 @@ export default {
},
isAdjustmentChange(val, row) {
if (val === '是') {
row.adjustmentMoney = parseFloat(row.uploadMoney !== '' ? row.uploadMoney : 0) - parseFloat(row.money !== '' ? row.money : 0) - parseFloat(row.stayDetermineMoney !== '' ? row.stayDetermineMoney : 0) - parseFloat(row.estimateRebate !== '' ? row.estimateRebate : 0)
row.adjustmentMoney = parseFloat(row.uploadMoney !== '' ? row.uploadMoney : 0) + parseFloat(row.secondaryUploadMoney !== '' ? row.secondaryUploadMoney : 0) - parseFloat(row.money !== '' ? row.money : 0) - parseFloat(row.stayDetermineMoney !== '' ? row.stayDetermineMoney : 0) - parseFloat(row.estimateRebate !== '' ? row.estimateRebate : 0)
} else if (val === '否') {
row.adjustmentMoney = '0'
row.adjustmentRemarks = ''
@ -657,6 +701,96 @@ export default {
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
},
exportByFirst() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.excelListOne(this.listQuery.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.ms-excel'
})
const fileName = '一次导入模版' + '.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
},
importByFirst() {
this.dialogFileVisible = true
this.updateAction = process.env.VUE_APP_BASE_API + '/scm/v1/scmvehrebate/getExcelOneInfo'
this.fileList = []
this.uploadResultMesssage = ''
},
exportBySecond() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.excelListTwo(this.listQuery.params).then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.ms-excel'
})
const fileName = '二次导入模版' + '.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'nonde'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
},
importBySecond() {
this.dialogFileVisible = true
this.updateAction = process.env.VUE_APP_BASE_API + '/scm/v1/scmvehrebate/getExcelTwoInfo'
this.fileList = []
this.uploadResultMesssage = ''
},
handleRemove() {
this.uploadResultMesssage = ''
},
submitUpload() {
this.uploadData.userSid = window.sessionStorage.getItem('userSid')
this.uploadData.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.$refs.upload.submit()
},
handleSuccess(resp, file, fileList) {
const _this = this
if (resp.success) {
_this.uploadResultMesssage = resp.msg
} else {
_this.uploadResultMesssage = resp.msg
}
},
handleConfirm() {
if (this.uploadResultMesssage === '') {
this.$message({ showClose: true, type: 'error', message: '请先上传单车返利模版' })
return
} else {
this.dialogFileVisible = false
this.updateAction = ''
this.uploadData.userSid = ''
this.uploadData.orgPath = ''
this.getList()
}
}
}
}

51
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/wms/inventoryallocatebill/AppInventoryAllocateBillDetailsVoNew.java

@ -54,56 +54,27 @@ public class AppInventoryAllocateBillDetailsVoNew implements Vo {
private String sid;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("申请日期")
private Date createTime;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("制单人sid")
private String createBySid;
@ApiModelProperty("制单人姓名")
private String createByName;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("调出站sid")
private String outPlatSid;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("申请日期")
private Date createTime;
@ApiModelProperty("调出站名称")
private String outPlatName;
@ApiModelProperty("调入站sid")
private String inPlatSid;
@ApiModelProperty("调入站名称")
private String inPlatName;
@ApiModelProperty("调入分公司sid")
private String inOrgSid;
@ApiModelProperty("调入分公司sid")
private String inOrgName;
@ApiModelProperty("确认人sid")
private String confirmSid;
@ApiModelProperty("确认人姓名")
private String confirmName;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty("完成时间")
private Date finishTime;
@ApiModelProperty("创建组织")
private String createOrgName;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeId; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInsId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("任务id")
private String taskId; // 任务id
@ApiModelProperty("调拨等级(1一级站内,2分公司内,3集团内)")
private Integer grade;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("调拨单商品明细")
private List<AppInventoryAllocatebillDetailDetailsVoNew> wmsInventoryAllocateBillDetailNewList;
@ApiModelProperty("合计")
private String total;
@ApiModelProperty("流程实例的sid")
private String procInsId;
@ApiModelProperty("任务id")
private String taskId;
}

26
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/wms/inventoryallocatebill/AppInventoryAllocatebillDetailDetailsVoNew.java

@ -50,48 +50,26 @@ import java.math.BigDecimal;
@ApiModel(value = "(调拨单-明细) 视图数据详情", description = "(调拨单-明细) 视图数据详情")
public class AppInventoryAllocatebillDetailDetailsVoNew implements Vo {
private String sid;
@ApiModelProperty("主表sid")
private String billSid;
@ApiModelProperty("商品库存sid")
private String inventorySid;
@ApiModelProperty("商品ID")
private String goodsID;
@ApiModelProperty("商品spuSid")
private String goodsSpuSid;
@ApiModelProperty("商品spu名称")
private String goodsSpuName;
@ApiModelProperty("商品Skusid")
private String goodsSkuSid;
@ApiModelProperty("商品sku名称")
private String goodsSkuTitle;
@ApiModelProperty("图号")
private String goodsSkuCode;
@ApiModelProperty("规格")
private String goodsSkuOwnSpec;
@ApiModelProperty("厂家sid")
private String manufacturerSid;
@ApiModelProperty("厂家名称")
private String manufacturerName;
@ApiModelProperty("单位")
private String unit;
@ApiModelProperty("仓库sid")
private String warehouseSid;
@ApiModelProperty("仓库名称")
private String warehouseName;
@ApiModelProperty("库区sid")
private String warehouseAreaSid;
@ApiModelProperty("库区名称")
private String warehouseArea;
@ApiModelProperty("库位sid")
private String warehouseRackSid;
@ApiModelProperty("库位编码")
private String warehouseRackCode;
@ApiModelProperty("仓库-库区-库位")
private String warehouseInfo;
@ApiModelProperty("库存数量")
private BigDecimal stockCount;
@ApiModelProperty("成本价")
private BigDecimal taxPrice;
@ApiModelProperty("加价比例(%)")
private BigDecimal markUpRatio;
@ApiModelProperty("调拔单价")

9
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/wms/inventoryallocatebill/AppInventoryAllocatebillService.java

@ -30,6 +30,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.AppInventoryAllocatebillDetailDetailsVoNew;
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppDelegateQuery;
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowDto;
import com.yxt.anrui.terminal.api.wms.inventoryallocatebill.flowable.AppFlowQuery;
@ -43,6 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -63,6 +65,13 @@ public class AppInventoryAllocatebillService {
AppInventoryAllocateBillDetailsVoNew appInventoryAllocateBillDetailsVoNew = new AppInventoryAllocateBillDetailsVoNew();
BeanUtil.copyProperties(data,appInventoryAllocateBillDetailsVoNew);
appInventoryAllocateBillDetailsVoNew.setProcInsId(data.getProcInstId());
List<AppInventoryAllocatebillDetailDetailsVoNew> wmsInventoryAllocateBillDetailNewList = appInventoryAllocateBillDetailsVoNew.getWmsInventoryAllocateBillDetailNewList();
BigDecimal total = new BigDecimal("0");
for (AppInventoryAllocatebillDetailDetailsVoNew appInventoryAllocatebillDetailDetailsVoNew : wmsInventoryAllocateBillDetailNewList) {
appInventoryAllocatebillDetailDetailsVoNew.setWarehouseInfo(appInventoryAllocatebillDetailDetailsVoNew.getWarehouseName() + "-" + appInventoryAllocatebillDetailDetailsVoNew.getWarehouseArea() + "-" + appInventoryAllocatebillDetailDetailsVoNew.getWarehouseRackCode());
total = total.add(appInventoryAllocatebillDetailDetailsVoNew.getAmount());
}
appInventoryAllocateBillDetailsVoNew.setTotal(total.toString());
return rb.success().setData(appInventoryAllocateBillDetailsVoNew);
}

Loading…
Cancel
Save