Browse Source

完善售后结算申请

master
fanzongzhe0036 5 months ago
parent
commit
da15d1a659
  1. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java
  2. 28
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml
  3. 30
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  4. 14
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapplydetail/AsBillSettelApplyDetail.java
  5. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapplysitem/AsBillSettelApplySitem.java
  6. 77
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java

@ -194,4 +194,8 @@ public interface FinCollectionConfirmationMapper extends BaseMapper<FinCollectio
List<String> selectSids(String busVehSid);
IPage<AsFinCollectionConfirmationVo> asListPagess(IPage<FinCollectionConfirmation> page, @Param(Constants.WRAPPER) QueryWrapper<FinCollectionConfirmation> qw);
String selCurrentReceivableMoneyForWXD(@Param("wxdSid") String wxdSid);
void update4asWxdState(@Param("wxdSid") String wxdSid);
}

28
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml

@ -183,6 +183,11 @@
where contractNo = #{contractNo}
and VIN = #{temporaryNo}
</update>
<update id="update4asWxdState">
update yxt_4sas.as_busrepair_bill
set settleState = 1,isOutFactory = 1
where sid = #{wxdSid}
</update>
<select id="selectCollectionMoney" resultType="java.lang.String">
select sum(subscriptionMoney)
@ -503,4 +508,27 @@
</where>
order by id desc
</select>
<select id="selCurrentReceivableMoneyForWXD" resultType="java.lang.String">
select IFNULL(SUM(currentReceivableMoney),0) as currentReceivableMoneySum from
(SELECT
d.reveivableMoney - IFNULL(((
SELECT
SUM( IFNULL( se.subscriptionMoney, 0 ) )
FROM
fin_selected_receivables_detailed AS se
WHERE
se.receivablesSid = d.sid
AND se.auditState != '2' and se.auditState != '4'
)),
0
) AS currentReceivableMoney,
d.reveivableMoney,
d.sid,
d.contractSid
FROM
fin_uncollected_receivables_detailed AS d
) furd
WHERE furd.contractSid = #{wxdSid}
</select>
</mapper>

30
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -227,6 +227,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
private LoanSettleApplyFeign loanSettleApplyFeign;
@Autowired
private AsBusrepairBillFeign asBusrepairBillFeign;
private QueryWrapper<FinCollectionConfirmation> createQueryWrapper(FinCollectionConfirmationQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -1972,6 +1973,28 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
confirmation.setConfirmDate(DateUtil.today());
confirmation.setConfirmNameSid(userSid);
baseMapper.updateById(confirmation);
//----认款完毕后设置维修单状态 是否可出厂,是否结清款
List<FinSelectedReceivablesDetailedVo> receivablesDetailedVos = finSelectedReceivablesDetailedService.fetchByAuditState(sid, 3);
if (receivablesDetailedVos.size() > 0) {
receivablesDetailedVos.stream().forEach(v -> {
//已选款项明细sid
String selectSid = v.getSid();
//应收未收款项明细sid
String receivablesSid = v.getReceivablesSid();
FinUncollectedReceivablesDetailed u = finUncollectedReceivablesDetailedService.fetchBySid(receivablesSid);
if (null != u) {
String wxdSid = u.getContractSid(); //维修单sid
String yingshou = baseMapper.selCurrentReceivableMoneyForWXD(wxdSid); //查询该应收单是否有应收未收;
if (StringUtils.isNotBlank(yingshou)) {
BigDecimal ys = new BigDecimal(yingshou);
if (ys.compareTo(BigDecimal.ZERO) == 0) {
//没有应收款,修改维修单状态
baseMapper.update4asWxdState(wxdSid);
}
}
}
});
}
return rb.success().setMsg("款项确认成功");
}
@ -3398,7 +3421,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
String vinNo = "";
if (StringUtils.isNotBlank(finSelectedReceivablesDetailedVo.getVIN())) {
if (finSelectedReceivablesDetailedVo.getVIN().length() > 7) {
vinNo = finSelectedReceivablesDetailedVo.getVIN().substring(finSelectedReceivablesDetailedVo.getVIN().length() - 8);
vinNo = finSelectedReceivablesDetailedVo.getVIN().substring(finSelectedReceivablesDetailedVo.getVIN().length() - 8);
} else {
vinNo = finSelectedReceivablesDetailedVo.getVIN();
}
@ -3416,7 +3439,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
String vinAndVehMark = "";
if (StringUtils.isNotBlank(vinNo)) {
if (StringUtils.isNotBlank(vehMark)) {
vinAndVehMark = vinNo +"/" +vehMark;
vinAndVehMark = vinNo + "/" + vehMark;
} else {
vinAndVehMark = vinNo;
}
@ -5996,7 +6019,7 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isNotBlank(query.getCollectionMoney())) {
qw.eq("collectionMoney", query.getCollectionMoney());
}
qw.eq("source","03");
qw.eq("source", "03");
IPage<FinCollectionConfirmation> page = PagerUtil.queryToPage(pq);
IPage<AsFinCollectionConfirmationVo> pagging = baseMapper.asListPagess(page, qw);
PagerVo<AsFinCollectionConfirmationVo> p = PagerUtil.pageToVo(pagging, null);
@ -6004,5 +6027,4 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}

