diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerService.java index 55127b790e..8c7d9a3539 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerService.java @@ -63,6 +63,8 @@ import com.yxt.anrui.base.common.utils.domain.BillNo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo; import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesordertrailer.BusSalesOrderTrailerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesordertrailer.BusSalesOrderTrailerFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign; @@ -165,6 +167,8 @@ public class BaseTrailerService extends MybatisBaseService createQueryWrapper(BaseTrailerQuery query) { // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); @@ -293,6 +297,26 @@ public class BaseTrailerService extends MybatisBaseService data = busSalesOrderTrailerFeign.fetchDetailsByOrderSid(orderSid).getData(); + if (data != null && data.size() > 0){ + Boolean tg = false; + for (BusSalesOrderTrailerDetailsVo datum : data) { + if (datum.getAppearanceSizeLong().toString().equals(appearanceSizeLong) && datum.getTrailerTypeKey().equals(trailerTypeKey)){ + tg = true; + break; + } + } + if (!tg){ + return rb.setMsg("该挂车类型和外廓长与绑定的主车销售订单中挂车类型和外廓长不一致,无法入库"); + } + } + } //厂商结算价 String settlementPrice = dto.getSettlementPrice(); if (StringUtils.isNotBlank(settlementPrice)) { diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java index ca8acdd36d..8ca928ecaa 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java @@ -167,4 +167,8 @@ public interface BusSalesOrderVehicleFeign { @ApiOperation("维护实际还款人") @PostMapping("/maintReaRepayment") public ResultBean maintReaRepayment(@RequestBody ReaRepaymentDto reaRepaymentDto); + + @ApiOperation("根据车辆sid查询最新一条不为终止的销售订单") + @PostMapping("/selectOneByVehSidAndNotStop") + ResultBean selectOneByVehSidAndNotStop(@RequestParam("vehSid") String vehSid); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java index e08fdaea1b..a20623cc19 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java @@ -163,4 +163,9 @@ public class BusSalesOrderVehicleFeignFallback implements BusSalesOrderVehicleFe return null; } + @Override + public ResultBean selectOneByVehSidAndNotStop(String vehSid) { + return null; + } + } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java index 2250c5e3fc..2e054ed7ca 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java @@ -181,4 +181,6 @@ public interface BusSalesOrderVehicleMapper extends BaseMapper selectBySalesOrderSid2(String saleOrderSid); + + String selectOneByVehSidAndNotStop(String vehSid); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml index 54f5c94c5f..8c25131095 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml @@ -352,4 +352,16 @@ WHERE salesOrderSid = #{saleOrderSid} AND loanContractSid = #{loanContractSid} + + \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java index 3f7a295a2c..e3ed02d2c2 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java @@ -185,4 +185,11 @@ public class BusSalesOrderVehicleRest implements BusSalesOrderVehicleFeign { busSalesOrderVehicleService.maintReaRepayment(reaRepaymentDto); return rb.success(); } + + @Override + public ResultBean selectOneByVehSidAndNotStop(String vehSid) { + ResultBean rb = ResultBean.fireFail(); + String orderSid = busSalesOrderVehicleService.selectOneByVehSidAndNotStop(vehSid); + return rb.success().setData(orderSid); + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java index 0ce14aee2a..8ed42d3367 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java @@ -663,4 +663,8 @@ public class BusSalesOrderVehicleService extends MybatisBaseService selectBySalesOrderSid2(String saleOrderSid) { return baseMapper.selectBySalesOrderSid2(saleOrderSid); } + + public String selectOneByVehSidAndNotStop(String vehSid) { + return baseMapper.selectOneByVehSidAndNotStop(vehSid); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loanhomevisitinvestigate/LoanHomeVisitInvestigateService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loanhomevisitinvestigate/LoanHomeVisitInvestigateService.java index 08b39d07b4..64d87323a9 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loanhomevisitinvestigate/LoanHomeVisitInvestigateService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loanhomevisitinvestigate/LoanHomeVisitInvestigateService.java @@ -421,6 +421,7 @@ public class LoanHomeVisitInvestigateService { loanHomevisitAppealQuery.setNames(params.getNames()); loanHomevisitAppealQuery.setMenuSid(params.getMenuSid()); pq.setParams(loanHomevisitAppealQuery); + pq.setSize(5000); ResultBean> resultBean = loanHomevisitAppealFeign.listPage(pq); List loanHomeVisitInvestigatePageVos = new ArrayList<>(); PagerVo v = new PagerVo<>(); diff --git a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsTypeRest.java b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsTypeRest.java index 753a28db1f..dcd6bb5b52 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsTypeRest.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsTypeRest.java @@ -35,10 +35,10 @@ public class BaseGoodsTypeRest { return baseGoodsTypeService.listAll(query); } - @ApiOperation("根据部门sid查询类别") + @ApiOperation("根据数据权限查询类别") @PostMapping("/selectByUseOrgSid") - public ResultBean> selectByUseOrgSid(@RequestParam String deptSid) { - return baseGoodsTypeService.selectByUseOrgSid(deptSid); + public ResultBean> selectByUseOrgSid(@RequestBody PagerQuery pq) { + return baseGoodsTypeService.selectByUseOrgSid(pq); } @ApiOperation("保存修改") diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeChoiceQuery.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeChoiceQuery.java new file mode 100644 index 0000000000..b0a86c5d15 --- /dev/null +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeChoiceQuery.java @@ -0,0 +1,19 @@ +package com.yxt.base.biz.base.basegoodstype; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2024/2/26 13:37 + */ +@Data +public class BaseGoodsTypeChoiceQuery implements Query { + + private String code; + private String deptSid; + private String menuUrl; + private String name; + private String orgPath; + private String userSid; +} diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java index fa7cdbecc0..546cd91ad8 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java @@ -26,6 +26,5 @@ public interface BaseGoodsTypeMapper extends BaseMapper { List selListAll(@Param(Constants.WRAPPER) QueryWrapper qw); - @Select("select * from base_goods_type where useOrgSid = #{deptSid}") - List selectByUseOrgSid(String deptSid); + IPage selectByUseOrgSid(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); } diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml index 637f5712da..efc70c07c8 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml @@ -45,4 +45,12 @@ #{item} + + diff --git a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java index d7fd90f060..a8f71313be 100644 --- a/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java +++ b/yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java @@ -115,6 +115,60 @@ public class BaseGoodsTypeService extends MybatisBaseService> selectByUseOrgSid(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + BaseGoodsTypeChoiceQuery 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("u.orgSidPath", orgSidPath); + } else if ("2".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i2); + qw.like("u.orgSidPath", orgSidPath); + } else if ("3".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i3); + qw.like("u.orgSidPath", orgSidPath); + } else if ("4".equals(orgLevelKey)) { + orgSidPath = orgSidPath.substring(0, i4); + qw.like("u.orgSidPath", orgSidPath); + } else if ("5".equals(orgLevelKey)) { + qw.eq("p.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } else { + PagerVo p = new PagerVo<>(); + return rb.success().setData(p); + } + } + if (StringUtils.isNotBlank(query.getName())) { + qw.like("p.goodsTypeName", query.getName()); + } + if (StringUtils.isNotBlank(query.getCode())) { + qw.like("p.goodsTypeCode", query.getCode()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.selectByUseOrgSid(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + public ResultBean> listAll(OrgPathQuery query) { ResultBean rb = ResultBean.fireFail(); QueryWrapper qw = new QueryWrapper<>(); @@ -304,10 +358,4 @@ public class BaseGoodsTypeService extends MybatisBaseService> selectByUseOrgSid(String deptSid) { - ResultBean rb = ResultBean.fireFail(); - List baseGoodsTypeChoiceVos = baseMapper.selectByUseOrgSid(deptSid); - return rb.success().setData(baseGoodsTypeChoiceVos); - } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillDetailRest.java b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillDetailRest.java index 3f2d2bfd53..89b8a8af06 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillDetailRest.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillDetailRest.java @@ -49,33 +49,7 @@ import org.springframework.web.bind.annotation.*; */ @Api(tags = "价格策略申请明细") @RestController -@RequestMapping("/apiadmin/sms/smspricestrategybilldetail") +@RequestMapping("v1/smspricestrategybilldetail") public class SmsPricestrategyBillDetailRest { - @Autowired - private SmsPricestrategyBillDetailService smsPricestrategyBillDetailService; - - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody SmsPricestrategyBillDetailDto dto){ - ResultBean rb = ResultBean.fireFail(); - smsPricestrategyBillDetailService.saveOrUpdateDto(dto); - return rb.success(); - } - - @ApiOperation("根据sid批量删除") - @DeleteMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - smsPricestrategyBillDetailService.delBySids(sids); - return rb.success(); - } - - @ApiOperation("根据SID获取一条记录") - @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - SmsPricestrategyBillDetailDetailsVo vo = smsPricestrategyBillDetailService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java index a00751731c..e0f0e56c58 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java @@ -49,41 +49,7 @@ import org.springframework.web.bind.annotation.*; */ @Api(tags = "价格策略商品类别明细") @RestController -@RequestMapping("/apiadmin/sms/smspricestrategybillgoodstypedetail") +@RequestMapping("v1/smspricestrategybillgoodstypedetail") public class SmsPricestrategyBillGoodstypedetailRest { - @Autowired - private SmsPricestrategyBillGoodstypedetailService smsPricestrategyBillGoodstypedetailService; - - @ApiOperation("根据条件分页查询数据的列表") - @PostMapping("/listPage") - public ResultBean> listPage(@RequestBody PagerQuery pq){ - ResultBean rb = ResultBean.fireFail(); - PagerVo pv = smsPricestrategyBillGoodstypedetailService.listPageVo(pq); - return rb.success().setData(pv); - } - - @ApiOperation("新增或修改") - @PostMapping("/save") - public ResultBean save(@RequestBody SmsPricestrategyBillGoodstypedetailDto dto){ - ResultBean rb = ResultBean.fireFail(); - smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(dto); - return rb.success(); - } - - @ApiOperation("根据sid批量删除") - @DeleteMapping("/delBySids") - public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - smsPricestrategyBillGoodstypedetailService.delBySids(sids); - return rb.success(); - } - - @ApiOperation("根据SID获取一条记录") - @GetMapping("/fetchDetailsBySid/{sid}") - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid){ - ResultBean rb = ResultBean.fireFail(); - SmsPricestrategyBillGoodstypedetailDetailsVo vo = smsPricestrategyBillGoodstypedetailService.fetchDetailsVoBySid(sid); - return rb.success().setData(vo); - } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillRest.java b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillRest.java index e6a470c35d..fc535354b9 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillRest.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillRest.java @@ -25,15 +25,23 @@ *********************************************************/ package com.yxt.sms.apiadmin; +import cn.hutool.core.bean.BeanUtil; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.sms.biz.smspricestrategybill.*; +import com.yxt.sms.biz.smspricestrategybill.flowable.*; +import com.yxt.sms.feign.flowable.flow.BusinessVariables; +import com.yxt.sms.feign.flowable.flow.ProcDefEnum; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.*; +import javax.validation.Valid; +import java.util.List; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillFeignFallback.java
@@ -74,9 +82,7 @@ public class SmsPricestrategyBillRest { @ApiOperation("根据sid批量删除") @DeleteMapping("/delBySids") public ResultBean delBySids(@RequestBody String[] sids){ - ResultBean rb = ResultBean.fireFail(); - smsPricestrategyBillService.delAll(sids); - return rb.success(); + return smsPricestrategyBillService.delAll(sids); } @ApiOperation("根据SID获取一条记录") @@ -86,4 +92,55 @@ public class SmsPricestrategyBillRest { SmsPricestrategyBillDetailsVo vo = smsPricestrategyBillService.fetchDetailsVoBySid(sid); return rb.success().setData(vo); } + + @ApiOperation("提交审批流程") + @PostMapping("/submit") + public ResultBean submit(@RequestBody @Valid SubmitSmsPricestrategyBillDto dto) { + return smsPricestrategyBillService.submit(dto); + } + + @ApiOperation(value = "办理(同意)") + @PostMapping("/complete") + public ResultBean complete(@Valid @RequestBody SmsPricestrategyBillCompleteDto query) { + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId()); + return smsPricestrategyBillService.complete(bv); + } + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/getPreviousNodesForReject") + public ResultBean> getPreviousNodesForReject(@Valid @SpringQueryMap SmsPricestrategyBillNodeQuery query) { + return smsPricestrategyBillService.getPreviousNodesForReject(query); + } + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/getNextNodesForSubmit") + public ResultBean> getNextNodesForSubmit(@Valid @SpringQueryMap SmsPricestrategyBillNodeQuery query) { + return smsPricestrategyBillService.getNextNodesForSubmit(query); + } + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/reject") + public ResultBean reject(@Valid @RequestBody SmsPricestrategyBillTaskQuery query) { + return smsPricestrategyBillService.reject(query); + } + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + public ResultBean revokeProcess(@Valid @RequestBody SmsPricestrategyBillTaskQuery query) { + return smsPricestrategyBillService.revokeProcess(query); + } + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/breakProcess") + public ResultBean breakProcess(@Valid @RequestBody SmsPricestrategyBillTaskQuery query) { + return smsPricestrategyBillService.breakProcess(query); + } + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody SmsPricestrategyBillDelegateQuery query) { + return smsPricestrategyBillService.delegate(query); + } } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillDetailsVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillDetailsVo.java index 93b76f74d8..415e5c81c9 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillDetailsVo.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillDetailsVo.java @@ -57,6 +57,12 @@ public class SmsPricestrategyBillDetailsVo implements Vo { private String sid; // sid + @ApiModelProperty("申请日期") + @JsonFormat( + pattern = "yyyy-MM-dd", + timezone = "GMT+8" + ) + private Date createTime; @ApiModelProperty("备注") private String remarks; @ApiModelProperty("制单人sid") diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.java index 47f911ec93..2a06897afd 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.java @@ -34,6 +34,7 @@ import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; import java.util.List; +import java.util.Map; /** * Project: yxt-sms(价格策略)
@@ -57,4 +58,10 @@ public interface SmsPricestrategyBillMapper extends BaseMapper selectListVo(); + + int updateFlowFiled(Map map); + + String selectNum(String billNo); + + int selectBySid(String join); } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml index 06be465299..75e20287c2 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml @@ -4,10 +4,45 @@ + + + UPDATE sms_pricestrategy_bill + SET nodeState=#{nodeState}, nodeId=#{taskDefKey} + + , finishTime = NOW() + + + , procDefId=#{procDefId} + + + , procInstId=#{procInsId} + + + , taskId=#{taskId} + + WHERE sid=#{sid} + + + + + \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillQuery.java index ee837d574e..ea72e9f411 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillQuery.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillQuery.java @@ -26,12 +26,15 @@ package com.yxt.sms.biz.smspricestrategybill; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.query.Query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillQuery.java
@@ -54,4 +57,21 @@ public class SmsPricestrategyBillQuery implements Query { private String userSid; @ApiModelProperty("菜单url") private String menuUrl; + + @ApiModelProperty("组织名称") + private String useOrgName; + @ApiModelProperty("申请部门名称") + private String deptName; + @ApiModelProperty("制单人姓名") + private String createByName; // 制单人姓名 + @ApiModelProperty("单据编号") + private String billNo; // 单据编号 + @ApiModelProperty("创建开始日期") + private String createStartTime; + @ApiModelProperty("创建结束日期") + private String createEndTime; + @ApiModelProperty("办结开始日期") + private String finishStartTime; + @ApiModelProperty("办结结束日期") + private String finishEndTime; } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java index 9a9a01df8b..0162d105ae 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java @@ -26,21 +26,47 @@ package com.yxt.sms.biz.smspricestrategybill; import cn.hutool.core.bean.BeanUtil; +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.google.common.util.concurrent.ThreadFactoryBuilder; +import com.yxt.common.core.result.ResultBean; +import com.yxt.sms.biz.smspricestrategybill.flowable.*; import com.yxt.sms.biz.smspricestrategybilldetail.SmsPricestrategyBillDetailDetailsVo; import com.yxt.sms.biz.smspricestrategybilldetail.SmsPricestrategyBillDetailDto; import com.yxt.sms.biz.smspricestrategybilldetail.SmsPricestrategyBillDetailService; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDetailsVo; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDto; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailService; +import com.yxt.sms.feign.base.Rule; +import com.yxt.sms.feign.flowable.flow.*; +import com.yxt.sms.feign.flowable.flow2.FlowDelegateQuery; +import com.yxt.sms.feign.flowable.flow2.FlowFeign; +import com.yxt.sms.feign.flowable.flowtask.FlowTaskFeign; +import com.yxt.sms.feign.flowable.flowtask.FlowTaskVo; +import com.yxt.sms.feign.flowable.flowtask.LatestTaskVo; +import com.yxt.sms.feign.message.MessageFeign; +import com.yxt.sms.feign.message.MessageFlowVo; +import com.yxt.sms.feign.message.MessageFlowableQuery; +import com.yxt.sms.feign.portal.sysorganization.SysOrganizationFeign; +import com.yxt.sms.feign.portal.sysorganization.SysOrganizationVo; +import com.yxt.sms.feign.portal.sysstafforg.SysStaffOrgFeign; +import com.yxt.sms.feign.privilege.PrivilegeQuery; +import com.yxt.sms.feign.sysuser.SysUserFeign; 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.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.util.List; +import java.util.*; +import java.util.concurrent.*; +import java.util.stream.Collectors; /** * Project: yxt-sms(价格策略)
@@ -60,38 +86,163 @@ public class SmsPricestrategyBillService extends MybatisBaseService listPageVo(PagerQuery pq) { SmsPricestrategyBillQuery 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("sb.createBySid", query.getUserSid()); + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } else { + PagerVo p = new PagerVo<>(); + return p; + } + } + if (StringUtils.isNotBlank(query.getUseOrgName())) { + qw.like("sb.useOrgName", query.getUseOrgName()); + } + if (StringUtils.isNotBlank(query.getDeptName())) { + qw.like("sb.deptName", query.getDeptName()); + } + if (StringUtils.isNotBlank(query.getCreateByName())) { + qw.like("sb.createByName", query.getCreateByName()); + } + if (StringUtils.isNotBlank(query.getBillNo())) { + qw.like("sb.billNo", query.getBillNo()); + } + String createStartTime = query.getCreateStartTime(); + String createEndTime = query.getCreateEndTime(); + qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (sb.createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(createEndTime), "date_format (sb.createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" + ); + String finishStartTime = query.getFinishStartTime(); + String finishEndTime = query.getFinishEndTime(); + qw.apply(StringUtils.isNotEmpty(finishStartTime), "date_format (sb.finishTime,'%Y-%m-%d') >= date_format('" + finishStartTime + "','%Y-%m-%d')"). + apply(StringUtils.isNotEmpty(finishEndTime), "date_format (sb.finishTime,'%Y-%m-%d') <= date_format('" + finishEndTime + "','%Y-%m-%d')" + ); + qw.orderByDesc("sb.createTime"); IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectPageVo(page, qw); PagerVo p = PagerUtil.pageToVo(pagging, null); return p; } - public void saveOrUpdateDto(SmsPricestrategyBillDto dto){ + public String saveOrUpdateDto(SmsPricestrategyBillDto dto){ String dtoSid = dto.getSid(); List smsPricestrategyBillDetailList = dto.getSmsPricestrategyBillDetailList(); + String deptSid = dto.getDeptSid(); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(deptSid).getData(); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(deptVo.getOrgSidPath()).getData(); + SysOrganizationVo organizationVo = sysOrganizationFeign.fetchBySid(useOrgSid).getData(); + dto.setUseOrgSid(useOrgSid); + dto.setUseOrgName(organizationVo.getName()); if (StringUtils.isBlank(dtoSid)) { + //生成单据编号 + String billNo = ""; + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + billNo = "JGCL" + organizationVo.getOrgCode() + date; + String i = baseMapper.selectNum(billNo); + if (StringUtils.isNotBlank(i)) { + billNo = Rule.getBillNo(billNo, Integer.valueOf(i).intValue()); + } else { + billNo = Rule.getBillNo(billNo, 0); + } + dto.setBillNo(billNo); String sid = this.insertByDto(dto); for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { smsPricestrategyBillDetailDto.setMainSid(sid); - smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + if (smsPricestrategyBillDetailDto.getStrategyType() == 0){ + SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + }else { + List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); + for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } + } } - return; + return sid; } this.updateByDto(dto); + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(dtoSid); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + } smsPricestrategyBillDetailService.delByMainSid(dtoSid); for (SmsPricestrategyBillDetailDto smsPricestrategyBillDetailDto : smsPricestrategyBillDetailList) { smsPricestrategyBillDetailDto.setMainSid(dtoSid); - smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + String sid1 = smsPricestrategyBillDetailService.saveOrUpdateDto(smsPricestrategyBillDetailDto); + if (smsPricestrategyBillDetailDto.getStrategyType() == 0){ + SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto = new SmsPricestrategyBillGoodstypedetailDto(); + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailDto.setMarkupRate(smsPricestrategyBillDetailDto.getGdMarkupRate()); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + }else { + List smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList(); + for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) { + smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1); + smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto); + } + } } + return dtoSid; } public String insertByDto(SmsPricestrategyBillDto dto){ SmsPricestrategyBill entity = new SmsPricestrategyBill(); BeanUtil.copyProperties(dto, entity, "id", "sid"); + entity.setNodeState("待提交"); baseMapper.insert(entity); return entity.getSid(); } @@ -112,13 +263,372 @@ public class SmsPricestrategyBillService extends MybatisBaseService smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); vo.setSmsPricestrategyBillDetailList(smsPricestrategyBillDetailDetailsVos); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + List smsPricestrategyBillGoodstypedetailDetailsVos = smsPricestrategyBillGoodstypedetailService.selByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + if (smsPricestrategyBillDetailDetailsVo.getStrategyType() == 0){ + SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo = smsPricestrategyBillGoodstypedetailDetailsVos.get(0); + smsPricestrategyBillDetailDetailsVo.setGdMarkupRate(smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate()); + }else { + smsPricestrategyBillDetailDetailsVo.setSmsPricestrategyBillGoodstypedetailList(smsPricestrategyBillGoodstypedetailDetailsVos); + } + } return vo; } - public void delAll(String[] sids) { + public ResultBean delAll(String[] sids) { + ResultBean rb = ResultBean.fireFail(); + //查询该sid中是否有流程不是待提交的 + int count = baseMapper.selectBySid(StringUtils.join(sids, ",")); + if (count > 0) { + return rb.setMsg("删除的数据中包含已提交或已办结审批的数据,删除失败"); + } delBySids(sids); for (String sid : sids) { + List smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid); + for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) { + smsPricestrategyBillGoodstypedetailService.delByMainSid(smsPricestrategyBillDetailDetailsVo.getSid()); + } smsPricestrategyBillDetailService.delByMainSid(sid); } + return rb.success(); + } + + public ResultBean submit(SubmitSmsPricestrategyBillDto dto) { + ResultBean rb = ResultBean.fireFail(); + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(dto.getSid()); + int r = submitBusinessData(dto, smsPricestrategyBill); + if (r == 3) { + return rb.setMsg("该申请不存在"); + } + if (r == 0) { + return rb.setMsg("操作失败!提交的数据不一致"); + } + //新增修改保存 + String businessSid = saveOrUpdateDto(dto); + smsPricestrategyBill = fetchBySid(businessSid); + //创建BusinessVariables实体对象 + BusinessVariables bv = new BusinessVariables(); + //流程中的参数赋值、若有网关,则赋值网关中判断的字段。 + Map variables = new HashMap<>(); + //用户的部门全路径sid + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + //业务sid + bv.setBusinessSid(businessSid); + //用户sid + bv.setUserSid(smsPricestrategyBill.getCreateBySid()); + //若app移动端有此功能,则传递appMap参数 + Map appMap = new HashMap<>(); + appMap.put("sid", businessSid); + //需和移动端沟通业务sid保存的属性具体值:appMap中sid不是固定的。移动端提供具体字段。 + variables.put("app", appMap); + //流程定义id + bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId()); + bv.setFormVariables(variables); + if (r == 1) { + ResultBean voResultBean = flowFeign.startProcess(bv); + UpdateFlowFieldVo ufVo = voResultBean.getData(); + updateFlowFiled(BeanUtil.beanToMap(ufVo)); + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + 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(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return voResultBean; + } + if (r == 2) { + // ToDo:驳回到发起人后再次提交 + if (StringUtils.isBlank(dto.getInstanceId())) { + return rb.setMsg("参数错误:instanceId"); + } + bv.setTaskId(smsPricestrategyBill.getTaskId()); + bv.setTaskDefKey(smsPricestrategyBill.getNodeId()); + bv.setComment(StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交"); + bv.setInstanceId(dto.getInstanceId()); + return complete(bv); + } + return rb; + } + + private synchronized int submitBusinessData(SubmitSmsPricestrategyBillDto dto, SmsPricestrategyBill smsPricestrategyBill) { + int r = 0; + if (StringUtils.isBlank(dto.getSid())) { + r = 1; + } else { + if (smsPricestrategyBill != null) { + String businessTaskId = smsPricestrategyBill.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(); + SmsPricestrategyBill smsPricestrategyBill = 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(smsPricestrategyBill.getProcDefId())) { + flowProcessMapQuery.setProDefKey(bv.getModelId()); + } else { + flowProcessMapQuery.setProDefKey(smsPricestrategyBill.getProcDefId()); + } + flowProcessMapQuery.setVariables(variables); + variables = flowableFeign.getMap(flowProcessMapQuery).getData(); + //======================================= + bv.setFormVariables(variables); + SysOrganizationVo deptVo = sysOrganizationFeign.fetchBySid(smsPricestrategyBill.getDeptSid()).getData(); + bv.setOrgSidPath(deptVo.getOrgSidPath()); + if (bv.getTaskId().equals(smsPricestrategyBill.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 { + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + ufVo.setProcDefId(pricestrategyBill.getProcDefId()); + ufVo.setProcInsId(pricestrategyBill.getProcInstId()); + messageFlowableQuery.setUfVo(messageFlowVo); + messageFlowableQuery.setAppMap(appMap); + messageFlowableQuery.setBusinessSid(businessSid); + messageFlowableQuery.setModuleName("价格策略申请"); + messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + } + return rb.success().setData(resultBean.getData()); + } else { + return rb.setMsg("操作失败!提交的数据不一致"); + } + } + + public ResultBean> getPreviousNodesForReject(SmsPricestrategyBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.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), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean> getNextNodesForSubmit(SmsPricestrategyBillNodeQuery query) { + ResultBean> rb = ResultBean.fireFail(); + BusinessVariables bv = new BusinessVariables(); + BeanUtil.copyProperties(query, bv); + bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.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), SmsPricestrategyBillNodeVo.class)).collect(Collectors.toList()); + return rb.success().setData(voList); + } + + public ResultBean reject(SmsPricestrategyBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + String businessSid = query.getBusinessSid(); + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid); + if (smsPricestrategyBill == null) { + return rb.setMsg("该申请不存在"); + } + String businessTaskId = smsPricestrategyBill.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); + //极光推送 + smsPricestrategyBill = fetchBySid(businessSid); + //==================================添加线程 + try { + ThreadFactory namedThreadFactory = new ThreadFactoryBuilder() + .setNameFormat("demo-pool-%d").build(); + ExecutorService pool = new ThreadPoolExecutor(2, 100, + 0L, TimeUnit.MILLISECONDS, + new LinkedBlockingQueue(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + SmsPricestrategyBill pricestrategyBill = smsPricestrategyBill; + Future future1 = pool.submit(() -> { + //极光推送 + MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery(); + MessageFlowVo messageFlowVo = new MessageFlowVo(); + BeanUtil.copyProperties(ufVo, messageFlowVo); + String procId = pricestrategyBill.getProcInstId(); + ufVo.setProcInsId(procId); + ufVo.setProcDefId(pricestrategyBill.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(pricestrategyBill.getCreateBySid())) { + messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交"); + } else { + messageFlowableQuery.setMsgContent(pricestrategyBill.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批"); + } + messageFlowableQuery.setMsgTitle("价格策略申请"); + messageFeign.pushMessage(messageFlowableQuery); + }); + } catch (Exception e) { + e.printStackTrace(); + } + //==================================添加线程 + return rb.success(); + } + } + return rb.setMsg("操作失败!提交的数据不一致!"); + } + + public ResultBean revokeProcess(SmsPricestrategyBillTaskQuery query) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(query.getUserSid())) { + return rb.setMsg("参数错误:userSid"); + } + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = smsPricestrategyBill.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(SmsPricestrategyBillTaskQuery 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("请填写意见"); + } + SmsPricestrategyBill smsPricestrategyBill = fetchBySid(query.getBusinessSid()); + String businessTaskId = smsPricestrategyBill.getTaskId(); + if (StringUtils.isNotBlank(businessTaskId)) { + if (query.getUserSid().equals(smsPricestrategyBill.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(SmsPricestrategyBillDelegateQuery query) { + ResultBean rb = ResultBean.fireFail(); + FlowDelegateQuery delegateQuery = new FlowDelegateQuery(); + BeanUtil.copyProperties(query, delegateQuery); + flowFeign.delegate(delegateQuery); + return rb.success(); } } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillVo.java index c57d6e8329..7bf1474550 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillVo.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillVo.java @@ -26,12 +26,15 @@ package com.yxt.sms.biz.smspricestrategybill; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillVo.java
@@ -51,6 +54,17 @@ public class SmsPricestrategyBillVo implements Vo { private String sid; // sid + @ApiModelProperty("申请日期") + @JsonFormat( + pattern = "yyyy-MM-dd", + timezone = "GMT+8" + ) + private Date createTime; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8") + @ApiModelProperty("办结时间") + private Date finishTime; + @ApiModelProperty("流程状态") + private String nodeState; @ApiModelProperty("制单人姓名") private String createByName; // 制单人姓名 @ApiModelProperty("单据编号") diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillCompleteDto.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillCompleteDto.java new file mode 100644 index 0000000000..279a3d799e --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillCompleteDto.java @@ -0,0 +1,37 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import com.yxt.common.core.dto.Dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 14:57 + * @Description + */ +@Data +public class SmsPricestrategyBillCompleteDto implements Dto { + private static final long serialVersionUID = 6378752532534735663L; + + @ApiModelProperty(value = "用户sid") + private String userSid; + @ApiModelProperty(value = "节点id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "任务id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + @ApiModelProperty(value = "流程id(PC)") + private String instanceId; + @ApiModelProperty(value = "流程id(移动)") + private String procInsId; + @ApiModelProperty(value = "意见") + private String comment; + @ApiModelProperty(value = "业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + + private String orgPath; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillDelegateQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillDelegateQuery.java new file mode 100644 index 0000000000..89090dd15f --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillDelegateQuery.java @@ -0,0 +1,26 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/9/28 9:28 + */ +@Data +public class SmsPricestrategyBillDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") +// @JsonProperty("procInsId") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; + + +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeQuery.java new file mode 100644 index 0000000000..97e4520eee --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeQuery.java @@ -0,0 +1,25 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:04 + * @Description + */ +@Data +public class SmsPricestrategyBillNodeQuery implements Query { + private static final long serialVersionUID = 9117613683840483366L; + + @ApiModelProperty(value = "环节定义id") + @NotBlank(message = "参数错误:taskDefKey") + private String taskDefKey; + @ApiModelProperty(value = "业务sid") + private String businessSid; + @ApiModelProperty(value = "0 上一环节 1下一环节") + private Integer next; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeVo.java new file mode 100644 index 0000000000..6f1a2803c3 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeVo.java @@ -0,0 +1,26 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:03 + * @Description + */ +@Data +public class SmsPricestrategyBillNodeVo implements Vo { + private static final long serialVersionUID = -833419512294877848L; + + @ApiModelProperty(value = "节点名称") + private String name; + @ApiModelProperty(value = "节点id") + private String id; + @ApiModelProperty(value = "审批组") + private List candidateGroups; + @ApiModelProperty(value = "是否是最后环节") + private String endTask; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillTaskQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillTaskQuery.java new file mode 100644 index 0000000000..23e26eb658 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillTaskQuery.java @@ -0,0 +1,48 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * @Author dimengzhe + * @Date 2022/9/6 15:06 + * @Description + */ +@Data +public class SmsPricestrategyBillTaskQuery implements Query { + private static final long serialVersionUID = 1288615499873178778L; + + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("任务Id") + @NotBlank(message = "参数错误:taskId") + private String taskId; + /** + * 终止、驳回、撤回 + */ + @ApiModelProperty("业务sid") + @NotBlank(message = "参数错误:businessSid") + private String businessSid; + /** + * 终止、驳回 + */ + @ApiModelProperty("任务意见") + private String comment; + /** + * 终止、撤回、驳回 + */ + @ApiModelProperty("用户Sid") + private String userSid; + /** + * 终止 + */ + @ApiModelProperty("流程实例Id(PC)") + private String instanceId; + + @ApiModelProperty("流程实例Id(移动)") + private String procInsId; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SubmitSmsPricestrategyBillDto.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SubmitSmsPricestrategyBillDto.java new file mode 100644 index 0000000000..37978ad13f --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SubmitSmsPricestrategyBillDto.java @@ -0,0 +1,24 @@ +package com.yxt.sms.biz.smspricestrategybill.flowable; + +import com.yxt.sms.biz.smspricestrategybill.SmsPricestrategyBillDto; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author liuguohui + * @version 1.0 + * @description + * @date 2022/04/13 + */ +@ApiModel("提交") +@Data +public class SubmitSmsPricestrategyBillDto extends SmsPricestrategyBillDto { + + @ApiModelProperty("意见") + private String comment; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务id") + private String taskId; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetail.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetail.java index 12cf83eb91..af37cae943 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetail.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetail.java @@ -56,6 +56,8 @@ public class SmsPricestrategyBillDetail extends BaseEntity { private String mainSid; // 申请单sid @ApiModelProperty("商品类别sid") private String goodsTypeSid; // 商品类别sid + @ApiModelProperty("商品类别编码") + private String goodsTypeCode; @ApiModelProperty("商品类别名称") private String goodsTypeName; // 商品类别名称 @ApiModelProperty("价格策略类别(固定比例0、价格区间1)") diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDetailsVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDetailsVo.java index be947719e8..b800c35132 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDetailsVo.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDetailsVo.java @@ -28,10 +28,15 @@ package com.yxt.sms.biz.smspricestrategybilldetail; import com.yxt.common.core.vo.Vo; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDetailsVo; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.util.List; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillDetailVo.java
@@ -55,9 +60,15 @@ public class SmsPricestrategyBillDetailDetailsVo implements Vo { private String mainSid; // 申请单sid @ApiModelProperty("商品类别sid") private String goodsTypeSid; // 商品类别sid + @ApiModelProperty("商品类别编码") + private String goodsTypeCode; @ApiModelProperty("商品类别名称") private String goodsTypeName; // 商品类别名称 @ApiModelProperty("价格策略类别(固定比例0、价格区间1)") private Integer strategyType; // 价格策略类别(固定比例0、价格区间1) + @ApiModelProperty("加价比例") + private BigDecimal gdMarkupRate; + @ApiModelProperty("价格策略区间") + private List smsPricestrategyBillGoodstypedetailList; } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDto.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDto.java index 0caca90231..9df9735031 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDto.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDto.java @@ -28,10 +28,14 @@ package com.yxt.sms.biz.smspricestrategybilldetail; import com.yxt.common.core.dto.Dto; +import com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailDto; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; +import java.util.List; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillDetailDto.java
@@ -55,9 +59,15 @@ public class SmsPricestrategyBillDetailDto implements Dto { private String mainSid; // 申请单sid @ApiModelProperty("商品类别sid") private String goodsTypeSid; // 商品类别sid + @ApiModelProperty("商品类别编码") + private String goodsTypeCode; @ApiModelProperty("商品类别名称") private String goodsTypeName; // 商品类别名称 @ApiModelProperty("价格策略类别(固定比例0、价格区间1)") private Integer strategyType; // 价格策略类别(固定比例0、价格区间1) + @ApiModelProperty("加价比例") + private BigDecimal gdMarkupRate; + @ApiModelProperty("价格策略区间") + private List smsPricestrategyBillGoodstypedetailList; } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java index d4fdc2eb29..eb4685185d 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java @@ -53,44 +53,41 @@ import java.util.List; */ @Service public class SmsPricestrategyBillDetailService extends MybatisBaseService { - - public void saveOrUpdateDto(SmsPricestrategyBillDetailDto dto){ + + public String saveOrUpdateDto(SmsPricestrategyBillDetailDto dto) { + String sid = this.insertByDto(dto); + return sid; + } + + public String insertByDto(SmsPricestrategyBillDetailDto dto) { + SmsPricestrategyBillDetail entity = new SmsPricestrategyBillDetail(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + return entity.getSid(); + } + + public void updateByDto(SmsPricestrategyBillDetailDto dto) { String dtoSid = dto.getSid(); - if (StringUtils.isBlank(dtoSid)) { - this.insertByDto(dto); - return; - } - this.updateByDto(dto); - } - - public void insertByDto(SmsPricestrategyBillDetailDto dto){ - SmsPricestrategyBillDetail entity = new SmsPricestrategyBillDetail(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.insert(entity); - } - - public void updateByDto(SmsPricestrategyBillDetailDto dto){ - String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - SmsPricestrategyBillDetail entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public SmsPricestrategyBillDetailDetailsVo fetchDetailsVoBySid(String sid){ - SmsPricestrategyBillDetail entity = fetchBySid(sid); - SmsPricestrategyBillDetailDetailsVo vo = new SmsPricestrategyBillDetailDetailsVo(); - BeanUtil.copyProperties(entity, vo); - return vo; - } + } + SmsPricestrategyBillDetail entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public SmsPricestrategyBillDetailDetailsVo fetchDetailsVoBySid(String sid) { + SmsPricestrategyBillDetail entity = fetchBySid(sid); + SmsPricestrategyBillDetailDetailsVo vo = new SmsPricestrategyBillDetailDetailsVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } - public void delByMainSid(String mainSid) { - baseMapper.delByMainSid(mainSid); - } + public void delByMainSid(String mainSid) { + baseMapper.delByMainSid(mainSid); + } - public List selByMainSid(String mainSid) { - return baseMapper.selByMainSid(mainSid); - } + public List selByMainSid(String mainSid) { + return baseMapper.selByMainSid(mainSid); + } } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetail.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetail.java index 964e2249f6..9ed28dab9f 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetail.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetail.java @@ -31,6 +31,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillGoodstypedetail.java
@@ -55,10 +57,10 @@ public class SmsPricestrategyBillGoodstypedetail extends BaseEntity { @ApiModelProperty("业务sid") private String detailSid; // 业务sid @ApiModelProperty("区间起始") - private Integer rangeStart; // 区间起始 + private BigDecimal rangeStart; // 区间起始 @ApiModelProperty("区间截止") - private Integer rangeEnd; // 区间截止 - @ApiModelProperty("加价比例") - private Integer markupRate; // 加价比例 + private BigDecimal rangeEnd; // 区间截止 + @ApiModelProperty("加价比例") + private BigDecimal markupRate; // 加价比例 } diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java index 0142dc2e5b..19bfb01061 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java @@ -32,6 +32,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillGoodstypedetailVo.java
@@ -51,15 +53,13 @@ public class SmsPricestrategyBillGoodstypedetailDetailsVo implements Vo { private String sid; // sid - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 @ApiModelProperty("业务sid") private String detailSid; // 业务sid @ApiModelProperty("区间起始") - private Integer rangeStart; // 区间起始 + private BigDecimal rangeStart; // 区间起始 @ApiModelProperty("区间截止") - private Integer rangeEnd; // 区间截止 + private BigDecimal rangeEnd; // 区间截止 @ApiModelProperty("加价比例") - private Integer markupRate; // 加价比例 + private BigDecimal markupRate; // 加价比例 } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDto.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDto.java index 0d4f35e42e..3d470d3500 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDto.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDto.java @@ -32,6 +32,8 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.math.BigDecimal; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillGoodstypedetailDto.java
@@ -51,15 +53,13 @@ public class SmsPricestrategyBillGoodstypedetailDto implements Dto { private String sid; // sid - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 @ApiModelProperty("业务sid") private String detailSid; // 业务sid @ApiModelProperty("区间起始") - private Integer rangeStart; // 区间起始 + private BigDecimal rangeStart; // 区间起始 @ApiModelProperty("区间截止") - private Integer rangeEnd; // 区间截止 + private BigDecimal rangeEnd; // 区间截止 @ApiModelProperty("加价比例") - private Integer markupRate; // 加价比例 + private BigDecimal markupRate; // 加价比例 } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.java index ad61f5e39b..ad8142d0fe 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.java @@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Delete; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -51,10 +52,9 @@ import java.util.List; @Mapper public interface SmsPricestrategyBillGoodstypedetailMapper extends BaseMapper { - IPage selectPageVo(IPage page, @Param(Constants.WRAPPER) Wrapper qw); - - List selectListAllVo(@Param(Constants.WRAPPER) Wrapper qw); - - @Select("select * from sms_pricestrategy_bill_goodstypedetail") - List selectListVo(); + @Select("select * from sms_pricestrategy_bill_goodstypedetail where detailSid = #{detailSid}") + List selByMainSid(String detailSid); + + @Delete("delete from sms_pricestrategy_bill_goodstypedetail where detailSid = #{detailSid}") + void delByMainSid(String detailSid); } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml index f90897fc64..13649a89b3 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml @@ -3,11 +3,4 @@ - - - \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailQuery.java deleted file mode 100644 index 7b818892f0..0000000000 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailQuery.java +++ /dev/null @@ -1,63 +0,0 @@ -/********************************************************* - ********************************************************* - ******************** ******************* - ************* ************ - ******* _oo0oo_ ******* - *** o8888888o *** - * 88" . "88 * - * (| -_- |) * - * 0\ = /0 * - * ___/`---'\___ * - * .' \\| |// '. * - * / \\||| : |||// \ * - * / _||||| -:- |||||- \ * - * | | \\\ - /// | | * - * | \_| ''\---/'' |_/ | * - * \ .-\__ '-' ___/-. / * - * ___'. .' /--.--\ `. .'___ * - * ."" '< `.___\_<|>_/___.' >' "". * - * | | : `- \`.;`\ _ /`;.`/ - ` : | | * - * \ \ `_. \_ __\ /__ _/ .-` / / * - * =====`-.____`.___ \_____/___.-`___.-'===== * - * `=---=' * - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * - *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* - *********************************************************/ -package com.yxt.sms.biz.smspricestrategybillgoodstypedetail; - - -import com.yxt.common.core.query.Query; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * Project: yxt-sms(价格策略)
- * File: SmsPricestrategyBillGoodstypedetailQuery.java
- * Class: com.yxt.sms.api.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailQuery
- * Description: 价格策略商品类别明细 查询条件.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2024-03-28 14:32:24
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ -@Data -@ApiModel(value = "价格策略商品类别明细 查询条件", description = "价格策略商品类别明细 查询条件") -public class SmsPricestrategyBillGoodstypedetailQuery implements Query { - - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 - @ApiModelProperty("业务sid") - private String detailSid; // 业务sid - @ApiModelProperty("区间起始") - private Integer rangeStart; // 区间起始 - @ApiModelProperty("区间截止") - private Integer rangeEnd; // 区间截止 - @ApiModelProperty("加价比例") - private Integer markupRate; // 加价比例 - -} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailService.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailService.java index deb6e4c175..58c8afa579 100644 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailService.java +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailService.java @@ -36,6 +36,8 @@ import com.yxt.common.core.vo.PagerVo; import org.springframework.stereotype.Service; +import java.util.List; + /** * Project: yxt-sms(价格策略)
* File: SmsPricestrategyBillGoodstypedetailService.java
@@ -51,51 +53,40 @@ import org.springframework.stereotype.Service; */ @Service public class SmsPricestrategyBillGoodstypedetailService extends MybatisBaseService { - private QueryWrapper createQueryWrapper(SmsPricestrategyBillGoodstypedetailQuery 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) { - SmsPricestrategyBillGoodstypedetailQuery query = pq.getParams(); - QueryWrapper qw = createQueryWrapper(query); - IPage page = PagerUtil.queryToPage(pq); - IPage pagging = baseMapper.selectPageVo(page, qw); - PagerVo p = PagerUtil.pageToVo(pagging, null); - return p; - } - - public void saveOrUpdateDto(SmsPricestrategyBillGoodstypedetailDto dto){ + + public void saveOrUpdateDto(SmsPricestrategyBillGoodstypedetailDto dto) { + this.insertByDto(dto); + return; + } + + public void insertByDto(SmsPricestrategyBillGoodstypedetailDto dto) { + SmsPricestrategyBillGoodstypedetail entity = new SmsPricestrategyBillGoodstypedetail(); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.insert(entity); + } + + public void updateByDto(SmsPricestrategyBillGoodstypedetailDto dto) { String dtoSid = dto.getSid(); - if (StringUtils.isBlank(dtoSid)) { - this.insertByDto(dto); - return; - } - this.updateByDto(dto); - } - - public void insertByDto(SmsPricestrategyBillGoodstypedetailDto dto){ - SmsPricestrategyBillGoodstypedetail entity = new SmsPricestrategyBillGoodstypedetail(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.insert(entity); - } - - public void updateByDto(SmsPricestrategyBillGoodstypedetailDto dto){ - String dtoSid = dto.getSid(); if (StringUtils.isBlank(dtoSid)) { return; - } - SmsPricestrategyBillGoodstypedetail entity = fetchBySid(dtoSid); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - baseMapper.updateById(entity); - } - - public SmsPricestrategyBillGoodstypedetailDetailsVo fetchDetailsVoBySid(String sid){ - SmsPricestrategyBillGoodstypedetail entity = fetchBySid(sid); - SmsPricestrategyBillGoodstypedetailDetailsVo vo = new SmsPricestrategyBillGoodstypedetailDetailsVo(); - BeanUtil.copyProperties(entity, vo); - return vo; - } + } + SmsPricestrategyBillGoodstypedetail entity = fetchBySid(dtoSid); + BeanUtil.copyProperties(dto, entity, "id", "sid"); + baseMapper.updateById(entity); + } + + public SmsPricestrategyBillGoodstypedetailDetailsVo fetchDetailsVoBySid(String sid) { + SmsPricestrategyBillGoodstypedetail entity = fetchBySid(sid); + SmsPricestrategyBillGoodstypedetailDetailsVo vo = new SmsPricestrategyBillGoodstypedetailDetailsVo(); + BeanUtil.copyProperties(entity, vo); + return vo; + } + + public List selByMainSid(String detailSid) { + return baseMapper.selByMainSid(detailSid); + } + + public void delByMainSid(String detailSid) { + baseMapper.delByMainSid(detailSid); + } } \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailVo.java deleted file mode 100644 index e9cd21ac7a..0000000000 --- a/yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailVo.java +++ /dev/null @@ -1,65 +0,0 @@ -/********************************************************* - ********************************************************* - ******************** ******************* - ************* ************ - ******* _oo0oo_ ******* - *** o8888888o *** - * 88" . "88 * - * (| -_- |) * - * 0\ = /0 * - * ___/`---'\___ * - * .' \\| |// '. * - * / \\||| : |||// \ * - * / _||||| -:- |||||- \ * - * | | \\\ - /// | | * - * | \_| ''\---/'' |_/ | * - * \ .-\__ '-' ___/-. / * - * ___'. .' /--.--\ `. .'___ * - * ."" '< `.___\_<|>_/___.' >' "". * - * | | : `- \`.;`\ _ /`;.`/ - ` : | | * - * \ \ `_. \_ __\ /__ _/ .-` / / * - * =====`-.____`.___ \_____/___.-`___.-'===== * - * `=---=' * - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * - *********__佛祖保佑__永无BUG__验收通过__钞票多多__********* - *********************************************************/ -package com.yxt.sms.biz.smspricestrategybillgoodstypedetail; - - -import com.yxt.common.core.vo.Vo; - -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * Project: yxt-sms(价格策略)
- * File: SmsPricestrategyBillGoodstypedetailVo.java
- * Class: com.yxt.sms.api.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailVo
- * Description: 价格策略商品类别明细 视图数据对象.
- * Copyright: Copyright (c) 2011
- * Company: https://gitee.com/liuzp315
- * Makedate: 2024-03-28 14:32:24
- * - * @author liupopo - * @version 1.0 - * @since 1.0 - */ -@Data -@ApiModel(value = "价格策略商品类别明细 视图数据对象", description = "价格策略商品类别明细 视图数据对象") -public class SmsPricestrategyBillGoodstypedetailVo implements Vo { - - private String sid; // sid - - @ApiModelProperty("制单人姓名") - private String createByName; // 制单人姓名 - @ApiModelProperty("业务sid") - private String detailSid; // 业务sid - @ApiModelProperty("区间起始") - private Integer rangeStart; // 区间起始 - @ApiModelProperty("区间截止") - private Integer rangeEnd; // 区间截止 - @ApiModelProperty("加价比例") - private Integer markupRate; // 加价比例 - -} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/BillNo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/BillNo.java new file mode 100644 index 0000000000..29d9c44fa8 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/BillNo.java @@ -0,0 +1,24 @@ +package com.yxt.sms.feign.base; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author dimengzhe + * @Date 2022/7/1 9:46 + * @Description + */ +@Data +public class BillNo implements Serializable { + private static final long serialVersionUID = 1598887042562656350L; + +// @ApiModelProperty(value = "品牌编码") +// private String brandCode; + @ApiModelProperty(value = "单据名称首字母") + private String billType; + @ApiModelProperty(value = "分公司编码") + private String orgCode; + +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/Rule.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/Rule.java new file mode 100644 index 0000000000..804bdb828c --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/Rule.java @@ -0,0 +1,44 @@ +package com.yxt.sms.feign.base; + +import cn.hutool.core.date.DateUtil; +import org.springframework.util.StringUtils; + +/** + * @Author dimengzhe + * @Date 2022/7/1 9:44 + * @Description 规则 + */ +public class Rule { + + /** + * 单据编号规则:单据名称大写首字母+分公司编码+年份+月份+4位顺序号 + * 单据名称大写首字母+分公司编码+年份+月份 + * 注意:品牌编码暂不用 + * + * @return + */ + public static String getBill(BillNo b) { + String billType = b.getBillType(); + String orgCode = b.getOrgCode(); + String date = DateUtil.format(DateUtil.date(), "yyyyMM"); + String bill = billType; + if (!StringUtils.isEmpty(orgCode)) { + bill = bill + orgCode; + } + bill = bill + date; + return bill; + } + + /** + * 生成单据编号规则 + * + * @param bill 单据名称大写首字母+分公司编码+年份+月份 + * @param i 根据单据编号包含单据名称大写首字母+分公司编码+年份+月份查询出来的单据的个数 + * @return + */ + public static String getBillNo(String bill, int i) { + String num = String.format("%04d", i + 1); // 不足4位补0 + String billNo = bill + num; + return billNo; + } +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/BusinessVariables.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/BusinessVariables.java new file mode 100644 index 0000000000..f593aaffa2 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/BusinessVariables.java @@ -0,0 +1,65 @@ +package com.yxt.sms.feign.flowable.flow; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.HashMap; +import java.util.Map; + +/** + * 业务系统调用flowable流程传递参数的格式 + */ +@Data +@Builder +@AllArgsConstructor +@NoArgsConstructor +public class BusinessVariables { + /** + * 分公司sid + */ + public static final String ORGPATH="orgPath"; + /** + * 流程定义的id + */ + private String modelId; + /** + * 审批意见 + */ + private String comment; + /** + * 流程实例的id + */ + private String instanceId; + /** + * taskId + */ + private String taskId; + /** + * 当前用户的id + */ + private String userSid; + /** + * 当前用户部门的全路径 + */ + private String orgSidPath; + /** + * 业务sid + */ + private String businessSid; + /** + * 环节定义的ID + */ + private String taskDefKey; + /** + * nextNodeUserSids 下一环节的用户sid + */ + private String nextNodeUserSids; + /** + * 业务参数,按需传递 + */ + private Map formVariables =new HashMap<>(); + /* @ApiModelProperty("机构sid:切换结构使用") + private String orgPath;*/ +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowProcessMapQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowProcessMapQuery.java new file mode 100644 index 0000000000..d74cc46d8d --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowProcessMapQuery.java @@ -0,0 +1,27 @@ +package com.yxt.sms.feign.flowable.flow; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @description: 流程获取map + * @author: dimengzhe + * @date: 2023/5/26 + **/ +@Data +public class FlowProcessMapQuery { + + @ApiModelProperty("合同编号") + private String contractNo; + @ApiModelProperty("变量") + private Map variables; + @ApiModelProperty("流程id") + private String proDefKey; + + @ApiModelProperty("是否领票(欠款开票使用)") + private String isLP; + @ApiModelProperty("贷款人姓名") + private String dkrName; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowableFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowableFeign.java new file mode 100644 index 0000000000..7109cc309c --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowableFeign.java @@ -0,0 +1,38 @@ +package com.yxt.sms.feign.flowable.flow; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.sms.feign.flowable.flowtask.FlowTaskVo; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.Map; + +@FeignClient( + contextId = "anrui-flowable-Flowable", + name = "anrui-flowable", + path = "v1/flow") +public interface FlowableFeign { + + @ApiOperation(value = "获取map") + @PostMapping(value = "/getMap") + @ResponseBody + ResultBean> getMap(@RequestBody FlowProcessMapQuery query); + + @ApiOperation(value = "驳回流程") + @PostMapping(value = "/taskReject") + @ResponseBody + ResultBean taskReject(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/revokeProcess") + @ResponseBody + ResultBean revokeProcess(@RequestBody FlowTaskVo fl); + + @ApiOperation(value = "终止流程") + @PostMapping(value = "/breakProcess") + @ResponseBody + ResultBean breakProcess(@RequestBody FlowTaskVo fl); +} \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java new file mode 100644 index 0000000000..3824e5a42e --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java @@ -0,0 +1,38 @@ +package com.yxt.sms.feign.flowable.flow; + +/** + * 流程定义:流程名称与代号枚举类 + */ +public enum ProcDefEnum { + + + /***************************正式流程id***********************************/ + SMSPRICESTRATEGYBILL("价格策略申请审批", "process_jogsdsgk:1:11807504"), + ; + + + ProcDefEnum(String proDefName, String proDefId) { + this.proDefName = proDefName; + this.proDefId = proDefId; + + } + + /** + * 流程类型名称 + */ + private final String proDefName; + + /** + * 流程代号 + */ + private final String proDefId; + + public String getProDefName() { + return proDefName; + } + + public String getProDefId() { + return proDefId; + } +} + diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/UpdateFlowFieldVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/UpdateFlowFieldVo.java new file mode 100644 index 0000000000..bb135b7af4 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/UpdateFlowFieldVo.java @@ -0,0 +1,68 @@ +package com.yxt.sms.feign.flowable.flow; + +public class UpdateFlowFieldVo { + + private String sid; + private String procDefId; + private String nodeState; + private String procInsId; + private String taskDefKey; + private String taskId; + private String nextNodeUserSids; + + public String getNextNodeUserSids() { + return nextNodeUserSids; + } + + public void setNextNodeUserSids(String nextNodeUserSids) { + this.nextNodeUserSids = nextNodeUserSids; + } + + public String getSid() { + return sid; + } + + public void setSid(String sid) { + this.sid = sid; + } + + public String getProcDefId() { + return procDefId; + } + + public void setProcDefId(String procDefId) { + this.procDefId = procDefId; + } + + public String getNodeState() { + return nodeState; + } + + public void setNodeState(String nodeState) { + this.nodeState = nodeState; + } + + public String getProcInsId() { + return procInsId; + } + + public void setProcInsId(String procInsId) { + this.procInsId = procInsId; + } + + public String getTaskDefKey() { + return taskDefKey; + } + + public void setTaskDefKey(String taskDefKey) { + this.taskDefKey = taskDefKey; + } + + public String getTaskId() { + return taskId; + } + + public void setTaskId(String taskId) { + this.taskId = taskId; + } +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowDelegateQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowDelegateQuery.java new file mode 100644 index 0000000000..7d25053b49 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowDelegateQuery.java @@ -0,0 +1,23 @@ +package com.yxt.sms.feign.flowable.flow2; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author Administrator + * @description + * @date 2023/10/8 15:58 + */ +@Data +public class FlowDelegateQuery { + @ApiModelProperty + private String userSid; + @ApiModelProperty("流程实例id") + private String instanceId; + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("审批人sid") + private String assignee; + @ApiModelProperty("填写意见") + private String views; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowFeign.java new file mode 100644 index 0000000000..9d98fc53f7 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowFeign.java @@ -0,0 +1,36 @@ +package com.yxt.sms.feign.flowable.flow2; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.sms.feign.flowable.flow.BusinessVariables; +import com.yxt.sms.feign.flowable.flow.UpdateFlowFieldVo; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.ResponseBody; + +@FeignClient( + contextId = "anrui-flowable-Flow", + name = "anrui-flowable", + path = "v2/flow") +public interface FlowFeign { + + @ApiOperation(value = "加签") + @PostMapping(value = "/delegate") + public ResultBean delegate(@RequestBody FlowDelegateQuery flowDelegateQuery); + + @ApiOperation(value = "启动流程") + @PostMapping(value = "/startProcess") + @ResponseBody + ResultBean startProcess(@RequestBody BusinessVariables dto); + + @ApiOperation(value = "处理流程") + @PostMapping(value = "/handleProsess") + @ResponseBody + ResultBean handleProsess(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "转办") + @PostMapping(value = "/assignTask") + public ResultBean assignTask(@RequestBody FlowDelegateQuery flowDelegateQuery); + +} \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskFeign.java new file mode 100644 index 0000000000..a11caa77fd --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskFeign.java @@ -0,0 +1,31 @@ +package com.yxt.sms.feign.flowable.flowtask; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.sms.feign.flowable.flow.BusinessVariables; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +import java.util.List; + +@FeignClient( + contextId = "anrui-flowable-FlowTask", + name = "anrui-flowable", + path = "v1/flowable/task") +public interface FlowTaskFeign { + + @ApiOperation(value = "获取下一个环节") + @PostMapping(value = "/getNextNodesForSubmit") + ResultBean getNextNodesForSubmit(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "根据流程实例的id获取最新待办环节") + @PostMapping(value = "/获取上一个环节") + ResultBean getPreviousNodesForReject(@RequestBody BusinessVariables bv); + + @ApiOperation(value = "根据流程实例的id获取最新待办环节") + @PostMapping(value = "/getLatestTasks/{procId}") + ResultBean> getLatestTasks(@PathVariable(value = "procId") String procId); + +} \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskVo.java new file mode 100644 index 0000000000..2a1ed6e543 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskVo.java @@ -0,0 +1,53 @@ +package com.yxt.sms.feign.flowable.flowtask; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + *

流程任务

+ * + * @author XuanXuan + * @date 2021-04-03 + */ +@ApiModel("工作流任务相关--请求参数") +@Data +public class FlowTaskVo { + + @ApiModelProperty("任务Id") + private String taskId; + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("用户Id") + private String userId; + @ApiModelProperty("用户Sid") + private String userSid; + + @ApiModelProperty("任务意见") + private String comment; + + @ApiModelProperty("流程实例Id") + private String instanceId; + + @ApiModelProperty("节点") + private String targetKey; + + @ApiModelProperty("流程变量信息") + private Map values=new HashMap<>(); + + @ApiModelProperty("审批人") + private String assignee; + + @ApiModelProperty("候选人") + private List candidateUsers; + + @ApiModelProperty("审批组") + private List candidateGroups; + + + +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/LatestTaskVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/LatestTaskVo.java new file mode 100644 index 0000000000..f4d1d6adf3 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/LatestTaskVo.java @@ -0,0 +1,34 @@ +package com.yxt.sms.feign.flowable.flowtask; + +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description + * @Author liuguohui + * @Date 2022/1/11 + */ +@ApiModel("最近环节") +@Data +public class LatestTaskVo implements Vo { + + @ApiModelProperty(value = "name_") + private String name_; + + @ApiModelProperty(value = "task_def_key_") + private String task_def_key_; + + @ApiModelProperty(value = "id_") + private String id_; + + @ApiModelProperty(value = "name_") + private String ASSIGNEE_; + + @ApiModelProperty(value = "orgPath") + private String orgPath; + + @ApiModelProperty(value = "incomingSourceRef") + private String incomingSourceRef; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFeign.java new file mode 100644 index 0000000000..125d0e96db --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFeign.java @@ -0,0 +1,26 @@ +package com.yxt.sms.feign.message; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Api(tags = "消息体") +@FeignClient( + contextId = "message-center-Message", + name = "message-center", + path = "v1/message") +public interface MessageFeign { + + /** + * 流程审批推送消息 + * + * @param query + * @return + */ + @ApiOperation("流程审批推送消息") + @PostMapping("/pushMessage") + ResultBean pushMessage(@RequestBody MessageFlowableQuery query); +} \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowVo.java new file mode 100644 index 0000000000..fb81b8d8a4 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowVo.java @@ -0,0 +1,21 @@ +package com.yxt.sms.feign.message; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/8/25 15:58 + * @Description + */ +@Data +public class MessageFlowVo implements Vo { + + private String sid; + private String procDefId; + private String nodeState; + private String procInsId; + private String taskDefKey; + private String taskId; + private String nextNodeUserSids; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowableQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowableQuery.java new file mode 100644 index 0000000000..448afb7125 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowableQuery.java @@ -0,0 +1,32 @@ +package com.yxt.sms.feign.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Map; + +/** + * @Author dimengzhe + * @Date 2022/8/25 15:12 + * @Description + */ +@Data +public class MessageFlowableQuery implements Query { + private static final long serialVersionUID = 3618558867479892211L; + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("模块名称") + private String moduleName; + @ApiModelProperty("消息内容") + private String msgContent; + @ApiModelProperty("消息标题") + private String msgTitle; + @ApiModelProperty("流程相关参数") + private MessageFlowVo ufVo; + @ApiModelProperty("app所需参数") + private Map appMap; + @ApiModelProperty("申请人") + private String applicationName; + +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/PushMessageQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/PushMessageQuery.java new file mode 100644 index 0000000000..98d12c6b22 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/PushMessageQuery.java @@ -0,0 +1,34 @@ +package com.yxt.sms.feign.message; + +import com.yxt.common.core.query.Query; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/8/10 + **/ +@Data +public class PushMessageQuery implements Query { + private static final long serialVersionUID = -5710109873182775336L; + + @ApiModelProperty("业务sid") + private String businessSid; + @ApiModelProperty("模块名称") + private String moduleName; + @ApiModelProperty("消息内容") + private String msgContent; + @ApiModelProperty("消息标题") + private String msgTitle; + @ApiModelProperty("接收人sidList") + private List receivedSids; + /* @ApiModelProperty("跳转地址") + private String msgTargetUri;*/ + @ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件") + private String app_type; + @ApiModelProperty("插件sid") + private String moduleSid; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganization.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganization.java new file mode 100644 index 0000000000..12713d66b4 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganization.java @@ -0,0 +1,92 @@ +package com.yxt.sms.feign.portal.sysorganization; + +import com.baomidou.mybatisplus.annotation.TableName; +import com.yxt.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysOrganization.java
+ * Class: com.yxt.anrui.portal.api.sysorganization.SysOrganization
+ * Description: 组织机构表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:28
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "组织机构表", description = "组织机构表") +@TableName("sys_organization") +@Data +public class SysOrganization extends BaseEntity { + private static final long serialVersionUID = 1L; + + + @ApiModelProperty("部门/组织名称") + private String name; + + @ApiModelProperty("父(部门/组织) sid") + private String psid; + + @ApiModelProperty("联系电话") + private String linkPhone; + @ApiModelProperty("联系人") + private String linkPerson; + + @ApiModelProperty("部门sid全路径") + private String orgSidPath; + + @ApiModelProperty("排序") + private Integer sort; + + @ApiModelProperty("地址") + private String addrs; + + @ApiModelProperty("地理位置经纬度") + private String jwd; + + @ApiModelProperty("二维码") + private String qrText; + + @ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己") + private Integer limitOrgMember; + + @ApiModelProperty("部门编码") + private String orgCode; + + @ApiModelProperty("部门简称(地区简称+门店名称首字母(遇到首字母重复时用2个字母))") + private String orgShortName; + + @ApiModelProperty("销售区域划分(本店终端销售:0,门店对应业务区域划分销售:1至9,具体编号划分各门店报备确定)") + private String regionDivision; + + @ApiModelProperty("是否是部门(0否,1是)") + private Integer isDept; + + @ApiModelProperty("组织简称") + private String orgAbbre; + + @ApiModelProperty("组织属性key") + private String orgAttributeKey; + + @ApiModelProperty("组织属性value") + private String orgAttributeValue; + + @ApiModelProperty("管理层级key") + private String orgLevelKey; + + @ApiModelProperty("管理层级value") + private String orgLevelValue; + + @ApiModelProperty("其他编码") + private String otherCode; + + @ApiModelProperty("主管人员sid") + private String managerSid; + @ApiModelProperty("主管人员姓名") + private String managerName; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationFeign.java new file mode 100644 index 0000000000..f258ed396b --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationFeign.java @@ -0,0 +1,35 @@ +package com.yxt.sms.feign.portal.sysorganization; + +import com.yxt.common.core.result.ResultBean; +import io.swagger.annotations.Api; +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.ResponseBody; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysOrganizationFeign.java
+ * Class: com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign
+ * Description: 组织机构表.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:28
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@Api(tags = "组织机构表") +@FeignClient( + contextId = "anrui-portal-SysOrganization", + name = "anrui-portal", + path = "v1/sysorganization") +public interface SysOrganizationFeign { + + @ApiOperation("获取一条记录 根据sid") + @ResponseBody + @GetMapping("/fetchBySid/{sid}") + public ResultBean fetchBySid(@PathVariable("sid") String sid); +} \ No newline at end of file diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationVo.java new file mode 100644 index 0000000000..5b620df92e --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationVo.java @@ -0,0 +1,88 @@ +package com.yxt.sms.feign.portal.sysorganization; + + +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: anrui_portal(门户建设)
+ * File: SysOrganizationVo.java
+ * Class: com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo
+ * Description: 组织机构表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:28
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "组织机构表 视图数据对象", description = "组织机构表 视图数据对象") +@Data +public class SysOrganizationVo implements Vo { + @ApiModelProperty("部门/组织名称") + private String name; + + @ApiModelProperty("父(部门/组织) sid") + private String psid; + + @ApiModelProperty("联系电话") + private String linkPhone; + + @ApiModelProperty("联系人") + private String linkPerson; + + @ApiModelProperty("部门sid全路径") + private String orgSidPath; + + @ApiModelProperty("排序") + private Integer sort; + + @ApiModelProperty("地址") + private String addrs; + + @ApiModelProperty("地理位置经纬度") + private String jwd; + + @ApiModelProperty("二维码") + private String qrText; + + @ApiModelProperty("限制本部门成员查看通讯录:限制开启后,本部门成员只能看到限定范围内的通讯录不能看到所有通讯录,仅可见自己") + private Integer limitOrgMember; + + @ApiModelProperty("部门编码") + private String orgCode; + @ApiModelProperty("sid") + private String sid; + @ApiModelProperty("子集") + private List children = new ArrayList<>(); + @ApiModelProperty("主管人员名称") + private String zgNames; + @ApiModelProperty("分管人员名称") + private String fgNames; + @ApiModelProperty("主管人员sid") + private String zgStaffSid; + @ApiModelProperty("分管人员sid") + private String fgStaffSid; + @ApiModelProperty("组织简称") + private String orgAbbre; + @ApiModelProperty("是否是部门(0否,1是)") + private Integer isDept; + @ApiModelProperty("组织属性key") + private String orgAttributeKey; + @ApiModelProperty("组织属性value") + private String orgAttributeValue; + @ApiModelProperty("管理层级key") + private String orgLevelKey; + @ApiModelProperty("管理层级value") + private String orgLevelValue; + @ApiModelProperty("其他编码") + private String otherCode; + @ApiModelProperty("主管用户sid") + private String managerSid; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysstafforg/SysStaffOrgFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysstafforg/SysStaffOrgFeign.java new file mode 100644 index 0000000000..68f228cbc3 --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysstafforg/SysStaffOrgFeign.java @@ -0,0 +1,25 @@ +package com.yxt.sms.feign.portal.sysstafforg; + +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.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +/** + * @description: 人员与机构 + * @author: dimengzhe + * @date: 2024/3/6 + **/ +@FeignClient( + contextId = "anrui-portal-SysStaffOrg", + name = "anrui-portal", + path = "v1/sysstafforg") +public interface SysStaffOrgFeign { + + @GetMapping("/getOrgSidByPath") + @ResponseBody + @ApiOperation("根据用户组织全路径获取用户的分公司sid") + ResultBean getOrgSidByPath(@RequestParam("orgPath") String orgPath); +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/privilege/PrivilegeQuery.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/privilege/PrivilegeQuery.java new file mode 100644 index 0000000000..ad5371175f --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/privilege/PrivilegeQuery.java @@ -0,0 +1,22 @@ +package com.yxt.sms.feign.privilege; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: 权限角色层级 + * @author: dimengzhe + * @date: 2023/5/23 + **/ +@Data +public class PrivilegeQuery { + + @ApiModelProperty("菜单路由") + private String menuUrl; + @ApiModelProperty("组织全路径sid") + private String orgPath; + @ApiModelProperty("菜单sid") + private String menuSid; + @ApiModelProperty("用户sid") + private String userSid; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/OrgList.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/OrgList.java new file mode 100644 index 0000000000..1c0dcd477b --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/OrgList.java @@ -0,0 +1,21 @@ +package com.yxt.sms.feign.sysuser; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @Author dimengzhe + * @Date 2022/9/21 9:26 + * @Description + */ +@Data +public class OrgList implements Vo { + private static final long serialVersionUID = -2867882982421321776L; + + private String orgName; + private String orgPath; + + private String deptName; + + private String deptSid; +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserFeign.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserFeign.java new file mode 100644 index 0000000000..19721d3ada --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserFeign.java @@ -0,0 +1,27 @@ +package com.yxt.sms.feign.sysuser; + +import com.yxt.common.core.result.ResultBean; +import com.yxt.sms.feign.privilege.PrivilegeQuery; +import io.swagger.annotations.Api; +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.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@Api(tags = "用户表") +@FeignClient( + contextId = "anrui-portal-SysUser", + name = "anrui-portal", + path = "v1/sysuser") +public interface SysUserFeign { + + @ApiOperation(value = "查询角色权限的层级获取权限id") + @PostMapping(value = "/selectPrivilegeLevel") + ResultBean selectPrivilegeLevel(@RequestBody PrivilegeQuery query); + + @ApiOperation("根据sid获取一条记录") + @GetMapping("/fetchBySid/{sid}") + public ResultBean fetchBySid(@PathVariable("sid") String sid); +} diff --git a/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserVo.java b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserVo.java new file mode 100644 index 0000000000..83d8cca92f --- /dev/null +++ b/yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserVo.java @@ -0,0 +1,97 @@ +package com.yxt.sms.feign.sysuser; + + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.yxt.common.core.vo.Vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.ArrayList; +import java.util.List; + +/** + * Project: anrui_portal(门户建设)
+ * File: SysUserVo.java
+ * Class: com.yxt.anrui.portal.api.sysuser.SysUserVo
+ * Description: 用户表 视图数据对象.
+ * Copyright: Copyright (c) 2011
+ * Company: https://gitee.com/liuzp315
+ * Makedate: 2021-08-03 00:24:30
+ * + * @author liupopo + * @version 1.0 + * @since 1.0 + */ +@ApiModel(value = "用户表 视图数据对象", description = "用户表 视图数据对象") +@Data +@NoArgsConstructor +public class SysUserVo implements Vo { + private static final long serialVersionUID = 2415131854581950721L; + @ApiModelProperty("部门sid") + private String departmentSid; + @ApiModelProperty("部门名称") + private String departmentName; + @ApiModelProperty("上级部门名称-本级部门名称 岗位名称") + @JsonProperty("pNameAndDepartmentNameAndPostName") + private String pNameAndDepartmentNameAndPostName; + @ApiModelProperty("岗位名称") + private String postName; + @ApiModelProperty("岗位Sid") + private String postSid; + @ApiModelProperty("单位sid") + private String organizationSid; + @ApiModelProperty("单位名称") + private String organizationName; + @ApiModelProperty("用户姓名") + private String name; + @ApiModelProperty("登录名,登录名不能相同") + private String userName; + + @ApiModelProperty("id") + private Integer id; + @ApiModelProperty("用户sid") + private String sid; + @ApiModelProperty("是否是管理员:1管理员,2一般用户,0是超级管理员,3尚无单位人员") + private String isAdmin; + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("关联的人员sid") + private String staffSid; + + @ApiModelProperty("手机号") + private String mobile; + @ApiModelProperty(value = "禁用状态") + private String isEnable; + + @ApiModelProperty("用户类型:1员工、2客户、3供应商") + private String userType; + @ApiModelProperty("用户类型:1、2、3") + private String userTypeKey; + @ApiModelProperty("用户头像") + private String headImage; + @ApiModelProperty("组织名称") + private String orgNamePath; + @ApiModelProperty("组织sid") + private String orgSidPath; + @ApiModelProperty(value = "token") + private String token; + @ApiModelProperty(value = "角色sids") + private List roleSids = new ArrayList<>(); + + private List orgList = new ArrayList<>(); + @ApiModelProperty("默认的组织机构sid全路径") + private String defaultOrgPath; + @ApiModelProperty("默认的组织机构名称全路径") + private String defaultOrgPathName; + + private String defaultDeptName; + private String defaultDeptSid; + + @ApiModelProperty("是否需要更换密码") + private Boolean needResetPsd; + @ApiModelProperty("工号") + private String jobNumber; +}