Browse Source

维修单反结算申请

master
fanzongzhe0036 5 months ago
parent
commit
58db58c9a6
  1. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java
  2. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java
  3. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java
  4. 17
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java
  5. 29
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java
  6. 48
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillQuery.java
  7. 49
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillVo.java
  8. 3
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java
  9. 3
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java
  10. 7
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml
  11. 385
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java
  12. 976
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java
  13. 9
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  14. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.java
  15. 19
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml
  16. 24
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java
  17. 747
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java
  18. 1
      yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java
  19. 20
      yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/privilege/PrivilegeVo.java
  20. 6
      yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java
  21. 2
      yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java
  22. 26
      yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsCompleteDto.java
  23. 9
      yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java
  24. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java
  25. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsCompleteDto.java
  26. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java
  27. 79
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java
  28. 15
      yxt-sms-biz/src/main/resources/application.yml

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbillsettelapply/AsBillSettelApplyDetailsVo.java

@ -55,6 +55,9 @@ import java.util.List;
@ApiModel(value = "结算申请 视图数据详情", description = "结算申请 视图数据详情")
public class AsBillSettelApplyDetailsVo implements Vo {
private String settleTime;
private String actualAmount;
/**
* 附加费
*/
@ -252,4 +255,5 @@ public class AsBillSettelApplyDetailsVo implements Vo {
private String outSid; //外出费sid
private String subsidySid; //厂家补助SID
private String rescueSid; //施救费sid
private String partsSellers; //销售人员
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBill.java

@ -169,4 +169,6 @@ public class AsBusrepairBill extends BaseEntity {
private Date reportFirstDate;
@ApiModelProperty("结算金额")
private BigDecimal settleAmount;
@ApiModelProperty("是否结清款项(1是,0否)")
private Integer settleState;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBillDetailsVo.java

@ -181,4 +181,6 @@ public class AsBusrepairBillDetailsVo implements Vo {
private String shClaimTypeKey;
@ApiModelProperty("索赔类型value")
private String shClaimTypeValue;
@ApiModelProperty("结算时间")
private String settleTime;
}

17
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/SitemVo.java

@ -65,5 +65,20 @@ public class SitemVo {
// private String groupName;
private List<String> staffList = new ArrayList<>(); //维修人员Sid
private List<String> staffNameList = new ArrayList<>(); //维修人员姓名信息
/**
* 应收合计销售价
*/
private String sitemReceivableAmount;
/**
* 结算金额应收金额 - 优惠金额
*/
private String sitemSettleAmount;
/**
* 成本
*/
private String sitemCost;
/**
* 利润额结算金额 - 成本
*/
private String sitemPrint;
}

29
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsBusrepairBillReverseSettle.java

@ -87,4 +87,33 @@ public class AsBusrepairBillReverseSettle extends BaseEntity {
@ApiModelProperty("办结时间")
private Date closeDate; // 办结时间
/**
* 成本合计
*/
private BigDecimal costAmount;
/**
* 材料费
*/
private BigDecimal goodsAmount;
/**
* 工时费
*/
private BigDecimal hourAmount;
/**
* 优惠
*/
private BigDecimal discountAmount;
/**
* 附加费
*/
private BigDecimal addAmount;
/**
* 利润
*/
private BigDecimal profit;
@ApiModelProperty("应收金额")
private BigDecimal receivableAmount; // 应收金额
@ApiModelProperty("反结算金额")
private BigDecimal actualAmount; // 结算金额
}

48
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillQuery.java

@ -0,0 +1,48 @@
package com.yxt.anrui.as.api.asbusrepairbillreversesettle;
import com.yxt.common.core.query.Query;
import lombok.Data;
@Data
public class AsChoseBusrepairbillQuery implements Query {
/**
* 维修单号
*/
private String billNo;
/**
* 维修类型
*/
private String billType;
/**
* 客户名称
*/
private String customerName;
/**
* 进厂结束
*/
private String entryTimeEnd;
/**
* 进厂开始日期
*/
private String entryTimeStart;
private String menuUrl;
private String orgPath;
/**
* 结算结束
*/
private String settleDateEnd;
/**
* 结算开始
*/
private String settleDateStart;
/**
* 科目
*/
private String subject;
private String userSid;
/**
* 车牌号
*/
private String vehMark;
}

49
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/AsChoseBusrepairbillVo.java

@ -0,0 +1,49 @@
package com.yxt.anrui.as.api.asbusrepairbillreversesettle;
import lombok.Data;
@Data
public class AsChoseBusrepairbillVo {
/**
* 维修单编号
*/
private String billNo;
/**
* 维修单类型
*/
private String billType;
private String closeDate;
/**
* 客户
*/
private String customerName;
/**
* 进厂时间
*/
private String entryTime;
/**
* 是否外出无需转换直接返回是否汉字
*/
private String isGoOut;
/**
* 结算时间
*/
private String settleTime;
/**
* 维修单sid
*/
private String sid;
/**
* 科目
*/
private String subject;
/**
* 车牌号
*/
private String vehMark;
/**
* 车架号
*/
private String vinNo;
}

3
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbillreversesettle/flowable/SubmitReverseSettleDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.as.api.asbusrepairbillreversesettle.flowable;
import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDetailsVo;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.AsBusrepairBillReverseSettleDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -13,7 +14,7 @@ import lombok.Data;
*/
@ApiModel("提交")
@Data
public class SubmitReverseSettleDto extends AsBusrepairBillReverseSettleDto {
public class SubmitReverseSettleDto extends AsBillSettelApplyDetailsVo {
@ApiModelProperty("意见")
private String comment;

3
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.java

@ -69,4 +69,7 @@ public interface AsBillSettelApplyMapper extends BaseMapper<AsBillSettelApply> {
int updateFlowFiled(Map<String, Object> map);
int selCount(@Param("sourceSid") String sourceSid);
int selSalesCount(@Param("sourceSid") String sourceSid);
}

7
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyMapper.xml

@ -60,4 +60,11 @@
WHERE a.sourceSid = #{sourceSid} and a.nodeState != '终止' and a.nodeState != '发起申请' AND
(SELECT IFNULL(count(*),0) FROM as_busrepair_bill_reverse_settle as r WHERE r.sourceSid = #{sourceSid} AND r.nodeState = '已办结') = 0
</select>
<select id="selSalesCount" resultType="java.lang.Integer">
SELECT
count(*)
FROM
as_bill_settel_apply AS a
WHERE a.sourceSid = #{sourceSid} and a.nodeState != '终止' and a.nodeState != '发起申请'
</select>
</mapper>

385
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java

@ -69,178 +69,235 @@ import java.util.List;
@RequestMapping("v1/settleaccounts")
public class AsBillSettelApplyRest {
@Autowired
private AsBillSettelApplyService asBillSettelApplyService;
@Autowired
private AsBillSettelApplyService asBillSettelApplyService;
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<AsBillSettelApplyVo>> listPage(@RequestBody PagerQuery<AsBillSettelApplyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<AsBillSettelApplyVo> pv = asBillSettelApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<AsBillSettelApplyVo>> listPage(@RequestBody PagerQuery<AsBillSettelApplyQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<AsBillSettelApplyVo> pv = asBillSettelApplyService.listPageVo(pq);
return rb.success().setData(pv);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody AsBillSettelApplyDetailsVo dto){
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody AsBillSettelApplyDetailsVo dto) {
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("根据sid批量删除")
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.delBySids(sids);
return rb.success();
}
@ApiOperation("维修单初始化")
@GetMapping("/busrepairbillInit")
public ResultBean<AsBillSettelApplyDetailsVo> busrepairbillInit(@RequestParam("sid") String sid,
@RequestParam("userSid") String userSid,
@RequestParam("orgPath") String orgPath
){
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.busrepairbillInit(sid,userSid,orgPath);
return rb.success().setData(vo);
}
@ApiOperation("销售单初始化")
@PostMapping("/salesbillInit")
public ResultBean<AsBillSettelApplyDetailsVo> salesbillInit(@RequestParam("sid") String sid,
@RequestParam("userSid") String userSid,
@RequestParam("orgPath") String orgPath
){
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.salesbillInit(sid,userSid,orgPath);
return rb.success().setData(vo);
}
@ApiOperation("销售单保存")
@PostMapping("/salesSave")
public ResultBean salesSave(@RequestBody AsBillSettelApplyDetailsVo dto){
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.saveOrUpdateDto(dto);
return rb.success();
}
@ApiOperation("根据SID获取一条记录")
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.delBySids(sids);
return rb.success();
}
@ApiOperation("维修单初始化")
@GetMapping("/busrepairbillInit")
public ResultBean<AsBillSettelApplyDetailsVo> busrepairbillInit(@RequestParam("sid") String sid,
@RequestParam("userSid") String userSid,
@RequestParam("orgPath") String orgPath
) {
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.busrepairbillInit(sid, userSid, orgPath);
return rb.success().setData(vo);
}
@ApiOperation("销售单初始化")
@PostMapping("/salesbillInit")
public ResultBean<AsBillSettelApplyDetailsVo> salesbillInit(@RequestParam("sid") String sid,
@RequestParam("userSid") String userSid,
@RequestParam("orgPath") String orgPath
) {
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.salesbillInit(sid, userSid, orgPath);
return rb.success().setData(vo);
}
@ApiOperation("销售单保存")
@PostMapping("/salesSave")
public ResultBean salesSave(@RequestBody AsBillSettelApplyDetailsVo dto) {
ResultBean rb = ResultBean.fireFail();
asBillSettelApplyService.salesSave(dto);
return rb.success();
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("app详情")
@GetMapping("/fetchDetailsBySid2/{sid}")
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid2(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
//---------------------------------flow----------------------------------------
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitSettleDto dto) {
return asBillSettelApplyService.submit(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody SettleCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
return asBillSettelApplyService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<SettleNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<SettleNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.reject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegateProcess")
public ResultBean delegateProcess(@RequestBody SettleDelegateQuery query) {
return asBillSettelApplyService.delegate(query);
}
//---------------- app ---------------------
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@Valid @RequestBody CompleteSettleDto dto){
return asBillSettelApplyService.agreeCreditInfo(dto);
}
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
return asBillSettelApplyService.rejectCreditInfo(query);
}
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
return asBillSettelApplyService.recallCreditInfo(query);
}
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@Valid @RequestBody AppSettleTaskQuery query){
return asBillSettelApplyService.stopCreditInfo(query);
}
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap SettleFlowableQuery query){
return asBillSettelApplyService.getFlowOperateTitle(query);
}
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppSettleDelegateQuery delegateQuery){
return asBillSettelApplyService.delegate2(delegateQuery);
}
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("app详情")
@GetMapping("/fetchDetailsBySid2/{sid}")
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid2(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
AsBillSettelApplyDetailsVo vo = asBillSettelApplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
//---------------------------------flow----------------------------------------
@ApiOperation("提交审批流程")
@PostMapping("/submit")
public ResultBean submit(@RequestBody @Valid SubmitSettleDto dto) {
return asBillSettelApplyService.submit(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody SettleCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId());
return asBillSettelApplyService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
public ResultBean<List<SettleNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<SettleNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean reject(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.reject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegateProcess")
public ResultBean delegateProcess(@RequestBody SettleDelegateQuery query) {
return asBillSettelApplyService.delegate(query);
}
//----------------------------销售单流程--------------------------------
@ApiOperation("提交审批流程")
@PostMapping("/submitSales")
public ResultBean submitSales(@RequestBody @Valid SubmitSettleDto dto) {
return asBillSettelApplyService.submitSales(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/completeSales")
public ResultBean completeSales(@Valid @RequestBody SettleCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SALESBILLSETTLEAPPLY.getProDefId());
return asBillSettelApplyService.completeSales(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForRejectSales")
public ResultBean<List<SettleNodeVo>> getPreviousNodesForRejectSales(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getPreviousNodesForRejectSales(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmitSales")
public ResultBean<List<SettleNodeVo>> getNextNodesForSubmitSales(@Valid @SpringQueryMap SettleNodeQuery query) {
return asBillSettelApplyService.getNextNodesForSubmitSales(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/rejectSales")
public ResultBean rejectSales(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.rejectSales(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcessSales")
public ResultBean revokeProcessSales(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.revokeProcessSales(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcessSales")
public ResultBean breakProcessSales(@Valid @RequestBody SettleTaskQuery query) {
return asBillSettelApplyService.breakProcessSales(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegateProcessSales")
public ResultBean delegateProcessSales(@RequestBody SettleDelegateQuery query) {
return asBillSettelApplyService.delegateProcessSales(query);
}
//---------------- app ---------------------
@ApiOperation("办理")
@PutMapping("/agreeCreditInfo")
@ResponseBody
ResultBean agreeCreditInfo(@Valid @RequestBody CompleteSettleDto dto) {
return asBillSettelApplyService.agreeCreditInfo(dto);
}
@ApiOperation("驳回")
@PutMapping("/rejectCreditInfo")
@ResponseBody
ResultBean rejectCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
return asBillSettelApplyService.rejectCreditInfo(query);
}
@ApiOperation("撤回")
@PutMapping("/recallCreditInfo")
@ResponseBody
ResultBean recallCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
return asBillSettelApplyService.recallCreditInfo(query);
}
@ApiOperation("终止")
@PutMapping("/stopCreditInfo")
@ResponseBody
ResultBean stopCreditInfo(@Valid @RequestBody AppSettleTaskQuery query) {
return asBillSettelApplyService.stopCreditInfo(query);
}
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@Valid @SpringQueryMap SettleFlowableQuery query) {
return asBillSettelApplyService.getFlowOperateTitle(query);
}
@ApiOperation(value = "加签")
@PutMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody AppSettleDelegateQuery delegateQuery) {
return asBillSettelApplyService.delegate2(delegateQuery);
}
}

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

File diff suppressed because it is too large

9
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -751,6 +751,15 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
sitemVo.setStaffNames(String.join("、", staffNameList));
sitemVo.setRepairerName(String.join("、", staffNameList));
}
if (null != sitem.getPrice()) {
sitemVo.setSitemReceivableAmount(sitem.getPrice().toString());
}
if (null != sitem.getAmount()) {
sitemVo.setSitemSettleAmount(sitem.getAmount().toString());
}
sitemVos.add(sitemVo);
}
vo.setSitemVos(sitemVos);

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.java

@ -30,6 +30,8 @@ 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.as.api.asbusrepairbill.AsBusrepairBill;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.AsChoseBusrepairbillVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -74,4 +76,6 @@ public interface AsBusrepairBillReverseSettleMapper extends BaseMapper<AsBusrepa
int selBySourceSid(@Param("sourceSid") String sourceSid);
int updateFlowFiled(Map<String, Object> map);
IPage<AsChoseBusrepairbillVo> busrepairListPage(IPage<AsBusrepairBill> page, @Param(Constants.WRAPPER) QueryWrapper<AsBusrepairBillReverseSettle> qw);
}

19
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleMapper.xml

@ -75,4 +75,23 @@
AND `nodeState` != '发起申请'
AND `nodeState` != '终止'
</select>
<select id="busrepairListPage"
resultType="com.yxt.anrui.as.api.asbusrepairbillreversesettle.AsChoseBusrepairbillVo">
SELECT
b.sid,
b.billNo,
b.billType,
b.settleTime,
b.`subject`,
IF(b.isGoOut = 1,'是','否') isGoOut,
b.entryTime,
b.customerName,
b.mobile,
v.vinNo,
v.vehMark
FROM
as_busrepair_bill AS b
LEFT JOIN as_busrepair_bill_vech as v ON b.sid = v.billSid
<where> ${ew.sqlSegment} </where>
</select>
</mapper>

24
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleRest.java

@ -26,6 +26,7 @@
package com.yxt.anrui.as.biz.asbusrepairbillreversesettle;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDetailsVo;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleDelegateQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleTaskQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.CompleteSettleDto;
@ -79,6 +80,15 @@ public class AsBusrepairBillReverseSettleRest{
}
@ApiOperation("选择维修单列表")
@PostMapping("/busrepairListPage")
public ResultBean<PagerVo<AsChoseBusrepairbillVo>> busrepairListPage(@RequestBody PagerQuery<AsChoseBusrepairbillQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<AsChoseBusrepairbillVo> pv = asBusrepairBillReverseSettleService.busrepairListPage(pq);
return rb.success().setData(pv);
}
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody AsBusrepairBillReverseSettleDto dto){
@ -89,7 +99,7 @@ public class AsBusrepairBillReverseSettleRest{
@ApiOperation("新增或修改")
@PostMapping("/saveReverseSettle")
public ResultBean saveReverseSettle(@RequestBody AsBusrepairBillReverseSettleDto dto){
public ResultBean saveReverseSettle(@RequestBody AsBillSettelApplyDetailsVo dto){
ResultBean rb = ResultBean.fireFail();
String sid = asBusrepairBillReverseSettleService.saveReverseSettle(dto);
return rb.success().setData(sid);
@ -105,17 +115,17 @@ public class AsBusrepairBillReverseSettleRest{
@ApiOperation("新增初始化")
@PostMapping("/reverseSettleInit")
public ResultBean<AsBusrepairBillReverseSettleDetailsVo> reverseSettleInit(@RequestBody ReverseSettleInitQuery query){
public ResultBean<AsBillSettelApplyDetailsVo> reverseSettleInit(@RequestBody ReverseSettleInitQuery query){
ResultBean rb = ResultBean.fireFail();
AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.reverseSettleInit(query);
AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.reverseSettleInit(query);
return rb.success().setData(vo);
}
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<AsBusrepairBillReverseSettleDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ -175,9 +185,9 @@ public class AsBusrepairBillReverseSettleRest{
// ----------------------------------app------------------------------------------------
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid2/{sid}")
public ResultBean<AsBusrepairBillReverseSettleDetailsVo> fetchDetailsBySid2(@PathVariable("sid") String sid){
public ResultBean<AsBillSettelApplyDetailsVo> fetchDetailsBySid2(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
AsBusrepairBillReverseSettleDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
AsBillSettelApplyDetailsVo vo = asBusrepairBillReverseSettleService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}

747
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbillreversesettle/AsBusrepairBillReverseSettleService.java

@ -31,21 +31,33 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.as.api.asbillsettelapply.*;
import com.yxt.anrui.as.api.asbillsettelapply.flow.*;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleDelegateQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.AppSettleTaskQuery;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.CompleteSettleDto;
import com.yxt.anrui.as.api.asbillsettelapply.flow.app.SettleFlowableQuery;
import com.yxt.anrui.as.api.asbillsettelapplyaitem.AsBillSettelApplyAitem;
import com.yxt.anrui.as.api.asbillsettelapplyaitemspec.AsBillSettelApplyAitemspec;
import com.yxt.anrui.as.api.asbillsettelapplydetail.AsBillSettelApplyDetail;
import com.yxt.anrui.as.api.asbillsettelapplysitem.AsBillSettelApplySitem;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApply;
import com.yxt.anrui.as.api.asbusrepairbill.*;
import com.yxt.anrui.as.api.asbusrepairbillnode.AsBusrepairBillNode;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.*;
import com.yxt.anrui.as.api.asbusrepairbillreversesettle.flowable.*;
import com.yxt.anrui.as.api.asserviceattachitem.AsServiceAttachItem;
import com.yxt.anrui.as.api.enums.AsBillTypeEnum;
import com.yxt.anrui.as.api.utils.AsRule;
import com.yxt.anrui.as.api.utils.FileUrlQuery;
import com.yxt.anrui.as.api.utils.domain.AsBillNo;
import com.yxt.anrui.as.biz.asbillsettelapplyaitem.AsBillSettelApplyAitemService;
import com.yxt.anrui.as.biz.asbillsettelapplyaitemspec.AsBillSettelApplyAitemSpecService;
import com.yxt.anrui.as.biz.asbillsettelapplydetail.AsBillSettelApplyDetailService;
import com.yxt.anrui.as.biz.asbillsettelapplysitem.AsBillSettelApplySitemService;
import com.yxt.anrui.as.biz.asbusrepairbill.AsBusrepairBillService;
import com.yxt.anrui.as.biz.asbusrepairbillnode.AsBusrepairBillNodeService;
import com.yxt.anrui.as.biz.asserviceattachitem.AsServiceAttachItemService;
import com.yxt.anrui.as.feign.flowable.flow.*;
import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign;
@ -56,6 +68,7 @@ import com.yxt.anrui.as.feign.message.MessageFeign;
import com.yxt.anrui.as.feign.message.MessageFlowVo;
import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeVo;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrg;
@ -63,6 +76,12 @@ import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo;
import com.yxt.anrui.as.feign.portal.sysuserrole.SysUserRoleFeign;
import com.yxt.anrui.as.feign.sms.smssalesbill.SalesGoodsVo;
import com.yxt.anrui.as.feign.sms.smssalesbill.SalesInvoiceVo;
import com.yxt.anrui.as.feign.sms.smssalesbill.SmsAttachitemVo;
import com.yxt.anrui.as.feign.sms.smssalesbill.SmsSalesBillDetailsVo;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory;
import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -73,6 +92,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -91,6 +111,19 @@ import java.util.stream.Collectors;
*/
@Service
public class AsBusrepairBillReverseSettleService extends MybatisBaseService<AsBusrepairBillReverseSettleMapper, AsBusrepairBillReverseSettle> {
@Autowired
private AsBillSettelApplyAitemService asBillSettelApplyAitemService;
@Autowired
private AsBillSettelApplyAitemSpecService asBillSettelApplyAitemSpecService;
@Autowired
private AsBillSettelApplySitemService asBillSettelApplySitemService;
@Autowired
private AsBillSettelApplyDetailService asBillSettelApplyDetailService;
@Autowired
private AsServiceAttachItemService asServiceAttachItemService;
@Autowired
private WmsInventoryFeign wmsInventoryFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
@ -231,101 +264,407 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService<AsBu
baseMapper.updateById(entity);
}
public AsBusrepairBillReverseSettleDetailsVo fetchDetailsVoBySid(String sid) {
AsBusrepairBillReverseSettleDetailsVo vo = new AsBusrepairBillReverseSettleDetailsVo();
public AsBillSettelApplyDetailsVo fetchDetailsVoBySid(String sid) {
AsBillSettelApplyDetailsVo vo = new AsBillSettelApplyDetailsVo();
AsBusrepairBillReverseSettle entity = fetchBySid(sid);
if (null != entity) {
BeanUtil.copyProperties(entity, vo);
vo.setUseSid(entity.getCreateBySid());
vo.setApplyDate(DateUtil.formatDate(entity.getApplyDate()));
vo.setApplyDate(DateUtil.formatDate(entity.getCreateTime()));
if (StringUtils.isNotBlank(entity.getProcInstId())) {
vo.setInstanceId(entity.getProcInstId());
vo.setProcInsId(entity.getProcInstId());
vo.setInstanceId(entity.getProcInstId());
}
if (StringUtils.isNotBlank(entity.getSourceSid())) {
AsBusrepairBillDetailsVo bill = asBusrepairBillService.fetchDetailsBySid(entity.getSourceSid()).getData();
if (null != bill) {
BeanUtil.copyProperties(bill,vo,"id","sid","billNo","useOrgSid","createBySid","createOrgSid","orgPath");
if (bill.getInvoiceVo() != null) {
if (StringUtils.isNotBlank(bill.getInvoiceVo().getTaxRate())) {
vo.setTaxRate(bill.getInvoiceVo().getTaxRate());
}
String sourceSid = entity.getSourceSid();
AsBusrepairBillDetailsVo data = asBusrepairBillService.fetchDetailsBySid(entity.getSourceSid()).getData();
if (null != data) {
vo.setSourceSid(data.getSid());
vo.setCustomerSid(data.getCustomerSid());
vo.setCustomerName(data.getCustomerName());
vo.setSourceBillNo(data.getBillNo());
vo.setSourceBillDate(data.getCreateDate());
if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName());
}
if (StringUtils.isNotBlank(bill.getDiscountAmount())) {
vo.setDiscountAmount(bill.getDiscountAmount());
vo.setBillType(data.getBillType());
vo.setSubject(data.getSubject());
vo.setIsGoOut(data.getIsGoOut());
vo.setIsGoOut2(data.getIsGoOut2());
if (StringUtils.isNotBlank(data.getMobile())) {
vo.setMobile(data.getMobile());
}
if (StringUtils.isNotBlank(bill.getCoupon())) {
vo.setCoupon(bill.getCoupon());
if (StringUtils.isNotBlank(data.getVinNo())) {
vo.setVinNo(data.getVinNo());
}
if (StringUtils.isNotBlank(bill.getScoreDeduct())) {
vo.setScoreDeduct(bill.getScoreDeduct());
if (StringUtils.isNotBlank(data.getVehMark())) {
vo.setVehMark(data.getVehMark());
}
if (StringUtils.isNotBlank(bill.getBillNo())) {
vo.setSourceBillNo(bill.getBillNo());
InvoiceVo invoiceVo = data.getInvoiceVo();
if (null != invoiceVo) {
if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing())) {
vo.setIsInvoicing(invoiceVo.getIsInvoicing());
}
if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing2())) {
vo.setIsInvoicing2(invoiceVo.getIsInvoicing2());
}
if (StringUtils.isNotBlank(invoiceVo.getTaxRate())) {
vo.setTaxRate(invoiceVo.getTaxRate());
}
if (StringUtils.isNotBlank(invoiceVo.getTaxItems2())) {
vo.setTaxItems(invoiceVo.getTaxItems2());
}
}
if (StringUtils.isNotBlank(bill.getCreateDate())) {
vo.setSourceBillDate(bill.getCreateDate());
List<FileUrlQuery> fileName = data.getFileName();
if (!fileName.isEmpty()) {
vo.setFileName(fileName);
List<String> files = new ArrayList<>();
for (FileUrlQuery fileUrlQuery : fileName) {
files.add(fileUrlQuery.getUrl());
}
vo.setFileName2(files);
}
if (StringUtils.isNotBlank(bill.getWaitorName())) {
vo.setWaitorName(bill.getWaitorName());
List<SettleAitemVo> aitemVos = new ArrayList<>();
List<SettleGoodsDetailsVo> goodsDetailsVos = new ArrayList<>();
List<SettleSitemVo> sitemVos = new ArrayList<>();
List<AsBillSettelApplyAitem> applyAitems = asBillSettelApplyAitemService.fetchByBillSid(sid);
if (!applyAitems.isEmpty() && applyAitems.size() > 0) {
for (AsBillSettelApplyAitem c : applyAitems) {
SettleAitemVo e = new SettleAitemVo();
BeanUtil.copyProperties(c, e);
aitemVos.add(e);
}
vo.setAitemVos(aitemVos);
}
if (StringUtils.isNotBlank(bill.getBillType())) {
vo.setBillType(bill.getBillType());
List<AsBillSettelApplySitem> sitems = asBillSettelApplySitemService.fetchByBillSid(sid);
if (!sitems.isEmpty() && sitems.size() > 0) {
for (AsBillSettelApplySitem c : sitems) {
SettleSitemVo e = new SettleSitemVo();
BeanUtil.copyProperties(c, e);
sitemVos.add(e);
}
vo.setSitemVos(sitemVos);
}
if (StringUtils.isNotBlank(bill.getSubject())) {
vo.setSubject(bill.getSubject());
List<AsBillSettelApplyDetail> goods = asBillSettelApplyDetailService.fetchByBillSid(sid);
if (!goods.isEmpty() && goods.size() > 0) {
for (AsBillSettelApplyDetail c : goods) {
SettleGoodsDetailsVo e = new SettleGoodsDetailsVo();
BeanUtil.copyProperties(c, e);
goodsDetailsVos.add(e);
}
vo.setGoodsDetailsVos(goodsDetailsVos);
}
if (null != bill.getSettleVo()) {
SettleVo settleVo = bill.getSettleVo();
if (StringUtils.isNotBlank(settleVo.getSettleTime())) {
vo.setSettleDate(settleVo.getSettleTime());
List<AsBillSettelApplyAitemspec> specs = asBillSettelApplyAitemSpecService.fetchByBillSid(sid);
if (!specs.isEmpty() && specs.size() > 0) {
for (AsBillSettelApplyAitemspec c : specs) {
if (c.getAttachItem().equals("外出费")) {
if (null != c.getPrice()) {
vo.setOutAmount(c.getPrice().toString());
}
if (StringUtils.isNotBlank(c.getRemarks())) {
vo.setOutRemarks(c.getRemarks());
}
if (null != c.getCostTotal()) {
vo.setOutCost(c.getCostTotal().toString());
}
if (null != c.getTaxPrice()) {
vo.setOutKPAmount(c.getTaxPrice().toString());
}
if (null != c.getPrint()) {
vo.setOutPrint(c.getPrint().toString());
}
}
if (c.getAttachItem().equals("厂家补助")) {
if (null != c.getPrice()) {
vo.setSubsidyAmount(c.getPrice().toString());
}
if (StringUtils.isNotBlank(c.getRemarks())) {
vo.setSubsidyRemarks(c.getRemarks());
}
if (null != c.getCostTotal()) {
vo.setSubsidyCost(c.getCostTotal().toString());
}
if (null != c.getTaxPrice()) {
vo.setSubsidyKPAmount(c.getTaxPrice().toString());
}
if (null != c.getPrint()) {
vo.setSubsidyPrint(c.getPrint().toString());
}
}
if (c.getAttachItem().equals("施救费")) {
if (null != c.getPrice()) {
vo.setRescueAmount(c.getPrice().toString());
}
if (StringUtils.isNotBlank(c.getRemarks())) {
vo.setRescueRemarks(c.getRemarks());
}
if (null != c.getCostTotal()) {
vo.setRescueCost(c.getCostTotal().toString());
}
if (null != c.getTaxPrice()) {
vo.setRescueKPAmount(c.getTaxPrice().toString());
}
if (null != c.getPrint()) {
vo.setRescuePrint(c.getPrint().toString());
}
}
}
}
if (StringUtils.isNotBlank(bill.getCustomerName())) {
vo.setCustomerName(bill.getCustomerName());
}
}
return vo;
}
public AsBillSettelApplyDetailsVo reverseSettleInit(ReverseSettleInitQuery query) {
AsBillSettelApplyDetailsVo vo = new AsBillSettelApplyDetailsVo();
AsBusrepairBillDetailsVo data = asBusrepairBillService.fetchDetailsBySid(query.getSid()).getData();
if (null != data) {
vo.setSourceSid(data.getSid());
vo.setCustomerSid(data.getCustomerSid());
vo.setCustomerName(data.getCustomerName());
vo.setSourceBillNo(data.getBillNo());
vo.setSourceBillDate(data.getCreateDate());
if (StringUtils.isNotBlank(data.getWaitorName())) {
vo.setWaitorName(data.getWaitorName());
}
vo.setBillType(data.getBillType());
vo.setSubject(data.getSubject());
vo.setIsGoOut(data.getIsGoOut());
vo.setIsGoOut2(data.getIsGoOut2());
BigDecimal yingshouZ = BigDecimal.ZERO;
BigDecimal youhuiZ = BigDecimal.ZERO;
if (StringUtils.isNotBlank(data.getDiscountAmount())) {
vo.setDiscountAmount(data.getDiscountAmount());
youhuiZ = new BigDecimal(data.getDiscountAmount());
}
if (StringUtils.isNotBlank(data.getReceivableAmount())) {
vo.setReceivableAmount(data.getReceivableAmount());
yingshouZ = new BigDecimal(data.getReceivableAmount());
}
vo.setActualAmount(yingshouZ.subtract(youhuiZ).toString());
if (StringUtils.isNotBlank(data.getMobile())) {
vo.setMobile(data.getMobile());
}
if (StringUtils.isNotBlank(data.getVinNo())) {
vo.setVinNo(data.getVinNo());
}
if (StringUtils.isNotBlank(data.getVehMark())) {
vo.setVehMark(data.getVehMark());
}
InvoiceVo invoiceVo = data.getInvoiceVo();
if (null != invoiceVo) {
if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing())) {
vo.setIsInvoicing(invoiceVo.getIsInvoicing());
}
if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing2())) {
vo.setIsInvoicing2(invoiceVo.getIsInvoicing2());
}
if (StringUtils.isNotBlank(invoiceVo.getTaxRate())) {
vo.setTaxRate(invoiceVo.getTaxRate());
}
if (StringUtils.isNotBlank(invoiceVo.getTaxItems2())) {
vo.setTaxItems(invoiceVo.getTaxItems2());
}
}
if (StringUtils.isNotBlank(data.getOutRemarks())) {
vo.setOutRemarks(data.getOutRemarks());
}
if (StringUtils.isNotBlank(data.getSubsidyRemarks())) {
vo.setSubsidyRemarks(data.getSubsidyRemarks());
}
if (StringUtils.isNotBlank(data.getRescueRemarks())) {
vo.setRescueRemarks(data.getRescueRemarks());
}
BigDecimal costAmount = BigDecimal.ZERO;//成本合计
BigDecimal profit = BigDecimal.ZERO;//总利润额
BigDecimal outAmount = BigDecimal.ZERO;//外出费
BigDecimal subsidyAmount = BigDecimal.ZERO;//厂家补助
BigDecimal rescueAmount = BigDecimal.ZERO;//施救费
BigDecimal outKPAmount = BigDecimal.ZERO;//外出费KP
BigDecimal subsidyKPAmount = BigDecimal.ZERO;//厂家补助KP
BigDecimal rescueKPAmount = BigDecimal.ZERO;//施救费KP
// BigDecimal sitemProfit = BigDecimal.ZERO;//维修项目利润
// BigDecimal goodsProfit = BigDecimal.ZERO;//维修用料利润
// BigDecimal otherProfit = BigDecimal.ZERO;//附件项目利润
// BigDecimal addProfit = BigDecimal.ZERO;//其他附加项目利润
if (StringUtils.isNotBlank(data.getHourAmount())) {
vo.setHourAmount(data.getHourAmount());
}
if (StringUtils.isNotBlank(data.getGoodsAmount())) {
vo.setGoodsAmount(data.getGoodsAmount());
}
if (StringUtils.isNotBlank(data.getAddAmount())) {
vo.setAddAmount(data.getAddAmount());
}
if (StringUtils.isNotBlank(data.getDiscountAmount())) {
vo.setDiscountAmount(data.getDiscountAmount());
}
if (StringUtils.isNotBlank(data.getOutAmount())) {
vo.setOutAmount(data.getOutAmount());
outAmount = new BigDecimal(data.getOutAmount());
vo.setOutPrint(data.getOutAmount());
}
if (StringUtils.isNotBlank(data.getOutKPAmount())) {
vo.setOutKPAmount(data.getOutKPAmount());
outKPAmount = new BigDecimal(data.getOutKPAmount());
}
if (StringUtils.isNotBlank(data.getSubsidyAmount())) {
vo.setSubsidyAmount(data.getSubsidyAmount());
subsidyAmount = new BigDecimal(data.getSubsidyAmount());
vo.setSubsidyPrint(data.getSubsidyAmount());
}
if (StringUtils.isNotBlank(data.getSubsidyKPAmount())) {
vo.setSubsidyKPAmount(data.getSubsidyKPAmount());
subsidyKPAmount = new BigDecimal(data.getSubsidyKPAmount());
}
if (StringUtils.isNotBlank(data.getRescueAmount())) {
vo.setRescueAmount(data.getRescueAmount());
rescueAmount = new BigDecimal(data.getRescueAmount());
vo.setRescuePrint(data.getRescueAmount());
}
if (StringUtils.isNotBlank(data.getRescueKPAmount())) {
vo.setRescueKPAmount(data.getRescueKPAmount());
rescueKPAmount = new BigDecimal(data.getRescueKPAmount());
}
List<SitemVo> sitemVos = data.getSitemVos();
if (!sitemVos.isEmpty()) {
List<SettleSitemVo> settleSitemVos = new ArrayList<>();
for (SitemVo s : sitemVos) {
SettleSitemVo v = new SettleSitemVo();
BeanUtil.copyProperties(s, v);
BigDecimal yingshou = BigDecimal.ZERO; //应收
BigDecimal youhui = BigDecimal.ZERO; //优惠
BigDecimal jiesuan = BigDecimal.ZERO; //结算
BigDecimal chengben = BigDecimal.ZERO; //成本
BigDecimal lirun = BigDecimal.ZERO; //利润
if (StringUtils.isNotBlank(s.getAmount())) {
yingshou = new BigDecimal(s.getAmount());
v.setSitemReceivableAmount(yingshou.toString());
}
if (StringUtils.isNotBlank(s.getDiscountAmount())) {
youhui = new BigDecimal(s.getDiscountAmount());
}
if (StringUtils.isNotBlank(bill.getMobile())) {
vo.setMobile(bill.getMobile());
jiesuan = yingshou.subtract(youhui);
v.setSitemSettleAmount(jiesuan.toString());
if (StringUtils.isNotBlank(s.getCostTotal())) {
chengben = new BigDecimal(s.getCostTotal());
}
if (StringUtils.isNotBlank(bill.getVinNo())) {
vo.setVinNo(bill.getVinNo());
v.setSitemCost(chengben.toString());
lirun = jiesuan.subtract(chengben);
v.setSitemPrint(lirun.toString());
costAmount = costAmount.add(chengben);
profit = profit.add(lirun);
settleSitemVos.add(v);
}
vo.setSitemVos(settleSitemVos);
}
List<GoodsDetailsVo> goodsDetailsVos = data.getGoodsDetailsVos();
if (!goodsDetailsVos.isEmpty()) {
List<SettleGoodsDetailsVo> goodsList = new ArrayList<>();
for (GoodsDetailsVo g : goodsDetailsVos) {
SettleGoodsDetailsVo v = new SettleGoodsDetailsVo();
BeanUtil.copyProperties(g, v, "partsSellers");
if (StringUtils.isNotBlank(g.getPartsSellers2())) {
v.setPartsSellers(g.getPartsSellers2());
}
if (StringUtils.isNotBlank(bill.getVehMark())) {
vo.setVehMark(bill.getVehMark());
BigDecimal yingshou = BigDecimal.ZERO; //应收
BigDecimal youhui = BigDecimal.ZERO; //优惠
BigDecimal jiesuan = BigDecimal.ZERO; //结算
BigDecimal chengben = BigDecimal.ZERO; //成本
BigDecimal chengbenPrice = BigDecimal.ZERO; //成本单价
BigDecimal lirun = BigDecimal.ZERO; //利润
BigDecimal count = BigDecimal.ZERO; //数量
if (StringUtils.isNotBlank(g.getCount())) {
count = new BigDecimal(g.getCount());
}
if (StringUtils.isNotBlank(bill.getCustomerOrg())) {
vo.setCustomerOrg(bill.getCustomerOrg());
if (StringUtils.isNotBlank(g.getPrice())) {
BigDecimal price = new BigDecimal(g.getPrice());
yingshou = price.multiply(count);
v.setGoodsReceivableAmount(yingshou.toString());
}
if (!bill.getSitemVos().isEmpty()) {
vo.setSitemVos(bill.getSitemVos());
if (StringUtils.isNotBlank(g.getDiscountAmount())) {
youhui = new BigDecimal(g.getDiscountAmount());
}
if (!bill.getGoodsDetailsVos().isEmpty()) {
vo.setGoodsDetailsVos(bill.getGoodsDetailsVos());
jiesuan = yingshou.subtract(youhui);
v.setGoodsSettleAmount(jiesuan.toString());
//求成本
if (StringUtils.isNotBlank(g.getInventorySid())) {
String inventorySid = g.getInventorySid();
WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
if (null != inventory) {
if (null != inventory.getCost()) {
chengbenPrice = inventory.getCost();
chengben = chengbenPrice.multiply(count);
}
}
}
v.setGoodsCost(chengben.toString());
lirun = jiesuan.subtract(chengben);
v.setGoodsPrint(lirun.toString());
costAmount = costAmount.add(chengben);
profit = profit.add(lirun);
goodsList.add(v);
}
vo.setGoodsDetailsVos(goodsList);
}
List<AitemVo> aitemVos = data.getAitemVos();
if (!aitemVos.isEmpty()) {
List<SettleAitemVo> aitemVoList = new ArrayList<>();
for (AitemVo a : aitemVos) {
SettleAitemVo v = new SettleAitemVo();
BeanUtil.copyProperties(a, v);
BigDecimal yingshou = BigDecimal.ZERO; //应收
BigDecimal chengben = BigDecimal.ZERO; //成本
BigDecimal lirun = BigDecimal.ZERO; //利润
if (StringUtils.isNotBlank(a.getPrice())) {
yingshou = new BigDecimal(a.getPrice());
v.setAitemReceivableAmount(yingshou.toString());
}
if (!bill.getAitemVos().isEmpty()) {
vo.setAitemVos(bill.getAitemVos());
//求成本
if (StringUtils.isNotBlank(a.getAitemSid())) {
String aitemsid = a.getAitemSid();
AsServiceAttachItem attachItem = asServiceAttachItemService.fetchBySid(aitemsid);
if (null != attachItem) {
if (null != attachItem.getCost()) {
chengben = attachItem.getCost();
}
}
}
v.setAitemCost(chengben.toString());
lirun = yingshou.subtract(chengben);
v.setAitemPrint(lirun.toString());
costAmount = costAmount.add(chengben);
profit = profit.add(lirun);
aitemVoList.add(v);
}
vo.setAitemVos(aitemVoList);
}
vo.setOutCost("0");
vo.setSubsidyCost("0");
vo.setRescueCost("0");
profit = profit.add(outAmount);
profit = profit.add(subsidyAmount);
profit = profit.add(rescueAmount);
// vo.setProfit(profit.toString());
// vo.setCostAmount(costAmount.toString());
List<FileUrlQuery> fileName = data.getFileName();
if (!fileName.isEmpty()) {
vo.setFileName(fileName);
List<String> files = new ArrayList<>();
for (FileUrlQuery fileUrlQuery : fileName) {
files.add(fileUrlQuery.getUrl());
}
vo.setFileName2(files);
}
}
return vo;
}
public AsBusrepairBillReverseSettleDetailsVo reverseSettleInit(ReverseSettleInitQuery query) {
AsBusrepairBillReverseSettleDetailsVo vo = new AsBusrepairBillReverseSettleDetailsVo();
String sourceSid = query.getSid();
String orgPath = query.getOrgPath();
String userSid = query.getUserSid();
vo.setApplyDate(DateUtil.formatDate(new Date()));
vo.setSourceSid(sourceSid);
vo.setUseSid(userSid);
vo.setOrgPath(orgPath);
//根据用户查询发起人、发起部门、发起日期为当前日期
String deptName = "";
String deptSid = "";
String useOrgSid = "";
String orgPath = query.getOrgPath();
String userSid = query.getUserSid();
if (StringUtils.isNotBlank(orgPath)) {
List<String> split = Arrays.asList(orgPath.split("/"));
if (split.size() > 1) {
@ -347,78 +686,16 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService<AsBu
ResultBean<SysOrganizationVo> organizationResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
if (organizationResultBean.getData() != null) {
vo.setUseOrgName(organizationResultBean.getData().getName());
vo.setUseOrgSid(useOrgSid);
}
//根据用户sid查询人员姓名
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(userSid);
if (userVoResultBean.getSuccess()) {
vo.setCreateByName(userVoResultBean.getData().getName());
}
vo.setDept(deptName);
vo.setDeptSid(deptSid);
AsBusrepairBillDetailsVo bill = asBusrepairBillService.fetchDetailsBySid(sourceSid).getData();
if (null != bill) {
BeanUtil.copyProperties(bill,vo,"id","sid","billNo","useOrgSid","createBySid","createOrgSid","orgPath");
if (bill.getInvoiceVo() != null) {
if (StringUtils.isNotBlank(bill.getInvoiceVo().getTaxRate())) {
vo.setTaxRate(bill.getInvoiceVo().getTaxRate());
}
}
if (StringUtils.isNotBlank(bill.getDiscountAmount())) {
vo.setDiscountAmount(bill.getDiscountAmount());
}
if (StringUtils.isNotBlank(bill.getCoupon())) {
vo.setCoupon(bill.getCoupon());
}
if (StringUtils.isNotBlank(bill.getScoreDeduct())) {
vo.setScoreDeduct(bill.getScoreDeduct());
}
if (StringUtils.isNotBlank(bill.getBillNo())) {
vo.setSourceBillNo(bill.getBillNo());
}
if (StringUtils.isNotBlank(bill.getCreateDate())) {
vo.setSourceBillDate(bill.getCreateDate());
}
if (StringUtils.isNotBlank(bill.getWaitorName())) {
vo.setWaitorName(bill.getWaitorName());
}
if (StringUtils.isNotBlank(bill.getBillType())) {
vo.setBillType(bill.getBillType());
}
if (StringUtils.isNotBlank(bill.getSubject())) {
vo.setSubject(bill.getSubject());
}
if (null != bill.getSettleVo()) {
SettleVo settleVo = bill.getSettleVo();
if (StringUtils.isNotBlank(settleVo.getSettleTime())) {
vo.setSettleDate(settleVo.getSettleTime());
}
}
if (StringUtils.isNotBlank(bill.getCustomerName())) {
vo.setCustomerName(bill.getCustomerName());
}
if (StringUtils.isNotBlank(bill.getMobile())) {
vo.setMobile(bill.getMobile());
}
if (StringUtils.isNotBlank(bill.getVinNo())) {
vo.setVinNo(bill.getVinNo());
}
if (StringUtils.isNotBlank(bill.getVehMark())) {
vo.setVehMark(bill.getVehMark());
}
if (StringUtils.isNotBlank(bill.getCustomerOrg())) {
vo.setCustomerOrg(bill.getCustomerOrg());
}
if (!bill.getSitemVos().isEmpty()) {
vo.setSitemVos(bill.getSitemVos());
}
if (!bill.getGoodsDetailsVos().isEmpty()) {
vo.setGoodsDetailsVos(bill.getGoodsDetailsVos());
}
if (!bill.getAitemVos().isEmpty()) {
vo.setAitemVos(bill.getAitemVos());
}
}
vo.setCreateByName(userVoResultBean.getData().getName());
vo.setApplyDate(DateUtil.today());
vo.setOrgPath(orgPath);
vo.setCreateBySid(userSid);
vo.setUseOrgSid(useOrgSid);
return vo;
}
@ -452,24 +729,154 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService<AsBu
return billNo;
}
public String saveReverseSettle(AsBusrepairBillReverseSettleDto dto) {
public String saveReverseSettle(AsBillSettelApplyDetailsVo dto) {
String sid = "";
if (StringUtils.isNotBlank(dto.getSid())) {
sid = dto.getSid();
AsBusrepairBillReverseSettle settle = fetchBySid(sid);
BeanUtil.copyProperties(dto, settle, "id", "sid");
baseMapper.updateById(settle);
} else {
if (StringUtils.isBlank(dto.getSid())) {
AsBusrepairBillReverseSettle entity = new AsBusrepairBillReverseSettle();
sid = entity.getSid();
BeanUtil.copyProperties(dto, entity, "id", "sid");
if (StringUtils.isNotBlank(dto.getUseOrgSid())) {
String applyCode = getApplyCode(dto.getUseOrgSid());
entity.setBillNo(applyCode);
String applyCode = getApplyCode(dto.getUseOrgSid());
entity.setBillNo(applyCode);
if (StringUtils.isNotBlank(dto.getRemarks())) {
entity.setRemarks(dto.getRemarks());
}
entity.setNodeState("待提交");
entity.setCreateBySid(dto.getUseSid());
baseMapper.insert(entity);
sid = entity.getSid();
} else {
sid = dto.getSid();
AsBusrepairBillReverseSettle entity = fetchBySid(sid);
if (StringUtils.isNotBlank(dto.getRemarks())) {
entity.setRemarks(dto.getRemarks());
}
baseMapper.updateById(entity);
}
asBillSettelApplyAitemService.delByBillSid(sid);
asBillSettelApplyAitemSpecService.delByBillSid(sid);
asBillSettelApplySitemService.delByBillSid(sid);
asBillSettelApplyDetailService.delByBillSid(sid);
BigDecimal costAll = BigDecimal.ZERO;//成本合计
BigDecimal printAll = BigDecimal.ZERO;//利润合计
if (!dto.getAitemVos().isEmpty() && dto.getAitemVos().size() > 0) {
List<SettleAitemVo> aitemVos = dto.getAitemVos();
for (SettleAitemVo aitemVo : aitemVos) {
AsBillSettelApplyAitem a = new AsBillSettelApplyAitem();
BeanUtil.copyProperties(aitemVo, a, "sid");
a.setMainSid(sid);
asBillSettelApplyAitemService.insert(a);
if (StringUtils.isNotBlank(aitemVo.getAitemCost())) {
costAll = costAll.add(new BigDecimal(aitemVo.getAitemCost()));
}
if (StringUtils.isNotBlank(aitemVo.getAitemPrint())) {
printAll = printAll.add(new BigDecimal(aitemVo.getAitemPrint()));
}
}
}
if (!dto.getSitemVos().isEmpty() && dto.getSitemVos().size() > 0) {
List<SettleSitemVo> sitemVos = dto.getSitemVos();
for (SettleSitemVo sitemVo : sitemVos) {
AsBillSettelApplySitem a = new AsBillSettelApplySitem();
BeanUtil.copyProperties(sitemVo, a, "sid");
a.setMainSid(sid);
asBillSettelApplySitemService.insert(a);
if (StringUtils.isNotBlank(sitemVo.getSitemCost())) {
costAll = costAll.add(new BigDecimal(sitemVo.getSitemCost()));
}
if (StringUtils.isNotBlank(sitemVo.getSitemPrint())) {
printAll = printAll.add(new BigDecimal(sitemVo.getSitemPrint()));
}
}
}
if (!dto.getGoodsDetailsVos().isEmpty() && dto.getGoodsDetailsVos().size() > 0) {
List<SettleGoodsDetailsVo> goodsDetailsVos = dto.getGoodsDetailsVos();
for (SettleGoodsDetailsVo g : goodsDetailsVos) {
AsBillSettelApplyDetail d = new AsBillSettelApplyDetail();
BeanUtil.copyProperties(g, d, "sid");
d.setMainSid(sid);
asBillSettelApplyDetailService.insert(d);
if (StringUtils.isNotBlank(g.getGoodsCost())) {
costAll = costAll.add(new BigDecimal(g.getGoodsCost()));
}
if (StringUtils.isNotBlank(g.getGoodsPrint())) {
printAll = printAll.add(new BigDecimal(g.getGoodsPrint()));
}
}
}
if (StringUtils.isNotBlank(dto.getOutAmount())) {
BigDecimal outAmount = new BigDecimal(dto.getOutAmount());
if (outAmount.compareTo(BigDecimal.ZERO) > 0) {
AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
s.setMainSid(sid);
s.setAttachItem("外出费");
s.setPrice(outAmount);
if (StringUtils.isNotBlank(dto.getOutKPAmount())) {
s.setTaxPrice(new BigDecimal(dto.getOutKPAmount()));
}
if (StringUtils.isNotBlank(dto.getOutPrint())) {
s.setPrint(new BigDecimal(dto.getOutPrint()));
printAll = printAll.add(new BigDecimal(dto.getOutPrint()));
}
if (StringUtils.isNotBlank(dto.getOutCost())) {
s.setCostTotal(new BigDecimal(dto.getOutCost()));
costAll = costAll.add(new BigDecimal(dto.getOutCost()));
}
if (StringUtils.isNotBlank(dto.getOutRemarks())) {
s.setRemarks(dto.getOutRemarks());
}
asBillSettelApplyAitemSpecService.insert(s);
}
}
if (StringUtils.isNotBlank(dto.getSubsidyAmount())) {
BigDecimal amount = new BigDecimal(dto.getSubsidyAmount());
if (amount.compareTo(BigDecimal.ZERO) > 0) {
AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
s.setMainSid(sid);
s.setAttachItem("厂家补助");
s.setPrice(amount);
if (StringUtils.isNotBlank(dto.getSubsidyKPAmount())) {
s.setTaxPrice(new BigDecimal(dto.getSubsidyKPAmount()));
}
if (StringUtils.isNotBlank(dto.getSubsidyPrint())) {
s.setPrint(new BigDecimal(dto.getSubsidyPrint()));
printAll = printAll.add(new BigDecimal(dto.getSubsidyPrint()));
}
if (StringUtils.isNotBlank(dto.getSubsidyCost())) {
s.setCostTotal(new BigDecimal(dto.getSubsidyCost()));
costAll = costAll.add(new BigDecimal(dto.getSubsidyCost()));
}
if (StringUtils.isNotBlank(dto.getSubsidyRemarks())) {
s.setRemarks(dto.getSubsidyRemarks());
}
asBillSettelApplyAitemSpecService.insert(s);
}
}
if (StringUtils.isNotBlank(dto.getRescueAmount())) {
BigDecimal amount = new BigDecimal(dto.getRescueAmount());
if (amount.compareTo(BigDecimal.ZERO) > 0) {
AsBillSettelApplyAitemspec s = new AsBillSettelApplyAitemspec();
s.setMainSid(sid);
s.setAttachItem("施救费");
s.setPrice(amount);
if (StringUtils.isNotBlank(dto.getRescueKPAmount())) {
s.setTaxPrice(new BigDecimal(dto.getRescueKPAmount()));
}
if (StringUtils.isNotBlank(dto.getRescuePrint())) {
s.setPrint(new BigDecimal(dto.getRescuePrint()));
printAll = printAll.add(new BigDecimal(dto.getRescuePrint()));
}
if (StringUtils.isNotBlank(dto.getRescueCost())) {
s.setCostTotal(new BigDecimal(dto.getRescueCost()));
costAll = costAll.add(new BigDecimal(dto.getRescueCost()));
}
if (StringUtils.isNotBlank(dto.getRescueRemarks())) {
s.setRemarks(dto.getRescueRemarks());
}
asBillSettelApplyAitemSpecService.insert(s);
}
}
AsBusrepairBillReverseSettle settelApply = fetchBySid(sid);
if (null != settelApply) {
settelApply.setCostAmount(costAll);
settelApply.setProfit(printAll);
baseMapper.updateById(settelApply);
}
return sid;
}
@ -923,4 +1330,60 @@ public class AsBusrepairBillReverseSettleService extends MybatisBaseService<AsBu
ResultBean delegate = delegate(delegateQuery1);
return rb.success();
}
public PagerVo<AsChoseBusrepairbillVo> busrepairListPage(PagerQuery<AsChoseBusrepairbillQuery> pq) {
AsChoseBusrepairbillQuery query = pq.getParams();
QueryWrapper<AsBusrepairBillReverseSettle> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getMenuUrl())) {
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgPath());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<PrivilegeVo> defaultIdReltBean = sysUserFeign.selectPrivilegeLevelPath(privilegeQuery);
if (null != defaultIdReltBean.getData()) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
PrivilegeVo privilegeVo = defaultIdReltBean.getData();
if ("5".equals(privilegeVo.getOrgLevelKey())) {
qw.eq("b.createBySid", privilegeVo.getLevelPath());
} else {
qw.eq("b.orgSidPath", privilegeVo.getLevelPath());
}
} else {
PagerVo<AsChoseBusrepairbillVo> p = new PagerVo<>();
return p;
}
}
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("b.billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getBillType())) {
qw.like("b.billType", query.getBillType());
}
if (StringUtils.isNotBlank(query.getSubject())) {
qw.like("b.`subject`", query.getSubject());
}
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("b.customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getVehMark())) {
qw.like("v.vehMark", query.getVehMark());
}
qw.eq("b.nodeCode",6);
qw.apply("(b.`subject` = '保内' OR (b.`subject` = '保外' and b.settleState = '0'))");
String startDate = query.getEntryTimeStart();
String endDate = query.getEntryTimeEnd();
qw.apply(StringUtils.isNotEmpty(startDate), "date_format (b.entryTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(endDate), "date_format (b.entryTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')"
);
String closeDateStart = query.getSettleDateStart();
String closeDateEnd = query.getSettleDateEnd();
qw.apply(StringUtils.isNotEmpty(closeDateStart), "date_format (s.settleTime,'%Y-%m-%d') >= date_format('" + closeDateStart + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(closeDateEnd), "date_format (s.settleTime,'%Y-%m-%') <= date_format('" + closeDateEnd + "','%Y-%m-%d')"
);
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pq);
IPage<AsChoseBusrepairbillVo> pagging = baseMapper.busrepairListPage(page, qw);
PagerVo<AsChoseBusrepairbillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
}

1
yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java

@ -17,6 +17,7 @@ public enum ProcDefEnum {
ASBWINVOICEAPPLY("工单开票申请", "process_ldw1bs5t:1:14197536"),
ASTECHTITLEAPPLY("维修技师职称备案申请", "process_kl8rqdjf:1:14197604"),
BILLSETTLEAPPLY("工单结算申请", "process_q2p7s99n:2:14900004"),
SALESBILLSETTLEAPPLY("商品配件销售结算申请", "process_q2p7s958752:1:16062504"),
ASHOSESUPPAPPLY("工时提成抵顶配件费用申请", "process_z2d1n43e:1:14197592"),
ASSERVICEITEMAPPLY("维修项目备案申请", "process_mbiz75zg:1:14197572"),
ASSERVICEACCOMMAPPLY("配件销售提成备案申请", "process_89i56wrn:1:14197576"),

20
yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/privilege/PrivilegeVo.java

@ -0,0 +1,20 @@
package com.yxt.anrui.as.feign.portal.privilege;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Fan
* @description
* @date 2024/11/22 11:04
*/
@Data
public class PrivilegeVo {
@ApiModelProperty("权限查询路径")
private String levelPath;
@ApiModelProperty("权限等级")
private String orgLevelKey;
}

6
yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysuser/SysUserFeign.java

@ -1,6 +1,7 @@
package com.yxt.anrui.as.feign.portal.sysuser;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeVo;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -24,4 +25,9 @@ public interface SysUserFeign {
@ApiOperation("根据sid获取一条记录")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysUserVo> fetchBySid(@PathVariable("sid") String sid);
@ApiOperation(value = "查询角色权限的层级获取权限路径")
@PostMapping(value = "/selectPrivilegeLevelPath")
ResultBean<PrivilegeVo> selectPrivilegeLevelPath(@RequestBody PrivilegeQuery query);
}

2
yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java

@ -11,7 +11,7 @@ import lombok.Data;
@Data
public class SmsAttachitemVo {
@ApiModelProperty("附加项目sid")
private String aitemsid;
private String aitemSid;
@ApiModelProperty("附加项目名称")
private String aitemName;
@ApiModelProperty("销售价")

26
yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsCompleteDto.java

@ -0,0 +1,26 @@
package com.yxt.anrui.as.feign.sms.smssalesbill;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SmsCompleteDto {
/**
* 结算金额
*/
private BigDecimal settleAmount;
/**
* 材料费
*/
private BigDecimal goodsAmount;
/**
* 附加费
*/
private BigDecimal addAmount;
private String sid;
}

9
yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java

@ -5,9 +5,7 @@ import com.yxt.anrui.as.feign.sms.SmsGoods;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.*;
/**
* @author Fan
@ -25,4 +23,9 @@ public interface SmsSalesBillFeign {
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<SmsSalesBillDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("配件销售结算")
@PostMapping("/smsBillSettle")
public ResultBean smsBillSettle(@RequestBody SmsCompleteDto dto);
}

6
yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsSalesBillRest.java

@ -157,6 +157,12 @@ public class SmsSalesBillRest {
return smsSalesBillService.printSmsBill(query);
}
@ApiOperation("配件销售结算")
@PostMapping("/smsBillSettle")
public ResultBean smsBillSettle(@RequestBody SmsCompleteDto dto) {
return smsSalesBillService.smsBillSettle(dto);
}
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {

26
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsCompleteDto.java

@ -0,0 +1,26 @@
package com.yxt.sms.biz.smssalesbill;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class SmsCompleteDto {
/**
* 结算金额
*/
private BigDecimal settleAmount;
/**
* 材料费
*/
private BigDecimal goodsAmount;
/**
* 附加费
*/
private BigDecimal addAmount;
private String sid;
}

2
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBill.java

@ -108,4 +108,6 @@ public class SmsSalesBill extends BaseEntity {
private BigDecimal addAmount;
@ApiModelProperty("结算时间")
private String settleTime;
@ApiModelProperty("结算金额")
private BigDecimal settleAmount;
}

79
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smssalesbill/SmsSalesBillService.java

@ -445,13 +445,13 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
vo.setAitemVos(aitemVos);
}
SettlementVo settlementVo = new SettlementVo();
FmsReceivesettle receivesettle = fmsReceivesettleFeign.fetchBySourceSid(sid).getData();
if (null != receivesettle) {
BeanUtil.copyProperties(receivesettle, settlementVo);
settlementVo.setSettleTime(DateUtil.formatDate(receivesettle.getSettleTime()));
vo.setSettlementVo(settlementVo);
}
// SettlementVo settlementVo = new SettlementVo();
// FmsReceivesettle receivesettle = fmsReceivesettleFeign.fetchBySourceSid(sid).getData();
// if (null != receivesettle) {
// BeanUtil.copyProperties(receivesettle, settlementVo);
// settlementVo.setSettleTime(DateUtil.formatDate(receivesettle.getSettleTime()));
// vo.setSettlementVo(settlementVo);
// }
}
return vo;
}
@ -909,4 +909,69 @@ public class SmsSalesBillService extends MybatisBaseService<SmsSalesBillMapper,
return sb.toString();
}
}
public ResultBean smsBillSettle(SmsCompleteDto dto) {
ResultBean rb = ResultBean.fireFail();
SmsSalesBill smsSalesBill = fetchBySid(dto.getSid());
smsSalesBill.setState(0);
smsSalesBill.setSettleTime(DateUtil.formatDate(new Date()));
if (null != dto.getSettleAmount()) {
smsSalesBill.setSettleAmount(dto.getSettleAmount());
}
baseMapper.updateById(smsSalesBill);
List<SmsSalesBillDetail> billDetailList = smsSalesBillDetailService.fetchByMainSid(dto.getSid());
if (!billDetailList.isEmpty()) {
for (SmsSalesBillDetail salesBillDetail : billDetailList) {
Map<String, BigDecimal> map = new HashMap<>();
//取商品id 和 需要扣除数量
String goodsID = salesBillDetail.getGoodsID();
BigDecimal count = salesBillDetail.getCount();
List<WmsInventory> data = wmsInventoryFeign.getListByGoodsID(goodsID).getData();
if (!data.isEmpty()) {
for (WmsInventory inventory : data) {
if (count.compareTo(BigDecimal.ZERO) > 0) {
BigDecimal inventoryCount = inventory.getCount();
if (inventoryCount.compareTo(count) >= 0) {
map.put(inventory.getSid(), count);
count = count.subtract(inventory.getCount());
continue;
}
map.put(inventory.getSid(), inventory.getCount());
count = count.subtract(inventory.getCount());
}
}
for (Map.Entry<String, BigDecimal> entry : map.entrySet()) {
String inventorySid = entry.getKey();
BigDecimal inventoryCount = entry.getValue();
WmsInventoryRecordDto recordDto = new WmsInventoryRecordDto();
WmsInventory inventory = wmsInventoryFeign.fetchEntityBySid(inventorySid).getData();
BigDecimal wiCount = inventory.getCount();
BigDecimal subtractCount = wiCount.subtract(inventoryCount);
recordDto.setInventorySid(inventorySid);
recordDto.setCreateBySid(smsSalesBill.getCreateBySid());
recordDto.setUseOrgSid(smsSalesBill.getDeptSid());
recordDto.setCreateOrgSid(smsSalesBill.getCreateOrgSid());
recordDto.setHandlerSid(smsSalesBill.getCreateBySid());
recordDto.setHandlerName(smsSalesBill.getCreateByName());
recordDto.setGoodsID(goodsID);
recordDto.setSourceBillSid(dto.getSid());
recordDto.setBillNo(smsSalesBill.getBillNo());
recordDto.setBillType("0");
recordDto.setBusTypeKey("11");
recordDto.setBusTypeValue("销售出库");
BeanUtil.copyProperties(inventory, recordDto, "sid", "createBySid");
recordDto.setCount(inventoryCount.toString());
recordDto.setCurrentCount(subtractCount.toString());
wmsInventoryRecordFeign.save(recordDto);
WmsUpdateCountQuery countQuery = new WmsUpdateCountQuery();
countQuery.setSid(inventorySid);
countQuery.setCount(inventoryCount);
countQuery.setAddOrReduce(1);
wmsInventoryFeign.updateInventoryCount(countQuery);
}
}
}
}
return rb.success();
}
}

15
yxt-sms-biz/src/main/resources/application.yml

@ -39,7 +39,20 @@ mybatis-plus:
cache-enabled: true
call-setters-on-nulls: true
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
#hystrix的超时时间
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
timeoutInMilliseconds: 60000
#ribbon的超时时间
ribbon:
ReadTimeout: 60000
ConnectTimeout: 60000
#rocketmq:
# producer:
# group: yxt-supervise-gf

Loading…
Cancel
Save