Browse Source

Merge remote-tracking branch 'origin/master'

master
ligaode 5 months ago
parent
commit
3a01c5ebfb
  1. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java
  2. 1
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java
  3. 8
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java
  4. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml
  5. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java
  6. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml
  7. 56
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  8. BIN
      anrui-scm/anrui-scm-biz/src/main/resources/static/单车返利管理.xls
  9. 18
      anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue
  10. 19
      anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementInfo.vue
  11. 17
      anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/varianceDetail.vue
  12. 19
      anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementDaiBan.vue
  13. 19
      anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue
  14. 19
      anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementYiBan.vue
  15. 9
      yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java
  16. 31
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java
  17. 6
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java
  18. 35
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java
  19. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java
  20. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java
  21. 4
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java
  22. 80
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java
  23. 80
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java
  24. 58
      yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java

1
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustapply/AdjustVehListVo.java

@ -46,5 +46,6 @@ public class AdjustVehListVo {
private String nowDiffAmount; // 当前差异金额
@ApiModelProperty("单车返利管理sid")
private String rebateSid; // 单车返利管理sid
private String salesOrderSid; // 销售订单sid
}

1
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmfinanceadjustdetails/ScmFinanceAdjustDetails.java

@ -90,5 +90,6 @@ public class ScmFinanceAdjustDetails extends BaseEntity {
private BigDecimal nowDiffAmount; // 当前差异金额
@ApiModelProperty("单车返利管理sid")
private String rebateSid; // 单车返利管理sid
private String salesOrderSid; // 销售订单sid
}

8
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelInfo.java

