diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java index 7a152d8d7c..a0019cf440 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java @@ -5433,7 +5433,8 @@ public class FinCollectionConfirmationService extends MybatisBaseService pagging = finUncollectedReceivablesDetailedJRService.getRskPaymentDetailsList(page, qw, useOrgSid, purchaseSystemSid); +// IPage pagging = finUncollectedReceivablesDetailedJRService.getRskPaymentDetailsList(page, qw, useOrgSid, purchaseSystemSid); + IPage pagging = finUncollectedReceivablesDetailedJRService.getRskPaymentDetailsList(page, qw, useOrgSid); return pagging; } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java index 4fe5b2bec2..154f655e7a 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.java @@ -72,11 +72,15 @@ public interface FinUncollectedReceivablesDetailedJRMapper extends BaseMapper getRskPaymentDetailsList(IPage page, - @Param(Constants.WRAPPER) QueryWrapper qw, - @Param("userOrgSid") String userOrgSid, - @Param("purchaseSystemSid") String purchaseSystemSid - ); +// IPage getRskPaymentDetailsList(IPage page, +// @Param(Constants.WRAPPER) QueryWrapper qw, +// @Param("userOrgSid") String userOrgSid, +// @Param("purchaseSystemSid") String purchaseSystemSid +// ); +IPage getRskPaymentDetailsList(IPage page, + @Param(Constants.WRAPPER) QueryWrapper qw, + @Param("userOrgSid") String userOrgSid +); String selNoReturnMoneyRsk(@Param("planSid") String planSid); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml index 54db4308d7..75e3617714 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finuncollectedreceivablesdetailedjr/FinUncollectedReceivablesDetailedJRMapper.xml @@ -141,6 +141,7 @@ ) AS t ORDER BY t.loanContractNo DESC,t.period ASC + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + SELECT + b.sid, + b.billNo, + b.nodeState, + so.`name` useOrgName, + b.dept, + b.createByName, + DATE_FORMAT( b.createTime, '%Y-%m-%d' ) AS applyDate, + DATE_FORMAT( b.closeDate, '%Y-%m-%d' ) AS closeDate, + b.sourceBillNo, + b.customerName, + b.receivableAmount, + b.settleAmount, + b.procInstId, + b.procDefId + FROM + as_bill_settel_apply AS b + LEFT JOIN anrui_portal.sys_organization AS s ON b.deptSid = s.sid + LEFT JOIN anrui_portal.sys_organization AS so ON b.useOrgSid = so.sid + + ${ew.sqlSegment} + + + + + + diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java new file mode 100644 index 0000000000..3f42066e29 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyRest.java @@ -0,0 +1,217 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.as.biz.asbillsettelapply; + +import cn.hutool.core.bean.BeanUtil; +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.asbusrepairbillreversesettle.flowable.*; +import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables; +import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum; +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 com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyQuery; +import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyVo; +import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDetailsVo; +import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDto; + +import javax.validation.Valid; +import java.util.List; + +/** + * Project: settle(结算申请)
+ * File: AsBillSettelApplyFeignFallback.java
+ * Class: com.yxt.anrui.as.biz.asbillsettelapply.AsBillSettelApplyRest
+ * Description: 结算申请.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-08-15 16:25:03
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "结算申请") +@RestController("com.yxt.anrui.as.biz.asbillsettelapply.AsBillSettelApplyRest") +@RequestMapping("v1/settleaccounts") +public class AsBillSettelApplyRest { + + @Autowired + private AsBillSettelApplyService asBillSettelApplyService; + + + @ApiOperation("根据条件分页查询数据的列表") + @PostMapping("/listPage") + public ResultBean> listPage(@RequestBody PagerQuery pq){ + ResultBean rb = ResultBean.fireFail(); + PagerVo pv = asBillSettelApplyService.listPageVo(pq); + return rb.success().setData(pv); + } + + + @ApiOperation("新增或修改") + @PostMapping("/save") + public ResultBean save(@RequestBody AsBillSettelApplyDto dto){ + ResultBean rb = ResultBean.fireFail(); + asBillSettelApplyService.saveOrUpdateDto(dto); + return rb.success(); + } + + + @ApiOperation("根据sid批量删除") + @PostMapping("/delBySids") + public ResultBean delBySids(@RequestBody String[] sids){ + ResultBean rb = ResultBean.fireFail(); + asBillSettelApplyService.delBySids(sids); + return rb.success(); + } + + + @ApiOperation("根据SID获取一条记录") + @GetMapping("/fetchDetailsBySid/{sid}") + public ResultBean 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 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> getPreviousNodesForReject(@Valid @SpringQueryMap SettleNodeQuery query) { + return asBillSettelApplyService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + public ResultBean> 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 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); + } + + +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java new file mode 100644 index 0000000000..428a345221 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbillsettelapply/AsBillSettelApplyService.java @@ -0,0 +1,1043 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.as.biz.asbillsettelapply; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateTime; +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.asbusrepairbill.*; +import com.yxt.anrui.as.api.asbusrepairbillnode.AsBusrepairBillNode; +import com.yxt.anrui.as.api.asbusrepairbillreversesettle.AsBusrepairBillReverseSettle; +import com.yxt.anrui.as.api.asbusrepairbillreversesettle.flowable.*; +import com.yxt.anrui.as.api.asserviceattachitem.AsServiceAttachItem; +import com.yxt.anrui.as.api.asserviceitem.AsServiceItem; +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.asbusrepairbill.AsBusrepairBillService; +import com.yxt.anrui.as.biz.asserviceattachitem.AsServiceAttachItemService; +import com.yxt.anrui.as.biz.asserviceitem.AsServiceItemService; +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; +import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskFeign; +import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskVo; +import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo; +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.sysorganization.SysOrganizationFeign; +import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrg; +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.sms.smssalesbill.*; +import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventory; +import com.yxt.anrui.as.feign.wms.wmsInventory.WmsInventoryFeign; +import com.yxt.common.core.result.ResultBean; +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.vo.PagerVo; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.math.BigDecimal; +import java.util.*; +import java.util.stream.Collectors; + +/** + * Project: settle(结算申请)
+ * File: AsBillSettelApplyService.java
+ * Class: com.yxt.anrui.as.biz.asbillsettelapply.AsBillSettelApplyService
+ * Description: 结算申请 业务逻辑.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-08-15 16:25:03
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Service +public class AsBillSettelApplyService extends MybatisBaseService { + @Autowired + private SysUserFeign sysUserFeign; + @Autowired + private SysOrganizationFeign sysOrganizationFeign; + @Autowired + private AsBusrepairBillService asBusrepairBillService; + @Autowired + private AsServiceItemService asServiceItemService; + @Resource + private WmsInventoryFeign wmsInventoryFeign; + @Autowired + private AsServiceAttachItemService asServiceAttachItemService; + @Resource + private SmsSalesBillFeign smsSalesBillFeign; + @Autowired + private FlowableFeign flowableFeign; + @Autowired + private FlowTaskFeign flowTaskFeign; + @Autowired + private FlowFeign flowFeign; + @Autowired + private MessageFeign messageFeign; + @Autowired + private SysStaffOrgFeign sysStaffOrgFeign; + private QueryWrapper createQueryWrapper(AsBillSettelApplyQuery query) { + // todo: 这里根据具体业务调整查询条件 + // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); + QueryWrapper qw = new QueryWrapper<>(); + return qw; + } + + public PagerVo listPageVo(PagerQuery pq) { + AsBillSettelApplyQuery query = pq.getParams(); + QueryWrapper 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 defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery); + if (StringUtils.isNotBlank(defaultIdReltBean.getData())) { + //数据权限ID(1集团、2事业部、3分公司、4部门、5个人) + String orgSidPath = query.getOrgPath(); + orgSidPath = orgSidPath + "/"; + int i1 = orgSidPath.indexOf("/"); + int i2 = orgSidPath.indexOf("/", i1 + 1); + int i3 = orgSidPath.indexOf("/", i2 + 1); + int i4 = orgSidPath.indexOf("/", i3 + 1); + String orgLevelKey = defaultIdReltBean.getData(); + if ("1".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i1); + qw.like("s.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("s.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("s.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("s.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("b.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("so.name", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDept())) { + qw.like("b.dept", query.getDept()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("b.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("b.billNo", query.getBillNo()); + } + if (StringUtils.isNotBlank(query.getSourceBillNo())) { + qw.like("b.sourceBillNo", query.getSourceBillNo()); + } + String startDate = query.getApplyDateStart(); + String endDate = query.getApplyDateEnd(); + qw.apply(StringUtils.isNotEmpty(startDate), "date_format (b.createTime,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(endDate), "date_format (b.createTime,'%Y-%m-%d') <= date_format('" + endDate + "','%Y-%m-%d')" + ); + String entryStartTime = query.getCloseDateStart(); + String entryEndTime = query.getCloseDateEnd(); + qw.apply(StringUtils.isNotEmpty(entryStartTime), "date_format (b.closeDate,'%Y-%m-%d') >= date_format('" + entryStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(entryEndTime), "date_format (b.closeDate,'%Y-%m-%d') <= date_format('" + entryEndTime + "','%Y-%m-%d')" + ); + if (StringUtils.isNotBlank(query.getCustomerName())) { + qw.like("b.customerName", query.getCustomerName()); + } + qw.orderByDesc("b.id"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectPageVo(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return p; + } + + public String saveOrUpdateDto(AsBillSettelApplyDto dto) { + String dtoSid = dto.getSid(); + if (StringUtils.isBlank(dtoSid)) { + String s = this.insertByDto(dto); + return s; + } + this.updateByDto(dto); + return dtoSid; + } + + /** + * 生成单据编号 + * + * @param orgSid + * @return + */ + public String getApplyCode(String orgSid) { + //获取分公司sid + ResultBean resultBean1 = sysOrganizationFeign.fetchBySid(orgSid); + String orgCode = resultBean1.getData().getOrgCode(); + AsBillNo b = new AsBillNo(); + b.setOrgCode(orgCode); + b.setBillType(AsBillTypeEnum.JSSQ.getBillType()); + String bill = AsRule.getBill(b); + int i = baseMapper.selectNum(bill); + String billNo = AsRule.getBillNo(bill, i); + return billNo; + } + + public String insertByDto(AsBillSettelApplyDto dto) { + AsBillSettelApply entity = new AsBillSettelApply(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + String applyCode = getApplyCode(dto.getUseOrgSid()); + entity.setBillNo(applyCode); + baseMapper.insert(entity); + return entity.getSid(); + } + + public void updateByDto(AsBillSettelApplyDto dto) { + String dtoSid = dto.getSid(); + if (StringUtils.isBlank(dtoSid)) { + return; + } + AsBillSettelApply entity = fetchBySid(dtoSid); +// BeanUtil.copyProperties(dto, entity, "id", "sid"); + if (StringUtils.isNotBlank(dto.getRemarks())) { + entity.setRemarks(dto.getRemarks()); + } + baseMapper.updateById(entity); + } + + public AsBillSettelApplyDetailsVo fetchDetailsVoBySid(String sid) { + AsBillSettelApplyDetailsVo vo = new AsBillSettelApplyDetailsVo(); + AsBillSettelApply entity = fetchBySid(sid); + if (null != entity) { + BeanUtil.copyProperties(entity, vo); + vo.setApplyDate(DateUtil.formatDate(entity.getCreateTime())); + if (StringUtils.isNotBlank(entity.getProcInstId())) { + vo.setProcInsId(entity.getProcInstId()); + vo.setInstanceId(entity.getProcInstId()); + } + int sourceBill = entity.getSourceBillType().intValue(); + String sourceSid = entity.getSourceSid(); + if (sourceBill == 0) { + //维修工单 + AsBusrepairBillDetailsVo data = asBusrepairBillService.fetchDetailsBySid(sourceSid).getData(); + if (null != data) { + 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()); + 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()); + } + 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()); + } + + 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()); + } + if (StringUtils.isNotBlank(data.getRescueKPAmount())) { + vo.setRescueKPAmount(data.getRescueKPAmount()); + rescueKPAmount = new BigDecimal(data.getRescueKPAmount()); + } + List sitemVos = data.getSitemVos(); + if (!sitemVos.isEmpty()) { + List 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()); + } + jiesuan = yingshou.subtract(youhui); + v.setSitemSettleAmount(jiesuan.toString()); + //求成本 + AsServiceItem item = asServiceItemService.fetchBySid(s.getServiceItemSid()); + if (null != item) { + if (null != item.getCost()) { + chengben = item.getCost(); + } + } + 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 goodsDetailsVos = data.getGoodsDetailsVos(); + if (!goodsDetailsVos.isEmpty()) { + List goodsList = new ArrayList<>(); + for (GoodsDetailsVo g : goodsDetailsVos) { + SettleGoodsDetailsVo v = new SettleGoodsDetailsVo(); + BeanUtil.copyProperties(g,v); + 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(g.getPrice())) { + BigDecimal price = new BigDecimal(g.getPrice()); + yingshou = price.multiply(count); + v.setGoodsReceivableAmount(yingshou.toString()); + } + if (StringUtils.isNotBlank(g.getDiscountAmount())) { + youhui = new BigDecimal(g.getDiscountAmount()); + } + 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 aitemVos = data.getAitemVos(); + if (!aitemVos.isEmpty()) { + List 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 (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); + } + if (outKPAmount.compareTo(BigDecimal.ZERO) > 0) { + profit = profit.add(outKPAmount); + } else { + profit = profit.add(outAmount); + } + if (subsidyKPAmount.compareTo(BigDecimal.ZERO) > 0) { + profit = profit.add(subsidyKPAmount); + } else { + profit = profit.add(subsidyAmount); + } + if (rescueKPAmount.compareTo(BigDecimal.ZERO) > 0) { + profit = profit.add(rescueKPAmount); + } else { + profit = profit.add(rescueAmount); + } + vo.setProfit(profit.toString()); + vo.setCostAmount(costAmount.toString()); + List fileName = data.getFileName(); + if (!fileName.isEmpty()) { + vo.setFileName(fileName); + List files = new ArrayList<>(); + for (FileUrlQuery fileUrlQuery : fileName) { + files.add(fileUrlQuery.getUrl()); + } + vo.setFileName2(files); + } + } + } else if (sourceBill == 1) { + //销售单 + //维修工单 + SmsSalesBillDetailsVo data = smsSalesBillFeign.fetchDetailsBySid(sourceSid).getData(); + if (null != data) { + vo.setSourceBillDate(data.getCreateTime()); + if (StringUtils.isNotBlank(data.getSalesName())) { + vo.setWaitorName(data.getSalesName()); + } + vo.setBillType("销售单"); + vo.setSubject(data.getSubject()); + 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()); + } + SalesInvoiceVo invoiceVo = data.getInvoiceVo(); + if (null != invoiceVo) { + if (StringUtils.isNotBlank(invoiceVo.getIsInvoicing())) { + vo.setIsInvoicing(invoiceVo.getIsInvoicing()); + } + if (StringUtils.isNotBlank(invoiceVo.getTaxRate())) { + vo.setTaxRate(invoiceVo.getTaxRate()); + } + } + 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.getGoodsAmount())) { + vo.setGoodsAmount(data.getGoodsAmount()); + } + if (StringUtils.isNotBlank(data.getAddAmount())) { + vo.setAddAmount(data.getAddAmount()); + } + if (StringUtils.isNotBlank(data.getDiscountAmount())) { + vo.setDiscountAmount(data.getDiscountAmount()); + } + List goodsDetailsVos = data.getGoodsVos(); + if (!goodsDetailsVos.isEmpty()) { + List goodsList = new ArrayList<>(); + for (SalesGoodsVo g : goodsDetailsVos) { + SettleGoodsDetailsVo v = new SettleGoodsDetailsVo(); + BeanUtil.copyProperties(g,v); + 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(g.getPrice())) { + BigDecimal price = new BigDecimal(g.getPrice()); + yingshou = price.multiply(count); + v.setGoodsReceivableAmount(yingshou.toString()); + } + if (StringUtils.isNotBlank(g.getDiscountAmount())) { + youhui = new BigDecimal(g.getDiscountAmount()); + } + 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 aitemVos = data.getAitemVos(); + if (!aitemVos.isEmpty()) { + List aitemVoList = new ArrayList<>(); + for (SmsAttachitemVo 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 (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.setProfit(profit.toString()); + vo.setCostAmount(costAmount.toString()); + } + } + } + + return vo; + } + + //--------------------------flow---------------------------------- + public ResultBean submit(SubmitSettleDto dto) { + ResultBean rb = ResultBean.fireFail(); + AsBillSettelApply settelApply = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, settelApply); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveOrUpdateDto(dto); + settelApply = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //用户的部门全路径sid + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(settelApply.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + settelApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("结算申请"); + messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("结算申请"); + messageFeign.pushMessage(messageFlowableQuery); + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(settelApply.getTaskId()); + bv.setTaskDefKey(settelApply.getNodeSid()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private synchronized int submitBusinessData(SubmitSettleDto dto, AsBillSettelApply settelApply) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (settelApply != null) { + String businessTaskId = settelApply.getTaskId(); + if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) { + //新提交 + r = 1; + } else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) { + //二次提交//只有数据一致的时候才能进行下一步 + r = 2; + } + } else { + r = 3; + } + + } + return r; + } + + private int updateFlowFiled(Map map) { + return baseMapper.updateFlowFiled(map); + } + + public ResultBean complete(BusinessVariables bv) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = bv.getBusinessSid(); + AsBillSettelApply settelApply = fetchBySid(businessSid); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + FlowProcessMapQuery flowProcessMapQuery = new FlowProcessMapQuery(); + if (StringUtils.isBlank(settelApply.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(settelApply.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(settelApply.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + if (bv.getTaskId().equals(settelApply.getTaskId())) { + ResultBean resultBean = flowFeign.handleProsess(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { + + + } else { + //极光推送 + settelApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(settelApply.getProcDefId()); + ufVo.setProcInsId(settelApply.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("结算申请"); + messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("结算申请"); + messageFeign.pushMessage(messageFlowableQuery); + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(SettleNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SettleNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(SettleNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId()); + ResultBean>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv); + //判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo + List voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), SettleNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(SettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + AsBillSettelApply settelApply = fetchBySid(businessSid); + if (settelApply == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = settelApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + Map variables = new HashMap<>(); + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + variables.put("app", appMap); + flowTaskVo.setValues(variables); + ResultBean resultBean = flowableFeign.taskReject(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + UpdateFlowFieldVo ufVo = resultBean.getData(); + Map map = BeanUtil.beanToMap(ufVo); + //更新业务中的流程相关的参数 + updateFlowFiled(map); + //极光推送 + settelApply = fetchBySid(businessSid); + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = settelApply.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(settelApply.getProcDefId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("结算申请"); + ResultBean> listResultBean = flowTaskFeign.getLatestTasks(procId); + String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_(); + List receiveSidList = Arrays.asList(nextNodeUserSids.split(",")); + if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(settelApply.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(settelApply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("结算申请"); + messageFeign.pushMessage(messageFlowableQuery); + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(SettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + AsBillSettelApply settelApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = settelApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.revokeProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); + return rb.success().setData(resultBean.getData()); + } + } + return rb.setMsg("操作失败,提交的数据不一致!"); + } + + public ResultBean breakProcess(SettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + if (StringUtils.isBlank(query.getComment())) { + return rb.setMsg("请填写意见"); + } + AsBillSettelApply settelApply = fetchBySid(query.getBusinessSid()); + String businessTaskId = settelApply.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(settelApply.getCreateBySid())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } else { + if (businessTaskId.equals(query.getTaskId())) { + FlowTaskVo flowTaskVo = new FlowTaskVo(); + BeanUtil.copyProperties(query, flowTaskVo); + ResultBean resultBean = flowableFeign.breakProcess(flowTaskVo); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + Map map = BeanUtil.beanToMap(resultBean.getData()); + updateFlowFiled(map); + return rb.success().setData(resultBean.getData()); + } + } + + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean delegate(SettleDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); + } + + public ResultBean agreeCreditInfo(CompleteSettleDto dto) { + ResultBean rb = ResultBean.fireFail(); + //根据用户sid获取staffSid + ResultBean userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); + if (!userVoResultBean.getSuccess()) { + return rb.setMsg(userVoResultBean.getMsg()); + } + //根据staffSid获取用户的组织全路径 + ResultBean staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid()); + if (!staffOrgResultBean.getSuccess()) { + return rb.setMsg(staffOrgResultBean.getMsg()); + } + //用户的组织全路径 + String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); + SettleCompleteDto completeDto = new + SettleCompleteDto(); + BeanUtil.copyProperties(dto, completeDto); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(completeDto, bv); + bv.setModelId(ProcDefEnum.BILLSETTLEAPPLY.getProDefId()); + ResultBean resultBean = complete(bv); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + + public ResultBean rejectCreditInfo(AppSettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + SettleTaskQuery taskQuery = new + SettleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = reject(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean recallCreditInfo(AppSettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + SettleTaskQuery taskQuery = new + SettleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = revokeProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean stopCreditInfo(AppSettleTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + SettleTaskQuery taskQuery = new + SettleTaskQuery(); + BeanUtil.copyProperties(query, taskQuery); + ResultBean resultBean = breakProcess(taskQuery); + if (!resultBean.getSuccess()) { + return rb.setMsg(resultBean.getMsg()); + } + return rb.success().setData(resultBean.getData()); + } + + public ResultBean getFlowOperateTitle(SettleFlowableQuery query) { + ResultBean rb = ResultBean.fireFail(); + //0 上一环节 1下一环节 + int next = query.getNext(); + SettleNodeQuery getNodeQuery = new + SettleNodeQuery(); + BeanUtil.copyProperties(query, getNodeQuery); + String data = ""; + if (next == 0) { + ResultBean> getPreviousNodesForReject = getPreviousNodesForReject(getNodeQuery); + if (getPreviousNodesForReject.getSuccess()) { + getPreviousNodesForReject.getData().removeAll(Collections.singleton(null)); + data = getPreviousNodesForReject.getData().get(0).getName(); + } else { + return rb.setMsg(getPreviousNodesForReject.getMsg()); + } + } else if (next == 1) { + ResultBean> getNextNodesForSubmit = getNextNodesForSubmit(getNodeQuery); + if (getNextNodesForSubmit.getSuccess()) { + getNextNodesForSubmit.getData().removeAll(Collections.singleton(null)); + data = getNextNodesForSubmit.getData().get(0).getName(); + } else { + return rb.setMsg(getNextNodesForSubmit.getMsg()); + } + } else { + return rb.setMsg("参数错误:next"); + } + return rb.success().setData(data); + } + + public ResultBean delegate2(AppSettleDelegateQuery delegateQuery) { + ResultBean rb = ResultBean.fireFail(); + SettleDelegateQuery delegateQuery1 = new + SettleDelegateQuery(); + BeanUtil.copyProperties(delegateQuery, delegateQuery1); + ResultBean delegate = delegate(delegateQuery1); + return rb.success(); + } + +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index abb5a9da46..b3457e30b7 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -6,6 +6,8 @@ import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.yxt.anrui.as.api.asappendix.AsAppendix; +import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApply; +import com.yxt.anrui.as.api.asbillsettelapply.AsBillSettelApplyDto; import com.yxt.anrui.as.api.asbusrepairbill.*; import com.yxt.anrui.as.api.asbusrepairbill.app.*; import com.yxt.anrui.as.api.asbusrepairbillaitem.AsBusrepairBillAitem; @@ -28,6 +30,7 @@ import com.yxt.anrui.as.api.utils.FileUrlQuery; import com.yxt.anrui.as.api.utils.domain.AsBillNo; import com.yxt.anrui.as.biz.asappendix.AsAppendixService; import com.yxt.anrui.as.biz.asarrearsoutapply.AsArrearsoutApplyService; +import com.yxt.anrui.as.biz.asbillsettelapply.AsBillSettelApplyService; import com.yxt.anrui.as.biz.asbusclaimbill.AsBusclaimBillService; import com.yxt.anrui.as.biz.asbusrepairbillaitem.AsBusrepairBillAitemService; import com.yxt.anrui.as.biz.asbusrepairbillinsurance.AsBusrepairBillInsuranceRest; @@ -71,6 +74,7 @@ import com.yxt.common.base.utils.WordConvertUtils; 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.ApiModelProperty; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -148,7 +152,8 @@ public class AsBusrepairBillService extends MybatisBaseService aitemVos = dto.getAitemVos(); for (AitemVo aitemVo : aitemVos) { AsBusrepairBillAitem aitem = new AsBusrepairBillAitem(); - if (StringUtils.isNotBlank(aitemVo.getAitemsid())) { - aitem.setAttachItemSid(aitemVo.getAitemsid()); + if (StringUtils.isNotBlank(aitemVo.getAitemSid())) { + aitem.setAttachItemSid(aitemVo.getAitemSid()); } if (StringUtils.isNotBlank(aitemVo.getAitemName())) { aitem.setAttachItem(aitemVo.getAitemName()); @@ -623,7 +628,7 @@ public class AsBusrepairBillService extends MybatisBaseService + * File: SysStaffOrg.java
+ * Class: com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg
+ * Description: 员工部门关联表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:29
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "员工部门关联表", description = "员工部门关联表") +@TableName("sys_staff_org") +@Data +public class SysStaffOrg extends BaseEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("部门sid") + private String orgSid; + + @ApiModelProperty("部门名称") + private String orgName; + + @ApiModelProperty("人员sid") + private String staffSid; + + @ApiModelProperty("部门路径") + private String orgSidPath; + + @ApiModelProperty("部门名称路径") + private String orgNamePath; + + @ApiModelProperty("管理类型:1、主管。2、分管。3、员工") + private String manageType; +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysstafforg/SysStaffOrgFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysstafforg/SysStaffOrgFeign.java index 8ea0e03946..8f4ad1fe3e 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysstafforg/SysStaffOrgFeign.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/portal/sysstafforg/SysStaffOrgFeign.java @@ -22,4 +22,9 @@ public interface SysStaffOrgFeign { @ResponseBody @ApiOperation("根据用户组织全路径获取用户的分公司sid") ResultBean getOrgSidByPath(@RequestParam("orgPath") String orgPath); + + @GetMapping("/getOrgByStaffSid") + @ResponseBody + @ApiOperation("根据组织staffSid获取分公司SysStaffOrg") + ResultBean getOrgByStaffSid(@RequestParam(value = "staffSid") String staffSid); } diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesGoodsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesGoodsVo.java new file mode 100644 index 0000000000..59906aaf2f --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesGoodsVo.java @@ -0,0 +1,72 @@ +package com.yxt.anrui.as.feign.sms.smssalesbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/19 15:18 + */ +@Data +public class SalesGoodsVo { + @ApiModelProperty("商品Sku名称") + private String goodsSkuTitle; // 商品Sku名称 + private String sid; + //商品sid + private String goodSpuSid; + private String inventorySid; + private String goodsSkuSid; + //商品名称 + private String goodsSpuName; + //商品编码(图号) + private String goodsSkuCode; + @ApiModelProperty("计量单位") + private String unit; + @ApiModelProperty("出/退库数量") + private String count; + @ApiModelProperty("销售价(元)") + private String price; + //折扣(0-10,0免费,10不打折) + private String discount; + //优惠金额(=销售价*(1-折扣*0.1)) + private String discountAmount; + //金额(销售价-优惠金额) + private String amount; + @ApiModelProperty("备注") + private String remarks; + + @ApiModelProperty("库存数量") + private String currentCount; + @ApiModelProperty("厂家") + private String supplierName; + @ApiModelProperty("商品ID") + private String goodsID; // 商品ID + + //规格型号 + private String goodsSkuOwnSpec; + //仓库Sid + private String warehouseSid; + //仓库 + private String warehouseName; + //库区sid + private String areaSid; + //库区 + private String areaName; + //库位sid + private String warehouseRackSid; + //库位编码 + private String warehouseRackCode; + //供应商sid + private String billObjSid; + //供应商 + private String billObjName; + //销售价常量 + private String goodsDetailsPrice; + //是否含税(0含税,1不含税) + private String isTaxRate; + @ApiModelProperty("厂家sid") + private String manufacturerSid; // 库位sid + @ApiModelProperty("厂家名称") + private String manufacturerName; // 库位编号 +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesInvoiceVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesInvoiceVo.java new file mode 100644 index 0000000000..8d1064bbbf --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SalesInvoiceVo.java @@ -0,0 +1,30 @@ +package com.yxt.anrui.as.feign.sms.smssalesbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/19 15:14 + */ +@Data +public class SalesInvoiceVo { + + @ApiModelProperty("是否需要开发票(是1,否0)") + private String isInvoicing; // 是否需要开发票(是1,否0) + @ApiModelProperty("发票类型") + private String invoiceType; // 发票类型 + private String invoiceTypeKey; // 发票类型Key + @ApiModelProperty("开票名称") + private String invoiceTitle; // 开票名称 + @ApiModelProperty("税号") + private String taxpayerNo; // 税号 + @ApiModelProperty("发票号码") + private String invoiceCode; // 发票号码 + @ApiModelProperty("税率") + private String taxRate; // 税率 + @ApiModelProperty("开票单位sid") + private String invoiceTitleSid; // 开票单位sid + +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SettlementVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SettlementVo.java new file mode 100644 index 0000000000..bc85b6be74 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SettlementVo.java @@ -0,0 +1,37 @@ +package com.yxt.anrui.as.feign.sms.smssalesbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/3/20 15:42 + */ +@Data +public class SettlementVo { + @ApiModelProperty("付款人编号") + private String payerNo; // 付款人编号 + @ApiModelProperty("付款人名称") + private String payerName; // 付款人名称 + @ApiModelProperty("应收金额") + private String receivableAmount; // 应收金额 + @ApiModelProperty("订金抵扣") + private String depositdeductAmount; // 订金抵扣 + @ApiModelProperty("结算方式key") + private String settleKey; // 结算方式key + @ApiModelProperty("结算方式value") + private String settleValue; // 结算方式value + @ApiModelProperty("结算金额") + private String settleAmount; // 结算金额 + @ApiModelProperty("其他结算方式") + private String otherSettleKey; // 其他结算方式 + @ApiModelProperty("其他结算方式") + private String otherSettleValue; // 其他结算方式 + @ApiModelProperty("其他结算金额") + private String otherSettleAmount; // 其他结算金额 + @ApiModelProperty("欠款金额") + private String debts; // 欠款金额 + @ApiModelProperty("结算时间") + private String settleTime; // 结算时间 +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java new file mode 100644 index 0000000000..55f5c4c304 --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsAttachitemVo.java @@ -0,0 +1,24 @@ +package com.yxt.anrui.as.feign.sms.smssalesbill; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Fan + * @description + * @date 2024/6/20 11:09 + */ +@Data +public class SmsAttachitemVo { + @ApiModelProperty("附加项目sid") + private String aitemsid; + @ApiModelProperty("附加项目名称") + private String aitemName; + @ApiModelProperty("销售价") + private String price; + @ApiModelProperty("备注") + private String remarks; + @ApiModelProperty("销售价常量") + private String aitemPrice; + +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillDetailsVo.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillDetailsVo.java new file mode 100644 index 0000000000..1ffe04d0dd --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillDetailsVo.java @@ -0,0 +1,119 @@ +/********************************************************* + ********************************************************* + ******************** ******************* + ************* ************ + ******* _oo0oo_ ******* + *** o8888888o *** + * 88" . "88 * + * (| -_- |) * + * 0\ = /0 * + * ___/`---'\___ * + * .' \\| |// '. * + * / \\||| : |||// \ * + * / _||||| -:- |||||- \ * + * | | \\\ - /// | | * + * | \_| ''\---/'' |_/ | * + * \ .-\__ '-' ___/-. / * + * ___'. .' /--.--\ `. .'___ * + * ."" '< `.___\_<|>_/___.' >' "". * + * | | : `- \`.;`\ _ /`;.`/ - ` : | | * + * \ \ `_. \_ __\ /__ _/ .-` / / * + * =====`-.____`.___ \_____/___.-`___.-'===== * + * `=---=' * + * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * + *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* + *********************************************************/ +package com.yxt.anrui.as.feign.sms.smssalesbill; + + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * Project: sms(sms)
+ * File: SmsSalesBillVo.java
+ * Class: com.yxt.sms.api.smssalesbill.SmsSalesBillVo
+ * Description: 销售单 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2024-03-15 17:24:44
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Data +@ApiModel(value = "销售单 视图数据详情", description = "销售单 视图数据详情") +public class SmsSalesBillDetailsVo implements Vo { + + private String sid; // sid + private String createTime; + @ApiModelProperty("制单人姓名") + private String createByName; // 制单人姓名 + @ApiModelProperty("制单部门sid") + private String deptSid; // 制单部门sid + @ApiModelProperty("制单部门") + private String deptName; // 制单部门 + @ApiModelProperty("创建者") + private String createBySid; + @ApiModelProperty("客户sid") + private String customerSid; // 客户sid + @ApiModelProperty("客户名称") + private String customerName; // 客户名称 + @ApiModelProperty("联系电话") + private String mobile; // 联系电话 + @ApiModelProperty("车牌号") + private String vehMark; // 车牌号 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("科目sid") + private String subjectSid; // 科目sid + @ApiModelProperty("科目") + private String subject; // 科目 + @ApiModelProperty("销售用户sid单选)(销售用户sid)") + private String salesUserSid; // 销售用户sid单选)(销售用户sid) + @ApiModelProperty("销售姓名") + private String salesName; // 销售姓名 + @ApiModelProperty("条形码") + private String barCode; // 条形码 + @ApiModelProperty("快捷备注(选择)") + private String shotRemarks; // 快捷备注(选择) + @ApiModelProperty("备注(打印)") + private String printRemarks; // 备注(打印) + @ApiModelProperty("整体优惠金额") + private String discountAmount; // 整体优惠金额 + @ApiModelProperty("整体优惠券") + private String coupon; // 整体优惠券 + @ApiModelProperty("积分抵扣") + private String scoreDeduct; // 积分抵扣 + private SalesInvoiceVo invoiceVo = new SalesInvoiceVo(); //发票信息 + private List goodsVos = new ArrayList<>(); //商品信息 + private SettlementVo settlementVo = new SettlementVo(); //结算信息 + @ApiModelProperty("使用组织sid") + private String useOrgSid; // 使用组织sid + @ApiModelProperty("创建组织sid") + private String createOrgSid; // 创建组织sid + + + @ApiModelProperty("车架号") + private String vinNo; // 车架号 + @ApiModelProperty("备注") + private String remarks; // 车架号 + @ApiModelProperty("客户单位") + private String customerOrg; // 客户单位 + @ApiModelProperty("应收金额") + private String receivableAmount; + @ApiModelProperty("材料费") + private String goodsAmount; + @ApiModelProperty("附加费") + private String addAmount; + private List aitemVos = new ArrayList<>();// 附加项目 + + + +} diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java new file mode 100644 index 0000000000..5e0f7cf95e --- /dev/null +++ b/yxt-as/src/main/java/com/yxt/anrui/as/feign/sms/smssalesbill/SmsSalesBillFeign.java @@ -0,0 +1,28 @@ +package com.yxt.anrui.as.feign.sms.smssalesbill; + +import com.yxt.anrui.as.feign.base.basemanufacturer.BaseManufacturerFeignFallback; +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; + +/** + * @author Fan + * @description + * @date 2024/4/28 13:40 + */ +@FeignClient( + contextId = "yxt-sms-SmsSalesBill", + name = "yxt-sms", + path = "apiadmin/v1/smssalesbill", + fallback = BaseManufacturerFeignFallback.class +) +public interface SmsSalesBillFeign { + + @ApiOperation("根据SID获取一条记录") + @GetMapping("/fetchDetailsBySid/{sid}") + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); +}