14
yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapplydetail/AsBillSettelApplyDetail.java

@ -23,29 +23,29 @@ public class AsBillSettelApplyDetail extends BaseEntity {
@ApiModelProperty("出/退库数量")
private String count;
@ApiModelProperty("销售价(元)")
private String price;
private BigDecimal price;
//折扣(0-10,0免费,10不打折)
private String discount;
private Integer discount;
/**
* 优惠金额
*/
private String discountAmount;
private BigDecimal discountAmount;
/**
* 成本
*/
private String goodsCost;
private BigDecimal goodsCost;
/**
* 利润额结算金额 - 成本
*/
private String goodsPrint;
private BigDecimal goodsPrint;
/**
* 应收金额销售价 * 数量
*/
private String goodsReceivableAmount;
private BigDecimal goodsReceivableAmount;
/**
* 结算金额应收金额 - 优惠金额
*/
private String goodsSettleAmount;
private BigDecimal goodsSettleAmount;
/**
* 图号
*/

18
yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapplysitem/AsBillSettelApplySitem.java

@ -24,15 +24,15 @@ public class AsBillSettelApplySitem extends BaseEntity {
/**
* 优惠金额
*/
private String discountAmount;
private BigDecimal discountAmount;
/**
* 工时单价
*/
private String hourPrice;
private BigDecimal hourPrice;
/**
* 工时数
*/
private String hours;
private BigDecimal hours;
/**
* 备注
*/
@ -49,22 +49,22 @@ public class AsBillSettelApplySitem extends BaseEntity {
/**
* 成本
*/
private String sitemCost;
private BigDecimal sitemCost;
/**
* 利润额结算金额 - 成本
*/
private String sitemPrint;
private BigDecimal sitemPrint;
/**
* 应收合计销售价
*/
private String sitemReceivableAmount;
private BigDecimal sitemReceivableAmount;
/**
* 结算金额应收金额 - 优惠金额
*/
private String sitemSettleAmount;
private String price;
private BigDecimal sitemSettleAmount;
private BigDecimal price;
@ApiModelProperty("折扣(0-10,0免费,10不打折)")
private String discount;
private Integer discount;
private String repairerName;
}

77
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java

@ -1103,8 +1103,27 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
if (null != settelApply.getHourAmount()) {
if (settelApply.getHourAmount().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal settleHourAmount = BigDecimal.ZERO;
BigDecimal settleGoodsAmount = BigDecimal.ZERO;
List<AsBillSettelApplySitem> sitemList = asBillSettelApplySitemService.fetchByBillSid(sid);
if (!sitemList.isEmpty()) {
for (AsBillSettelApplySitem sitem : sitemList) {
if (null != sitem.getSitemSettleAmount()) {
settleHourAmount = sitem.getSitemSettleAmount().add(settleHourAmount);
}
}
}
List<AsBillSettelApplyDetail> goodsList = asBillSettelApplyDetailService.fetchByBillSid(sid);
if (!goodsList.isEmpty()) {
for (AsBillSettelApplyDetail g : goodsList) {
if (null != g.getGoodsSettleAmount()) {
settleGoodsAmount = g.getGoodsSettleAmount().add(settleGoodsAmount);
}
}
}
if (settleHourAmount.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
@ -1125,15 +1144,15 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费");
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settelApply.getHourAmount()).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settelApply.getHourAmount()).toString());
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(settleHourAmount.toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney(settleHourAmount.toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
if (null != settelApply.getGoodsAmount()) {
if (settelApply.getGoodsAmount().compareTo(BigDecimal.ZERO) > 0) {
if (settleGoodsAmount.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
@ -1154,13 +1173,13 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("材料费");
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settelApply.getGoodsAmount()).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settelApply.getGoodsAmount()).toString());
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(settleGoodsAmount.toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney(settleGoodsAmount.toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
if (settelApply.getAddAmount().compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
@ -1467,8 +1486,26 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
billNode.setNodeCode("6");
asBusrepairBillNodeService.insert(billNode);
}
if (null != settelApply.getHourAmount()) {
if (settelApply.getHourAmount().compareTo(BigDecimal.ZERO) > 0) {
BigDecimal settleHourAmount = BigDecimal.ZERO;
BigDecimal settleGoodsAmount = BigDecimal.ZERO;
List<AsBillSettelApplySitem> sitemList = asBillSettelApplySitemService.fetchByBillSid(businessSid);
if (!sitemList.isEmpty()) {
for (AsBillSettelApplySitem sitem : sitemList) {
if (null != sitem.getSitemSettleAmount()) {
settleHourAmount = sitem.getSitemSettleAmount().add(settleHourAmount);
}
}
}
List<AsBillSettelApplyDetail> goodsList = asBillSettelApplyDetailService.fetchByBillSid(businessSid);
if (!goodsList.isEmpty()) {
for (AsBillSettelApplyDetail g : goodsList) {
if (null != g.getGoodsSettleAmount()) {
settleGoodsAmount = g.getGoodsSettleAmount().add(settleGoodsAmount);
}
}
}
if (settleHourAmount.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
@ -1489,15 +1526,15 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("工时费");
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settelApply.getHourAmount()).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settelApply.getHourAmount()).toString());
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(settleHourAmount.toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney(settleHourAmount.toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
if (null != settelApply.getGoodsAmount()) {
if (settelApply.getGoodsAmount().compareTo(BigDecimal.ZERO) > 0) {
if (settleGoodsAmount.compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());
finUncollectedReceivablesDetailedDto.setCreateBySid(asBusrepairBill.getCreateBySid());
@ -1518,13 +1555,13 @@ public class AsBillSettelApplyService extends MybatisBaseService<AsBillSettelApp
finUncollectedReceivablesDetailedDto.setUseOrgSid(asBusrepairBill.getUseOrgSid());
finUncollectedReceivablesDetailedDto.setOrgSidPath(asBusrepairBill.getOrgSidPath());
finUncollectedReceivablesDetailedDto.setReceivablesName("材料费");
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney((settelApply.getGoodsAmount()).toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney((settelApply.getGoodsAmount()).toString());
finUncollectedReceivablesDetailedDto.setCurrentReceivableMoney(settleGoodsAmount.toString());
finUncollectedReceivablesDetailedDto.setReveivableMoney(settleGoodsAmount.toString());
finUncollectedReceivablesDetailedDto.setUseOrgName(asBusrepairBill.getUseOrgName());
finUncollectedReceivablesDetailedDto.setKxState("01");
finUncollectedReceivablesDetailedFeign.saveOrUpdate(finUncollectedReceivablesDetailedDto);
}
}
if (settelApply.getAddAmount().compareTo(BigDecimal.ZERO) > 0) {
FinUncollectedReceivablesDetailedDto finUncollectedReceivablesDetailedDto = new FinUncollectedReceivablesDetailedDto();
finUncollectedReceivablesDetailedDto.setCreateByName(asBusrepairBill.getCreateByName());

Loading…
Cancel
Save