@ -3,8 +3,6 @@ package com.yxt.anrui.scm.api.scmvehrebate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ScmVehRebateExcelInfo {
@ -14,10 +12,12 @@ public class ScmVehRebateExcelInfo {
private String rebateTypeValue;
@ApiModelProperty("返利名称")
private String rebateName;
@ApiModelProperty("计算方式")
private String calculationModeValue;
@ApiModelProperty("计算标准")
private String calculationStandard;
@ApiModelProperty("返利金额")
private String estimateRebate;
// @ApiModelProperty("返利金额")
// private String estimateRebate;
@ApiModelProperty("其中待支付费用")
private String expectTreatCost;
@ApiModelProperty("其中抵顶费用")

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmfinanceadjustapply/ScmFinanceAdjustApplyMapper.xml

@ -42,7 +42,7 @@
</select>
<select id="getAdjustVehList"
resultType="com.yxt.anrui.scm.api.scmfinanceadjustapply.AdjustVehListVo">
SELECT n.*,bo.contractNo,bo.customerSid,bo.customerName,
SELECT n.*,bo.contractNo,bo.customerSid,bo.customerName,bo.sid salesOrderSid,
CASE
WHEN n.alreadyMoney = 0 THEN'未调整'
WHEN n.alreadyMoney != 0 AND n.nowDiffAmount != 0 THEN '部分调整'
@ -79,7 +79,7 @@
<select id="finAdjustList"
resultType="com.yxt.anrui.scm.api.scmfinanceadjustapply.AdjustVehListVo">
SELECT n.*,
bo.contractNo,bo.customerSid,bo.customerName,
bo.contractNo,bo.customerSid,bo.customerName,bo.sid salesOrderSid,
CASE
WHEN n.alreadyMoney = 0 THEN'未调整'
WHEN n.alreadyMoney != 0 AND n.nowDiffAmount != 0 THEN '部分调整'

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

@ -69,7 +69,7 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
void updateTwoExcelInfo(@Param("secondaryUploadDate") String secondaryUploadDate, @Param("secondaryUploadMoney") String secondaryUploadMoney, @Param("secondTreatCost") String secondTreatCost, @Param("secondSuppCost") String secondSuppCost, @Param("secondSuppRemark") String secondSuppRemark, @Param("adjustmentRemarks") String adjustmentRemarks, @Param("isAdjustment") String isAdjustment, @Param("adjustmentMoney") String adjustmentMoney, @Param("diffAmount") String diffAmount, @Param("sid") String sid);
ScmVehRebateVo selectByVinNoAndOrgSid(@Param("vinNo") String vinNo, @Param("rebateTypeValue") String rebateTypeValue, @Param("rebateName") String rebateName, @Param("palceGenDate") String palceGenDate, @Param("estimateRebate") String estimateRebate, @Param("useOrgSid") String useOrgSid);
ScmVehRebateVo selectByVinNoAndOrgSid(@Param("vinNo") String vinNo, @Param("rebateTypeValue") String rebateTypeValue, @Param("rebateName") String rebateName, @Param("palceGenDate") String palceGenDate, @Param("calculationModeValue") String calculationModeValue, @Param("useOrgSid") String useOrgSid);
@Update("update scm_veh_rebate set adjustmentState = #{adjustmentState} where sid = #{vehRebateSid}")
void updateAdjustmentState(@Param("vehRebateSid") String vehRebateSid, @Param("adjustmentState") int adjustmentState);

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

@ -46,7 +46,7 @@
AND rebateTypeValue = #{rebateTypeValue}
AND rebateName = #{rebateName}
AND palceGenDate = #{palceGenDate}
AND estimateRebate = #{estimateRebate}
AND calculationModeValue = #{calculationModeValue}
AND createOrgSid = #{useOrgSid}
</select>

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

@ -26,7 +26,6 @@
package com.yxt.anrui.scm.biz.scmvehrebate;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@ -39,16 +38,13 @@ import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.PrivilegeQuery;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.scm.api.scmcollectionrebate.ScmCollectionRebateVo;
import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateExcelVo;
import com.yxt.anrui.scm.api.scmvehrebate.*;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
@ -661,7 +657,15 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
scmVehRebate.setRebateTypeValue(info.getRebateTypeValue());
scmVehRebate.setRebateName(info.getRebateName());
scmVehRebate.setCalculationStandard(info.getCalculationStandard());
scmVehRebate.setEstimateRebate(info.getEstimateRebate());
if (StringUtils.isNotBlank(info.getCalculationModeValue())) {
String calculationModeValue = info.getCalculationModeValue();
if (calculationModeValue.equals("比例")) {
scmVehRebate.setCalculationModeKey("001");
} else {
scmVehRebate.setCalculationModeKey("002");
}
scmVehRebate.setCalculationModeValue(info.getCalculationModeValue());
}
scmVehRebate.setPalceGenDate(info.getPalceGenDate());
scmVehRebate.setExpectTreatCost(new BigDecimal(info.getExpectTreatCost()));
scmVehRebate.setExpectSuppCost(new BigDecimal(info.getExpectSuppCost()));
@ -716,10 +720,10 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
importVo.setRebateName(temp);
break;
case 3:
importVo.setCalculationStandard(temp);
importVo.setCalculationModeValue(temp);
break;
case 4:
importVo.setEstimateRebate(temp);
importVo.setCalculationStandard(temp);
break;
case 5:
importVo.setExpectTreatCost(temp);
@ -757,10 +761,10 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
word = "返利名称";
break;
case 3:
word = "计算标准";
word = "计算方式(固定金额、比例)";
break;
case 4:
word = "返利金额";
word = "计算标准";
break;
case 5:
word = "其中待支付费用";
@ -788,7 +792,7 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
}
if (!importVoList.isEmpty()) {
for (ScmVehRebateExcelInfo excelInfo : importVoList) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(excelInfo.getVinNo(), excelInfo.getRebateTypeValue(), excelInfo.getRebateName(), excelInfo.getPalceGenDate(), excelInfo.getEstimateRebate(), useOrgSid);
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(excelInfo.getVinNo(), excelInfo.getRebateTypeValue(), excelInfo.getRebateName(), excelInfo.getPalceGenDate(), excelInfo.getCalculationModeValue(), useOrgSid);
if (scmVehRebateVo != null) {
checkWord.add("车架号为" + excelInfo.getVinNo() + "的单车返利信息已存在");
break;
@ -830,23 +834,27 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("返利名称不能为空");
break;
}
if (StringUtils.isBlank(excelInfo.getCalculationStandard())) {
checkWord.add("计算标准不能为空");
break;
}
if (StringUtils.isBlank(excelInfo.getEstimateRebate())) {
checkWord.add("返利金额不能为空");
if (StringUtils.isBlank(excelInfo.getCalculationModeValue())) {
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("返利金额必须为数字");
if (StringUtils.isBlank(excelInfo.getCalculationStandard())) {
checkWord.add("计算标准不能为空");
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.getExpectTreatCost())) {
checkWord.add("其中待支付费用不能为空");
break;

BIN
anrui-scm/anrui-scm-biz/src/main/resources/static/单车返利管理.xls

Binary file not shown.

18
anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementAdd.vue

@ -80,7 +80,11 @@
<el-table-column prop="vehModelName" label="车型" align="center" min-width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="140" />
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170">
<template slot-scope="scope">
<span class="bluezi" @click="lookSales(scope.row.salesOrderSid)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="订单贴息金额" align="center" width="150" />
<el-table-column prop="uploadMoney" label="上传贴息金额" align="center" width="150" />
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
@ -114,7 +118,10 @@
</el-form>
</div>
</div>
<!-- 选择金融差异调整 -->
<chooseAdjustment v-show="viewState == 2" ref="divChoose" @backData="backData" @doback="resetState" />
<!-- 查看销售订单详情 -->
<saleOrder v-show="viewState == 3" ref="divSales" @doback="resetState" />
</div>
</template>
@ -123,12 +130,14 @@ import req from '@/api/financialDiscount/financialDiscount'
import { getOrgSidByPath, fetchBySid, selectSysUserList, typeValues, selectStaffListByUseOrgSid } from '@/api/cheliang/dictcommons'
import uploadImg from '@/components/uploadFile/uploadImg'
import chooseAdjustment from './relation/chooseAdjustment'
import saleOrder from '@/components/publicPage/saleOrder'
export default {
name: 'DifferenceManagementAdd',
components: {
uploadImg,
chooseAdjustment
chooseAdjustment,
saleOrder
},
data() {
return {
@ -299,6 +308,7 @@ export default {
customerSid: e.customerSid,
customerName: e.customerName,
contractNo: e.contractNo,
salesOrderSid: e.salesOrderSid,
estimateRebate: e.estimateRebate,
uploadMoney: e.uploadMoney,
adjustmentMoney: e.adjustmentMoney,
@ -312,6 +322,10 @@ export default {
handleDelete(index) {
this.formobj.list.splice(index, 1)
},
lookSales(sid) {
this.viewState = 3
this.$refs['divSales'].showInfo(sid)
},
resetState() {
this.viewState = 1
},

19
anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/differenceManagementInfo.vue

@ -58,7 +58,11 @@
<el-table-column prop="vehModelName" label="车型" align="center" min-width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="140" />
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170">
<template slot-scope="scope">
<span class="bluezi" @click="lookSales(scope.row.salesOrderSid)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="订单贴息金额" align="center" width="150" />
<el-table-column prop="uploadMoney" label="上传贴息金额" align="center" width="150" />
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
@ -82,14 +86,20 @@
</el-form>
</div>
</div>
<!-- 查看销售订单详情 -->
<saleOrder v-show="viewState == 3" ref="divSales" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/financialDiscount/financialDiscount'
import saleOrder from '@/components/publicPage/saleOrder'
export default {
name: 'DifferenceManagementInfo',
components: {
saleOrder
},
data() {
return {
viewTitle: '',
@ -140,6 +150,13 @@ export default {
}
})
},
lookSales(sid) {
this.viewState = 3
this.$refs['divSales'].showInfo(sid)
},
resetState() {
this.viewState = 1
},
getSummaries(param) {
const { columns, data } = param
const sums = []

17
anrui-scm/anrui-scm-ui/src/views/financialDiscount/differenceManagement/varianceDetail.vue

@ -74,6 +74,11 @@
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
<el-table-column prop="nowAdjustmentMoney" label="本次调整" align="center" width="100" />
<el-table-column prop="nowDiffAmount" label="本次调整后差额" align="center" width="140" />
<el-table-column prop="billNo" label="审批编号" align="center" width="180">
<template slot-scope="scope">
<span class="bluezi" @click="lookInfo(scope.row.applySid)">{{ scope.row.billNo }}</span>
</template>
</el-table-column>
<el-table-column prop="adjustTime" label="调整时间" align="center" width="100" />
<el-table-column prop="adjustWay" label="调整方式" align="center" width="100" />
<el-table-column prop="remarks" label="调整说明" align="center" min-width="200" />
@ -85,6 +90,7 @@
</div>
</div>
</div>
<differenceManagementInfo v-show="viewState == 2" ref="divInfo" @doback="resetState" />
</div>
</template>
@ -92,12 +98,14 @@
import req from '@/api/financialDiscount/financialDiscount'
import Pagination from '@/components/pagination'
import ButtonBar from '@/components/ButtonBar'
import differenceManagementInfo from './differenceManagementInfo'
export default {
name: 'VarianceDetail',
components: {
Pagination,
ButtonBar
ButtonBar,
differenceManagementInfo
},
data() {
return {
@ -242,6 +250,13 @@ export default {
}
this.getList()
},
lookInfo(value) {
this.viewState = 2
this.$refs['divInfo'].showInfo({ sid: value })
},
resetState() {
this.viewState = 1
},
handleClick() {
this.$parent.resetState()
this.$parent.handleReset()

19
anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementDaiBan.vue

@ -61,7 +61,11 @@
<el-table-column prop="vehModelName" label="车型" align="center" min-width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="140" />
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170">
<template slot-scope="scope">
<span class="bluezi" @click="lookSales(scope.row.salesOrderSid)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="订单贴息金额" align="center" width="150" />
<el-table-column prop="uploadMoney" label="上传贴息金额" align="center" width="150" />
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
@ -85,6 +89,8 @@
</el-form>
</div>
</div>
<!-- 查看销售订单详情 -->
<saleOrder v-show="viewState == 3" ref="divSales" @doback="resetState" />
<!-- 选择待办人 的弹出框-->
<el-dialog title="填写审批意见" :visible.sync="nodeDialogVisible" width="80%">
<el-form class="formadd" >
@ -129,9 +135,13 @@
<script>
import req from '@/api/financialDiscount/financialDiscount'
import { selectStaffListss } from '@/api/Common/dictcommons'
import saleOrder from '../../workFlow/publicPage/xiaoshoudingdanInfo'
export default {
name: 'DifferenceManagementDaiBan',
components: {
saleOrder
},
data() {
return {
viewTitle: '',
@ -251,6 +261,13 @@ export default {
}
})
},
lookSales(sid) {
this.viewState = 3
this.$refs['divSales'].showInfo(sid)
},
resetState() {
this.viewState = 1
},
getSummaries(param) {
const { columns, data } = param
const sums = []

19
anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementEdit.vue

@ -79,7 +79,11 @@
<el-table-column prop="vehModelName" label="车型" align="center" min-width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="140" />
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170">
<template slot-scope="scope">
<span class="bluezi" @click="lookSales(scope.row.salesOrderSid)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="订单贴息金额" align="center" width="150" />
<el-table-column prop="uploadMoney" label="上传贴息金额" align="center" width="150" />
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
@ -114,20 +118,24 @@
</div>
</div>
<chooseAdjustment v-show="viewState == 2" ref="divChoose" @backData="backData" @doback="resetState" />
<!-- 查看销售订单详情 -->
<saleOrder v-show="viewState == 3" ref="divSales" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/financialDiscount/financialDiscount'
import { getOrgSidByPath, fetchBySid, selectSysUserList, typeValues, selectStaffListByUseOrgSid } from '@/api/cheliang/dictcommons'
import { selectSysUserList, typeValues, selectStaffListByUseOrgSid } from '@/api/cheliang/dictcommons'
import uploadImg from '@/components/uploadFile/uploadImg'
import chooseAdjustment from './relation/chooseAdjustment'
import saleOrder from '../../workFlow/publicPage/xiaoshoudingdanInfo'
export default {
name: 'DifferenceManagementEdit',
components: {
uploadImg,
chooseAdjustment
chooseAdjustment,
saleOrder
},
data() {
return {
@ -282,6 +290,7 @@ export default {
customerSid: e.customerSid,
customerName: e.customerName,
contractNo: e.contractNo,
salesOrderSid: e.salesOrderSid,
estimateRebate: e.estimateRebate,
uploadMoney: e.uploadMoney,
adjustmentMoney: e.adjustmentMoney,
@ -295,6 +304,10 @@ export default {
handleDelete(index) {
this.formobj.list.splice(index, 1)
},
lookSales(sid) {
this.viewState = 3
this.$refs['divSales'].showInfo(sid)
},
resetState() {
this.viewState = 1
},

19
anrui-scm/anrui-scm-ui/src/views/workFlow/chayitiaozhengFlow/differenceManagementYiBan.vue

@ -58,7 +58,11 @@
<el-table-column prop="vehModelName" label="车型" align="center" min-width="160" />
<el-table-column prop="vinNo" label="车架号" align="center" width="140" />
<el-table-column prop="customerName" label="客户名称" align="center" width="120" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170" />
<el-table-column prop="contractNo" label="合同编号" align="center" width="170">
<template slot-scope="scope">
<span class="bluezi" @click="lookSales(scope.row.salesOrderSid)">{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column prop="estimateRebate" label="订单贴息金额" align="center" width="150" />
<el-table-column prop="uploadMoney" label="上传贴息金额" align="center" width="150" />
<el-table-column prop="adjustmentMoney" label="差额" align="center" width="100" />
@ -82,14 +86,20 @@
</el-form>
</div>
</div>
<!-- 查看销售订单详情 -->
<saleOrder v-show="viewState == 3" ref="divSales" @doback="resetState" />
</div>
</template>
<script>
import req from '@/api/financialDiscount/financialDiscount'
import saleOrder from '../../workFlow/publicPage/xiaoshoudingdanInfo'
export default {
name: 'DifferenceManagementYiBan',
components: {
saleOrder
},
data() {
return {
viewTitle: '',
@ -175,6 +185,13 @@ export default {
}
})
},
lookSales(sid) {
this.viewState = 3
this.$refs['divSales'].showInfo(sid)
},
resetState() {
this.viewState = 1
},
getSummaries(param) {
const { columns, data } = param
const sums = []

9
yxt-oa/src/main/java/com/yxt/anrui/oa/api/OaMendApplyRest.java

@ -25,16 +25,24 @@
*********************************************************/
package com.yxt.anrui.oa.api;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.oa.biz.oaform.flowable.CompleteDto;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeQuery;
import com.yxt.anrui.oa.biz.oaform.flowable.NodeVo;
import com.yxt.anrui.oa.biz.oaform.flowable.TaskQuery;
import com.yxt.anrui.oa.biz.oamendapply.*;
import com.yxt.anrui.oa.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* Project: yxt-oa(补卡申请) <br/>
@ -93,5 +101,4 @@ public class OaMendApplyRest {
return oaMendApplyService.submit(dto);
}
}

31
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaappendix/OaAppendixService.java

@ -25,14 +25,20 @@
*********************************************************/
package com.yxt.anrui.oa.biz.oaappendix;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
@Service
public class OaAppendixService extends MybatisBaseService<OaAppendixMapper, OaAppendix> {
@Autowired
private FileUploadComponent fileUploadComponent;
public List<OaAppendix> fetchByLinkSid(String linkSid) {
return baseMapper.fetchByLinkSid(linkSid);
}
@ -46,4 +52,29 @@ public class OaAppendixService extends MybatisBaseService<OaAppendixMapper, OaAp
}
}
public void saveFile(String sid, List<String> files, String attachType) {
List<OaAppendix> oaAppendixList = new ArrayList<>();
if (!files.isEmpty()) {
for (String file : files) {
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
OaAppendix oaAppendix = new OaAppendix();
oaAppendix.setLinkSid(sid);
oaAppendix.setAttachType(attachType);
oaAppendix.setFilePath(filePath);
oaAppendixList.add(oaAppendix);
}
}
saveOrUpdateFile(sid, oaAppendixList);
}
public List<String> selectByLinkSid(String sid) {
List<OaAppendix> fileList = fetchByLinkSid(sid);
List<String> files = new ArrayList<>();
for (OaAppendix oaAppendix : fileList) {
String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath();
files.add(url);
}
return files;
}
}

6
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormDto.java

@ -13,8 +13,12 @@ import java.util.Date;
**/
@Data
public class OaFormDto {
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("组织机构全路径")
private String orgSidPath;
@ApiModelProperty("申请单编号的字母")
private String billNo;
@ApiModelProperty("sid")
private String sid;
}

35
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/OaFormService.java

@ -79,9 +79,16 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.success().setData(sid);
}*/
/**
* 保存oaform表单
*
* @param dto
* @return
*/
public ResultBean<String> saveOaForm(OaFormDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
OaForm oaForm = new OaForm();
BeanUtil.copyProperties(dto, oaForm, "billNo", "orgSidPath");
OrgVo orgVo = sysStaffOrgFeign.getOrgByPath(dto.getOrgSidPath()).getData();
BeanUtil.copyProperties(orgVo, oaForm);
// 生成单据编号
@ -92,7 +99,6 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
int i = baseMapper.selectNum(bill);
String billNo = Rule.getBillNo(bill, i);
oaForm.setBillNo(billNo);
oaForm.setCreateBySid(dto.getCreateBySid());
oaForm.setCreateOrgSid(oaForm.getUseOrgSid());
oaForm.setCreateOrgName(oaForm.getUseOrgName());
@ -127,6 +133,12 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
return rb.success();
}
/**
* 更新oaform表单的流程相关字段
*
* @param oaFormFlowDto
* @return
*/
public int updateFlow(OaFormFlowDto oaFormFlowDto) {
OaForm oaForm = fetchBySid(oaFormFlowDto.getSid());
if (StringUtils.isBlank(oaForm.getFormType())) {
@ -140,11 +152,11 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String formSid = bv.getFormVariables().get("formSid").toString();
String businessSid = bv.getBusinessSid();
OaForm oaForm = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
//网关
OaForm oaForm = fetchBySid(formSid);
//添加网关
Map<String, Object> variables = bv.getFormVariables();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
@ -159,7 +171,8 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
}
UpdateFlowFieldVo ufVo = resultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid");
oaFormFlowDto.setSid(formSid);
updateFlow(oaFormFlowDto);
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
@ -403,12 +416,16 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
public ResultBean submit(BusinessVariables bv) {
String businessSid = bv.getBusinessSid();
String formSid = bv.getFormVariables().get("formSid").toString();
//启动流程
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
UpdateFlowFieldVo ufVo = voResultBean.getData();
OaFormFlowDto oaFormFlowDto = new OaFormFlowDto();
BeanUtil.copyProperties(ufVo, oaFormFlowDto);
BeanUtil.copyProperties(ufVo, oaFormFlowDto, "sid");
oaFormFlowDto.setSid(formSid);
updateFlow(oaFormFlowDto);
OaForm oaForm = fetchBySid(bv.getBusinessSid());
OaForm oaForm = fetchBySid(bv.getFormVariables().get("formSid").toString());
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -422,7 +439,7 @@ public class OaFormService extends MybatisBaseService<OaFormMapper, OaForm> {
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap((Map<String, Object>) bv.getFormVariables().get("app"));
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName(oaForm.getFormType());
messageFlowableQuery.setMsgContent(oaForm.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle(oaForm.getFormType());

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/CompleteDto.java

@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.HashMap;
import java.util.Map;
/**
* @description:
@ -34,4 +36,6 @@ public class CompleteDto implements Dto {
private String businessSid;
private String orgPath;
private Map<String, Object> formVariables = new HashMap<>();
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/NodeQuery.java

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.HashMap;
import java.util.Map;
/**
* @description:
@ -18,4 +20,6 @@ public class NodeQuery {
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
private Map<String, Object> formVariables = new HashMap<>();
}

4
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oaform/flowable/TaskQuery.java

@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.util.HashMap;
import java.util.Map;
/**
* @description:
@ -43,4 +45,6 @@ public class TaskQuery {
@ApiModelProperty("流程实例Id(移动)")
private String procInsId;
private Map<String, Object> formVariables = new HashMap<>();
}

80
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyDetailsVo.java

@ -1,80 +0,0 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.yxt.common.core.vo.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据详情", description = "补卡申请 视图数据详情")
public class OaMendApplyDetailsVo implements Vo {
private static final long serialVersionUID = -8377279007782913681L;
private String sid;
@ApiModelProperty("补卡原因")
private String remarks;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("申请人")
private String createByName;
private String createBySid;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("补卡时间")
private String time;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("图片")
private List<String> files = new ArrayList<>();
}

80
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyInitVo.java

@ -1,80 +0,0 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.oa.biz.oamendapply;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* Project: yxt-oa(补卡申请) <br/>
* File: OaMendApplyVo.java <br/>
* Class: com.yxt.anrui.oa.api.oamendapply.OaMendApplyVo <br/>
* Description: 补卡申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-12-04 14:14:34 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "补卡申请 视图数据对象", description = "补卡申请 视图数据对象")
public class OaMendApplyInitVo implements Vo {
private static final long serialVersionUID = -2109900644174208483L;
private String sid; // sid
private String createBySid;
private String orgPath;
@ApiModelProperty("单据编号")
private String billNo;
@ApiModelProperty("申请人")
private String createByName;
@ApiModelProperty("申请部门sid")
private String deptSid;
@ApiModelProperty("申请部门名称")
private String deptName;
@ApiModelProperty("补卡时间")
private String time;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("实例id")
private String procInstId;
@ApiModelProperty("流程定义id")
private String procDefId;
@ApiModelProperty("任务id")
private String taskId;
}

58
yxt-oa/src/main/java/com/yxt/anrui/oa/biz/oamendapply/OaMendApplyService.java

@ -41,12 +41,8 @@ import com.yxt.anrui.oa.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.oa.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.oa.feign.flowable.flow2.FlowFeign;
import com.yxt.anrui.oa.feign.message.MessageFeign;
import com.yxt.anrui.oa.feign.message.MessageFlowVo;
import com.yxt.anrui.oa.feign.message.MessageFlowableQuery;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.oa.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.oa.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.oa.feign.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
@ -69,12 +65,6 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@Autowired
private OaAppendixService oaAppendixService;
@Autowired
private OaFormService oaFormService;
@ -145,6 +135,12 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
return dtoSid;
}*/
/**
* 新增修改保存
*
* @param dto
* @return
*/
@Transactional
public ResultBean<String> saveOrUpdateDto(OaMendApplyDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
@ -157,7 +153,7 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
BeanUtil.copyProperties(dto, entity, "sid");
OaFormDto oaFormDto = new OaFormDto();
BeanUtil.copyProperties(dto, oaFormDto, "sid");
BeanUtil.copyProperties(dto, oaFormDto);
oaFormDto.setBillNo("BKSQ");
ResultBean<String> resultBean = oaFormService.saveOaForm(oaFormDto);
@ -169,7 +165,7 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
baseMapper.insert(entity);
// 处理附件
saveFiles(sid, files);
saveFiles(sid, files, OaFileEnum.OAMENDAPPLY.getAttachType());
sid = entity.getSid();
} else {
// 更新操作
@ -177,39 +173,21 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
// 处理附件
saveFiles(sid, files);
saveFiles(sid, files, OaFileEnum.OAMENDAPPLY.getAttachType());
}
return rb.success().setData(sid);
}
// 保存文件
private void saveFiles(String sid, List<String> files) {
private void saveFiles(String sid, List<String> files, String attachType) {
files.removeAll(Collections.singleton(null));
List<OaAppendix> oaAppendixList = new ArrayList<>();
if(!files.isEmpty()){
for (String file : files) {
String filePath = file.replace(fileUploadComponent.getUrlPrefix(), "");
OaAppendix oaAppendix = new OaAppendix();
oaAppendix.setLinkSid(sid);
oaAppendix.setAttachType(OaFileEnum.OAMENDAPPLY.getAttachType());
oaAppendix.setFilePath(filePath);
oaAppendixList.add(oaAppendix);
}
}
oaAppendixService.saveOrUpdateFile(sid, oaAppendixList);
oaAppendixService.saveFile(sid, files, attachType);
}
public OaMendApplyVo fetchDetailsVoBySid(String sid) {
OaMendApplyVo vo = baseMapper.fetchDetailsVoBySid(sid);
List<OaAppendix> oaAppendices = oaAppendixService.fetchByLinkSid(sid);
List<String> files = new ArrayList<>();
for (OaAppendix oaAppendix : oaAppendices) {
String url = fileUploadComponent.getUrlPrefix() + oaAppendix.getFilePath();
files.add(url);
}
List<String> files = oaAppendixService.selectByLinkSid(sid);
vo.setFiles(files);
return vo;
}
@ -233,25 +211,22 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
variables.put("formSid", oaMendApply.getFormSid());
//用户的部门全路径sid
SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
bv.setOrgSidPath(deptVo.getOrgSidPath());
//业务sid
// bv.setBusinessSid(businessSid);
bv.setBusinessSid(oaMendApply.getFormSid());
//用户sid
bv.setBusinessSid(businessSid);
bv.setUserSid(oaMendApply.getCreateBySid());
//若app移动端有此功能,则传递appMap参数
Map<String, Object> appMap = new HashMap<>();
// appMap.put("sid", businessSid);
appMap.put("sid", oaMendApply.getFormSid());
appMap.put("sid", businessSid);
//需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。
variables.put("app", appMap);
//网关
//流程定义id
bv.setModelId(ProcDefEnum.OAMENDAPPLY.getProDefId());
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaMendApply.getOaForm().getDeptSid()).getData();
SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(oaForm.getDeptSid()).getData();
if (StringUtils.isBlank(organizationVo.getManagerSid())) {
return rb.setMsg("请先设置该部门的主管人员");
}
@ -269,6 +244,7 @@ public class OaMendApplyService extends MybatisBaseService<OaMendApplyMapper, Oa
bv.setTaskDefKey(oaMendApply.getOaForm().getNodeId());
bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
bv.setInstanceId(dto.getInstanceId());
bv.getFormVariables().put("formSid", oaMendApply.getFormSid());
return oaFormService.complete(bv);
}
return rb;

Loading…
Cancel
Save