Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe 11 months ago
parent
commit
e7752d7b4e
  1. 24
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basetrailer/BaseTrailerService.java
  2. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeign.java
  3. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordervehicle/BusSalesOrderVehicleFeignFallback.java
  4. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.java
  5. 12
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleMapper.xml
  6. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleRest.java
  7. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordervehicle/BusSalesOrderVehicleService.java
  8. 1
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/risk/loanhomevisitinvestigate/LoanHomeVisitInvestigateService.java
  9. 2
      yxt-as-ui/src/api/Common/dictcommons.js
  10. 18
      yxt-as-ui/src/api/storage/adjustment.js
  11. 208
      yxt-as-ui/src/views/storage/adjustment/adjustmentAdd.vue
  12. 57
      yxt-as-ui/src/views/storage/adjustment/adjustmentInfo.vue
  13. 4
      yxt-as-ui/src/views/storage/adjustment/index.vue
  14. 9
      yxt-as-ui/src/views/storage/adjustment/relation/choosecategory.vue
  15. 198
      yxt-as-ui/src/views/storage/adjustment/relation/editPriceStrategy.vue
  16. 13
      yxt-as-ui/src/views/storage/receivingGoods/index.vue
  17. 6
      yxt-base-biz/src/main/java/com/yxt/base/apiadmin/base/BaseGoodsTypeRest.java
  18. 19
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeChoiceQuery.java
  19. 3
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java
  20. 8
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml
  21. 60
      yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java
  22. 28
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillDetailRest.java
  23. 36
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillGoodstypedetailRest.java
  24. 63
      yxt-sms-biz/src/main/java/com/yxt/sms/apiadmin/SmsPricestrategyBillRest.java
  25. 6
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillDetailsVo.java
  26. 7
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.java
  27. 37
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml
  28. 20
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillQuery.java
  29. 522
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java
  30. 14
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillVo.java
  31. 37
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillCompleteDto.java
  32. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillDelegateQuery.java
  33. 25
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeQuery.java
  34. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillNodeVo.java
  35. 48
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SmsPricestrategyBillTaskQuery.java
  36. 24
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/flowable/SubmitSmsPricestrategyBillDto.java
  37. 2
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetail.java
  38. 11
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDetailsVo.java
  39. 10
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailDto.java
  40. 67
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybilldetail/SmsPricestrategyBillDetailService.java
  41. 10
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetail.java
  42. 10
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDetailsVo.java
  43. 10
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailDto.java
  44. 12
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.java
  45. 7
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml
  46. 63
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailQuery.java
  47. 79
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailService.java
  48. 65
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailVo.java
  49. 24
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/BillNo.java
  50. 44
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/base/Rule.java
  51. 65
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/BusinessVariables.java
  52. 27
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowProcessMapQuery.java
  53. 38
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/FlowableFeign.java
  54. 38
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/ProcDefEnum.java
  55. 68
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow/UpdateFlowFieldVo.java
  56. 23
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowDelegateQuery.java
  57. 36
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flow2/FlowFeign.java
  58. 31
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskFeign.java
  59. 53
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/FlowTaskVo.java
  60. 34
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/flowable/flowtask/LatestTaskVo.java
  61. 26
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFeign.java
  62. 21
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowVo.java
  63. 32
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/MessageFlowableQuery.java
  64. 34
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/message/PushMessageQuery.java
  65. 92
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganization.java
  66. 35
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationFeign.java
  67. 88
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysorganization/SysOrganizationVo.java
  68. 25
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/portal/sysstafforg/SysStaffOrgFeign.java
  69. 22
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/privilege/PrivilegeQuery.java
  70. 21
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/OrgList.java
  71. 27
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserFeign.java
  72. 97
      yxt-sms-biz/src/main/java/com/yxt/sms/feign/sysuser/SysUserVo.java

24
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<BaseTrailerMapper, Ba
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private FinBillTrailerFeign finBillTrailerFeign;
@Autowired
private BusSalesOrderTrailerFeign busSalesOrderTrailerFeign;
private QueryWrapper<BaseTrailer> 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<BaseTrailerMapper, Ba
baseTrailer.setCreateBySid(dto.getUserSid());
String vehSid = dto.getVehSid();
BaseVehicle baseVehicle = baseVehicleService.fetchBySid(vehSid);
/***************************************挂车入库判断***************************************/
BaseTrailerModelDetailsVo baseTrailerModelDetailsVo = baseTrailerModelService.fetchDetailsVoBySid(baseTrailer.getTrailerModelSid());
String trailerTypeKey = baseTrailerModelDetailsVo.getTrailerTypeKey();
String appearanceSizeLong = baseTrailerModelDetailsVo.getAppearanceSizeLong();
String orderSid = busSalesOrderVehicleFeign.selectOneByVehSidAndNotStop(vehSid).getData();
if (StringUtils.isNotBlank(orderSid)){
List<BusSalesOrderTrailerDetailsVo> 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)) {

4
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<String> selectOneByVehSidAndNotStop(@RequestParam("vehSid") String vehSid);
}

5
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<String> selectOneByVehSidAndNotStop(String vehSid) {
return null;
}
}

2
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<BusSalesOrderVehi
@Select("select sid from bus_sales_order_vehicle where salesOrderSid = #{saleOrderSid}")
List<String> selectBySalesOrderSid2(String saleOrderSid);
String selectOneByVehSidAndNotStop(String vehSid);
}

12
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}
</select>
<select id="selectOneByVehSidAndNotStop" resultType="java.lang.String">
SELECT
bv.salesOrderSid
FROM bus_sales_order_vehicle bv
LEFT JOIN bus_sales_order bo
ON bv.`salesOrderSid` = bo.`sid`
WHERE bv.`linkSid` = #{vehSid}
AND bo.`nodeState` != '终止'
ORDER BY bv.`createTime` DESC
LIMIT 1
</select>
</mapper>

7
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<String> selectOneByVehSidAndNotStop(String vehSid) {
ResultBean rb = ResultBean.fireFail();
String orderSid = busSalesOrderVehicleService.selectOneByVehSidAndNotStop(vehSid);
return rb.success().setData(orderSid);
}
}

4
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<BusSalesOrde
public List<String> selectBySalesOrderSid2(String saleOrderSid) {
return baseMapper.selectBySalesOrderSid2(saleOrderSid);
}
public String selectOneByVehSidAndNotStop(String vehSid) {
return baseMapper.selectOneByVehSidAndNotStop(vehSid);
}
}

1
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<PagerVo<LoanHomevisitAppealVo>> resultBean = loanHomevisitAppealFeign.listPage(pq);
List<LoanHomeVisitInvestigatePageVo> loanHomeVisitInvestigatePageVos = new ArrayList<>();
PagerVo<LoanHomeVisitInvestigatePageVo> v = new PagerVo<>();

2
yxt-as-ui/src/api/Common/dictcommons.js

@ -194,7 +194,7 @@ export function getAsBusrepairBill(params) {
// 查询分页列表 --商品类别列表
export function getGoodsCategory(params) {
return request({
url: '/as/v1/AsBusrepairBill/listPage',
url: '/yxtbase/apiadmin/base/basegoodstype/selectByUseOrgSid',
method: 'post',
data: params,
headers: {

18
yxt-as-ui/src/api/storage/adjustment.js

@ -5,7 +5,7 @@ export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/wms/apiadmin/WmsShelfBill/listPage',
url: '/sms/v1/smspricestrategybill/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
@ -15,7 +15,7 @@ export default {
// 初始化
init: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/details?sid='+data,
url: '/sms/v1/smspricestrategybill/fetchDetailsBySid/'+data,
method: 'get'
});
},
@ -24,7 +24,17 @@ export default {
// 新增、保存
save: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/saveOrUpdate',
url: '/sms/v1/smspricestrategybill/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
});
},
// 新增、保存
submit: function(data) {
return request({
url: '/sms/v1/smspricestrategybill/submit',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
@ -34,7 +44,7 @@ export default {
deleteBySids: function(data) {
return request({
url: '/wms/apiadmin/WmsShelfBill/delBySids',
url: '/sms/v1/smspricestrategybill/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }

208
yxt-as-ui/src/views/storage/adjustment/adjustmentAdd.vue

@ -48,19 +48,27 @@
<div>商品类别列表</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="categoryAdd()">添加</el-button>
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table v-loading="listLoading" :data="formobj.smsPricestrategyBillDetailList" border style="width: 100%;">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" wid align="center" width="200">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="doGoods(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="doAddBatch(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="deleteGoodsType(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="editPriceStrategy(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column label="类别编码" prop="goodsTypeCode" align="center" />
<el-table-column label="类别名称" prop="goodsTypeName" align="center" />
<el-table-column label="价格策略" align="center">
<template slot-scope="scope">
{{calculation(scope.row)}}
</template>
</el-table-column>
<el-table-column label="策略明细" align="center" width="600">
<template slot-scope="scope">
{{calculation2(scope.row)}}
</template>
</el-table-column>
<el-table-column label="类别编码" prop="goodsSpuName" align="center" />
<el-table-column label="类别名称" prop="goodsSkuCode" align="center" />
<el-table-column label="价格策略" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="策略明细" prop="unit" align="center" width="600" />
</el-table>
@ -70,9 +78,9 @@
</div>
<!-- 选择商品类别 -->
<choosecategory v-show="viewState == 2" ref="divSp" @backData="backData" @doback="resetState" />
<choosecategory v-show="viewState == 2" ref="choosecategory" @backData="backData" @doback="resetState" />
<!-- 编辑价格策略 -->
<editPriceStrategy v-show="viewState == 3" ref="divSp" @backData="backData" @doback="resetState" />
<editPriceStrategy v-show="viewState == 3" ref="editPriceStrategy" @backData2="backData2" @doback="resetState" />
</div>
</template>
@ -83,6 +91,9 @@
} from '@/utils/index.js'
import choosecategory from './relation/choosecategory'
import editPriceStrategy from './relation/editPriceStrategy'
import {
getOrgSidByPath
} from '@/api/Common/dictcommons'
export default {
components: {
choosecategory,
@ -91,18 +102,129 @@
data() {
return {
title: "【新增】",
viewState:1,
viewState: 1,
listLoading: false,
submitdisabled: false,
formobj: {
"sid": "",
"createByName": window.sessionStorage.getItem('name'),
"billNo": "",
"deptName": window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1),
"deptSid": window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1),
"remarks": "",
"createBySid": window.sessionStorage.getItem('userSid'),
"createTime": getCurrentDate(),
"procDefId": "",
"nodeId": "",
"procInstId": "",
"nodeState": "",
"taskId": "",
"finishTime": "",
"useOrgSid": "",
"useOrgName": "",
"smsPricestrategyBillDetailList": []
},
}
},
created() {},
created() {
},
methods: {
calculation(row) {
console.log("calculation》》》》", row)
var info = ''
info = row.strategyType == 0 ? '固定比例' : '价格区间'
return info
},
calculation2(row) {
var info = ''
if (row.strategyType == 1) {
for (var i = 0; i < row.smsPricestrategyBillGoodstypedetailList.length; i++) {
info += row.smsPricestrategyBillGoodstypedetailList[i].rangeStart + "——" + row
.smsPricestrategyBillGoodstypedetailList[i].rangeEnd + " " + row
.smsPricestrategyBillGoodstypedetailList[i]
.markupRate + ";"
}
} else {
info = row.gdMarkupRate
}
return info
},
deleteGoodsType(row) {
const index = this.formobj.smsPricestrategyBillDetailList.findIndex((item) => item === row)
console.log("index》》》》", index)
this.formobj.smsPricestrategyBillDetailList.splice(index, 1)
},
editPriceStrategy(row) {
this.viewState = 3
const aa = []
this.$refs['editPriceStrategy'].showAdd(aa, row)
},
backData(value) {
this.viewState = 1
console.log('>>>>>>>>>backData', value)
for (var i = 0; i < value.length; i++) {
this.formobj.smsPricestrategyBillDetailList.push(
{
goodsTypeSid: value[i].sid,
goodsTypeCode: value[i].goodsTypeCode,
goodsTypeName: value[i].goodsTypeName,
strategyType: '',
strategyTypeValue: '',
gdMarkupRate: "",
strategyDetail: '',
smsPricestrategyBillGoodstypedetailList: []
}
)
}
},
backData2(value) {
this.viewState = 1
console.log('>>>>>>>>>backData2', value)
var info = ''
if (value.strategyType == 1) {
for (var i = 0; i < value.smsPricestrategyBillGoodstypedetailList.length; i++) {
info += value.smsPricestrategyBillGoodstypedetailList[i].rangeStart + "——" + value
.smsPricestrategyBillGoodstypedetailList[i].rangeEnd + " " + value
.smsPricestrategyBillGoodstypedetailList[i]
.markupRate + ";"
}
}
console.log('>>>>>>>>>backData2', info)
const choose = this.formobj.smsPricestrategyBillDetailList.filter((item) => item.goodsTypeSid == value
.goodsTypeSid)
console.log('>>>>>>>>>busTypeSelect', choose)
choose[0].strategyDetail = value.strategyType == 0 ? value.gdMarkupRate : info
choose[0].smsPricestrategyBillGoodstypedetailList = value.smsPricestrategyBillGoodstypedetailList
choose[0].strategyType = value.strategyType
choose[0].strategyTypeValue = value.strategyType == 0 ? '固定比例' : '价格区间'
console.log('>>>>>>>>>backData2', choose)
},
resetState() {
@ -110,7 +232,9 @@
},
categoryAdd() {
this.viewState =2
this.viewState = 2
const aa = []
this.$refs['choosecategory'].showData(aa, this.formobj.createOrgSid)
},
indexMethod(index) {
return index + 1
@ -118,20 +242,6 @@
saveOrUpdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
for (var i = 0; i < this.formobj.list.length; i++) {
if (Number(this.formobj.list[i].actualInCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量不能为空'
})
return
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
@ -156,19 +266,13 @@
submintdate() {
console.log('>>>>>>>>>saveOrUpdate', this.formobj)
for (var i = 0; i < this.formobj.list.length; i++) {
if (Number(this.formobj.list[i].actualInCount) == 0) {
this.$message({
showClose: true,
type: 'error',
message: '商品实收数量不能为空'
})
return
}
if (this.formobj.smsPricestrategyBillDetailList.length == 0) {
this.$message({
showClose: true,
type: 'warning',
message: '请添加商品类别'
})
return
}
@ -202,24 +306,24 @@
},
showAdd() {
this.title = '【新增】'
getOrgSidByPath({
orgPath: window.sessionStorage.getItem('defaultOrgPath')
}).then((res) => {
if (res.success) {
this.formobj.createOrgSid = res.data
this.formobj.useOrgSid = res.data
}
})
},
showEdit(row) {
var params = {
sourceSid: row.sid
}
req.getInitDetails(row.sid)
this.title = '【编辑】'
req.init(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})
.catch(e => {

57
yxt-as-ui/src/views/storage/adjustment/adjustmentInfo.vue

@ -37,7 +37,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty">备注</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.remarks }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.remarks }}</span></el-form-item>
</el-col>
</el-row>
@ -45,13 +45,21 @@
<div>商品类别列表</div>
<!-- <el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">添加</el-button> -->
</div>
<el-table v-loading="listLoading" :data="formobj.list" border style="width: 100%;">
<el-table v-loading="listLoading" :data="formobj.smsPricestrategyBillDetailList" border style="width: 100%;">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column label="类别编码" prop="goodsSpuName" align="center" />
<el-table-column label="类别名称" prop="goodsSkuCode" align="center" />
<el-table-column label="价格策略" prop="goodsSkuOwnSpec" align="center" />
<el-table-column label="策略明细" prop="unit" align="center" width="600" />
<el-table-column label="类别编码" prop="goodsTypeCode" align="center" />
<el-table-column label="类别名称" prop="goodsTypeName" align="center" />
<el-table-column label="价格策略" align="center">
<template slot-scope="scope">
{{calculation(scope.row)}}
</template>
</el-table-column>
<el-table-column label="策略明细" align="center" width="600">
<template slot-scope="scope">
{{calculation2(scope.row)}}
</template>
</el-table-column>
</el-table>
@ -78,6 +86,30 @@
created() {},
methods: {
calculation(row) {
var info = ''
info = row.strategyType == 0 ? '固定比例' : '价格区间'
return info
},
calculation2(row) {
var info = ''
if (row.smsPricestrategyBillGoodstypedetailList != null && row.smsPricestrategyBillGoodstypedetailList.length >
0) {
for (var i = 0; i < row.smsPricestrategyBillGoodstypedetailList.length; i++) {
info += row.smsPricestrategyBillGoodstypedetailList[i].rangeStart + "——" + row
.smsPricestrategyBillGoodstypedetailList[i].rangeEnd + " " + row
.smsPricestrategyBillGoodstypedetailList[i]
.markupRate + ";"
}
}else{
info = row.gdMarkupRate
}
return info
},
indexMethod(index) {
return index + 1
},
@ -94,21 +126,12 @@
showAdd() {
},
showEdit(row) {
var params = {
sourceSid: row.sid
}
showInfo(row) {
req.getInitDetails(row.sid)
req.init(row.sid)
.then(resp => {
if (resp.success) {
this.formobj = resp.data
this.formobj.deliveryDate = getCurrentDate()
this.formobj.deptName = window.sessionStorage.getItem('defaultOrgPathName').substring(window
.sessionStorage.getItem('defaultOrgPathName').lastIndexOf('/') + 1)
this.formobj.deptSid = window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
}
})

4
yxt-as-ui/src/views/storage/adjustment/index.vue

@ -66,7 +66,7 @@
<span v-else @click="flowRecord(scope.row)" class="bluezi">{{ scope.row.nodeState }}</span>
</template>
</el-table-column> -->
<el-table-column prop="billNo" label="流程状态" align="center" />
<el-table-column prop="nodeState" label="流程状态" align="center" />
<el-table-column prop="billNo" label="单据编号" align="center" />
<el-table-column prop="useOrgName" label="分公司" align="center" />
<el-table-column prop="deptName" label="申请部门" align="center" />
@ -177,7 +177,7 @@
},
created() {
//
// this.getList()
this.getList()
},
mounted() {
// vuewindowpostMessagehandleMessage

9
yxt-as-ui/src/views/storage/adjustment/relation/choosecategory.vue

@ -40,8 +40,8 @@
<el-button type="primary" size="mini" @click="toInfo(scope.row)">确认</el-button>
</template>
</el-table-column> -->
<el-table-column prop="billNo" label="类别编码" align="center" />
<el-table-column prop="billType" label="类别名称" align="center" />
<el-table-column prop="goodsTypeCode" label="类别编码" align="center" />
<el-table-column prop="goodsTypeName" label="类别名称" align="center" />
</el-table>
</div>
<div class="pages">
@ -81,6 +81,8 @@
params: {
code: '',
name: '',
deptSid:window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
},
total: 0
}
@ -129,6 +131,8 @@
params: {
code: '',
name: '',
deptSid:window.sessionStorage.getItem('defaultOrgPath').substring(window.sessionStorage
.getItem('defaultOrgPath').lastIndexOf('/') + 1)
},
total: 0
}
@ -147,7 +151,6 @@
// } else {
// this.listQuery.params.saleVehSids = []
// }``
this.listQuery.params.createOrgSid = createOrgSid
this.listQuery.current = 1
this.listQuery.size = 10
this.listQuery.total = 0

198
yxt-as-ui/src/views/storage/adjustment/relation/editPriceStrategy.vue

@ -6,7 +6,7 @@
<div>价格策略设置</div>
<!-- start 添加修改按钮 -->
<div>
<el-button type="info" size="small" @click="saveData()">保存</el-button>
<el-button type="primary" size="small" @click="saveData()">保存</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
<!-- end 添加修改按钮 -->
@ -15,7 +15,7 @@
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<!-- <div class="title">
<div>基础信息</div>
</div> -->
@ -23,37 +23,40 @@
<el-col :span="12">
<div class="span-sty">商品类别名称</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.createByName }}</span></el-form-item>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.goodsTypeName }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">价格策略</div>
<el-form-item><span class="addinputw addinputInfo">{{ formobj.deptName }}</span></el-form-item>
<div class="span-sty"><span class="must">*</span> 价格策略</div>
<el-form-item prop="strategyType">
<el-radio-group v-model="formobj.strategyType" size="small" style="margin-left: 120px;"
@change="selectIsLockingSalesPrice">
<el-radio :label="0">固定比例</el-radio>
<el-radio :label="1">价格区间</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row v-show="formobj.strategyType==0">
<el-col :span="24">
<div class="span-sty">加价比例(%)</div>
<div class="span-sty"><span class="must">*</span> 加价比例(%)</div>
<el-form-item>
<el-radio-group v-model="formobj.isLockingSalesPrice" size="small" style="margin-left: 120px;"
@change="selectIsLockingSalesPrice">
<el-radio :label="'1'">固定比例</el-radio>
<el-radio :label="'2'">价格区间</el-radio>
</el-radio-group>
<el-input v-model="formobj.gdMarkupRate" placeholder="" class="addinputw addinputInfo" clearable @input="gdMarkupRateInput"
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</el-form-item>
</el-col>
</el-row>
<div class="title titleOne">
<div class="title titleOne" v-show="formobj.strategyType==1">
<div>价格区间加价策略</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="batchAddAll()">添加</el-button>
<el-button type="primary" size="mini" class="btntopblueline" @click="addItem()">添加</el-button>
</div>
<el-table :data="formobj.list" border style="width: 100%;">
<el-table :data="formobj.smsPricestrategyBillGoodstypedetailList" border style="width: 100%;"
v-show="formobj.strategyType==1">
<!-- <el-table-column fixed width="50" type="selection" align="center" /> -->
<el-table-column fixed width="80" label="序号" type="index" :index="indexMethod" align="center" />
<el-table-column fixed label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toInfo(scope.row)">删除</el-button>
<el-button type="primary" size="mini" @click="deleteItem(scope.row)">删除</el-button>
</template>
</el-table-column>
<!-- <el-table-column label="区间开始" prop="goodsSpuName" align="center" />
@ -62,19 +65,25 @@
<el-table-column label="区间开始" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectReason" clearable placeholder="" />
<el-input ref="focusAssumptionInput" v-model="scope.row.rangeStart" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="区间截止" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectReason" clearable placeholder="" />
<el-input ref="focusAssumptionInput" v-model="scope.row.rangeEnd" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
<el-table-column label="加价比例(%)" align="center">
<template slot-scope="scope">
<el-input ref="focusAssumptionInput" v-model="scope.row.rejectReason" clearable placeholder="" />
<el-input ref="focusAssumptionInput" v-model="scope.row.markupRate" clearable placeholder=""
oninput="value=value.replace(/[^\d.]/g, '').replace(/\.{2,}/g, '.').replace('.', '$#$').replace(/\./g, '').replace('$#$', '.').replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3').replace(/^\./g, '')" />
</template>
</el-table-column>
@ -103,39 +112,152 @@
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
sids: [],
formobj:{}
formobj: {
goodsTypeName: "",
strategyType: '',
gdMarkupRate: "",
smsPricestrategyBillGoodstypedetailList: []
},
rules: {
strategyType: [{
required: true,
message: '请选择价格策略',
trigger: 'change'
}],
gdMarkupRate: [{
required: true,
message: '加价比例不能为空',
trigger: 'blur'
}],
}
}
},
methods: {
gdMarkupRateInput(val){
console.log("gdMarkupRateInput》》》》", val)
console.log("gdMarkupRateInput》》》》", this.formobj.gdMarkupRate)
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
return index + 1
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请至少选择一条记录进行操作',
type: 'error',
duration: 2000
})
saveData() {
if (this.formobj.strategyType == 0) {
if (this.formobj.gdMarkupRate == '') {
this.$message({
showClose: true,
type: 'error',
message: '加价比例不能为空222'
})
return
}
}
if (this.formobj.strategyType == 1) {
if (this.formobj.smsPricestrategyBillGoodstypedetailList == 0) {
this.$message({
showClose: true,
type: 'error',
message: '请添加价格区间加价策略'
})
return
}
for (var i = 0; i < this.formobj.smsPricestrategyBillGoodstypedetailList.length; i++) {
var item = this.formobj.smsPricestrategyBillGoodstypedetailList[i]
if (item.rangeStart == '') {
this.$message({
showClose: true,
type: 'error',
message: '区间开始不能为空'
})
return
}
if (item.rangeEnd == '') {
this.$message({
showClose: true,
type: 'error',
message: '区间结束不能为空'
})
return
}
if (item.markupRate == '') {
this.$message({
showClose: true,
type: 'error',
message: '加价比例不能为空'
})
return
}
}
}
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.$emit('backData2', this.formobj)
this.formobj = {
goodsTypeName: "",
strategyType: '',
gdMarkupRate: "",
smsPricestrategyBillGoodstypedetailList: []
}
}
})
},
showAdd(row){
showAdd(value, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
console.log("showAdd》》》》", row)
this.formobj = row
},
//
handleReturn() {
this.$emit('doback')
this.formobj = {
goodsTypeName: "",
strategyType: '',
gdMarkupRate: "",
smsPricestrategyBillGoodstypedetailList: []
}
},
selectIsLockingSalesPrice(val){
selectIsLockingSalesPrice(val) {
console.log("selectIsLockingSalesPrice》》》》", val)
this.formobj.strategyType = val
console.log("selectIsLockingSalesPrice》》》》", this.formobj.strategyType)
},
addItem() {
this.formobj.smsPricestrategyBillGoodstypedetailList.push({
rangeStart: "",
rangeEnd: "",
markupRate: "",
})
},
deleteItem(row) {
const index = this.formobj.smsPricestrategyBillGoodstypedetailList.findIndex((item) => item === row)
console.log("index》》》》", index)
this.formobj.smsPricestrategyBillGoodstypedetailList.splice(index, 1)
}
}
}

13
yxt-as-ui/src/views/storage/receivingGoods/index.vue

@ -175,18 +175,7 @@
},
sids: [],
selectionList: [],
busTypeList: [{
name: "采购预约",
sid: "0"
},
{
name: "调拨预约",
sid: "1"
},
{
name: "其他预约",
sid: "2"
}
busTypeList: [
],
billStateList: [{
name: "新建",

6
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<List<BaseGoodsTypeChoiceVo>> selectByUseOrgSid(@RequestParam String deptSid) {
return baseGoodsTypeService.selectByUseOrgSid(deptSid);
public ResultBean<PagerVo<BaseGoodsTypeChoiceVo>> selectByUseOrgSid(@RequestBody PagerQuery<BaseGoodsTypeChoiceQuery> pq) {
return baseGoodsTypeService.selectByUseOrgSid(pq);
}
@ApiOperation("保存修改")

19
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;
}

3
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.java

@ -26,6 +26,5 @@ public interface BaseGoodsTypeMapper extends BaseMapper<BaseGoodsType> {
List<BaseGoodsType> selListAll(@Param(Constants.WRAPPER) QueryWrapper<BaseGoodsType> qw);
@Select("select * from base_goods_type where useOrgSid = #{deptSid}")
List<BaseGoodsTypeChoiceVo> selectByUseOrgSid(String deptSid);
IPage<BaseGoodsTypeChoiceVo> selectByUseOrgSid(IPage<BaseGoodsType> page, @Param(Constants.WRAPPER) QueryWrapper<BaseGoodsType> qw);
}

8
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeMapper.xml

@ -45,4 +45,12 @@
#{item}
</foreach>
</update>
<select id="selectByUseOrgSid" resultType="com.yxt.base.biz.base.basegoodstype.BaseGoodsTypeChoiceVo">
select * from base_goods_type p
LEFT JOIN anrui_portal.sys_organization as u ON p.useOrgSid = u.sid
<where>
${ew.sqlSegment}
</where>
</select>
</mapper>

60
yxt-base-biz/src/main/java/com/yxt/base/biz/base/basegoodstype/BaseGoodsTypeService.java

@ -115,6 +115,60 @@ public class BaseGoodsTypeService extends MybatisBaseService<BaseGoodsTypeMapper
return rb.success().setData(p);
}
public ResultBean<PagerVo<BaseGoodsTypeChoiceVo>> selectByUseOrgSid(PagerQuery<BaseGoodsTypeChoiceQuery> pq) {
ResultBean rb = ResultBean.fireFail();
BaseGoodsTypeChoiceQuery query = pq.getParams();
QueryWrapper<BaseGoodsType> 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<String> 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<BaseGoodsTypeChoiceVo> p = new PagerVo<>();
return rb.success().setData(p);
}
} else {
PagerVo<BaseGoodsTypeChoiceVo> 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<BaseGoodsType> page = PagerUtil.queryToPage(pq);
IPage<BaseGoodsTypeChoiceVo> pagging = baseMapper.selectByUseOrgSid(page, qw);
PagerVo<BaseGoodsTypeChoiceVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
public ResultBean<List<BaseGoodsType>> listAll(OrgPathQuery query) {
ResultBean rb = ResultBean.fireFail();
QueryWrapper<BaseGoodsType> qw = new QueryWrapper<>();
@ -304,10 +358,4 @@ public class BaseGoodsTypeService extends MybatisBaseService<BaseGoodsTypeMapper
}
return rb.success().setMsg("成功");
}
public ResultBean<List<BaseGoodsTypeChoiceVo>> selectByUseOrgSid(String deptSid) {
ResultBean rb = ResultBean.fireFail();
List<BaseGoodsTypeChoiceVo> baseGoodsTypeChoiceVos = baseMapper.selectByUseOrgSid(deptSid);
return rb.success().setData(baseGoodsTypeChoiceVos);
}
}

28
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<SmsPricestrategyBillDetailDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SmsPricestrategyBillDetailDetailsVo vo = smsPricestrategyBillDetailService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

36
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<PagerVo<SmsPricestrategyBillGoodstypedetailVo>> listPage(@RequestBody PagerQuery<SmsPricestrategyBillGoodstypedetailQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<SmsPricestrategyBillGoodstypedetailVo> 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<SmsPricestrategyBillGoodstypedetailDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
SmsPricestrategyBillGoodstypedetailDetailsVo vo = smsPricestrategyBillGoodstypedetailService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

63
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(价格策略) <br/>
* File: SmsPricestrategyBillFeignFallback.java <br/>
@ -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<List<SmsPricestrategyBillNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap SmsPricestrategyBillNodeQuery query) {
return smsPricestrategyBillService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
public ResultBean<List<SmsPricestrategyBillNodeVo>> 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);
}
}

6
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")

7
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(价格策略) <br/>
@ -57,4 +58,10 @@ public interface SmsPricestrategyBillMapper extends BaseMapper<SmsPricestrategyB
@Select("select * from sms_pricestrategy_bill")
List<SmsPricestrategyBillVo> selectListVo();
int updateFlowFiled(Map<String, Object> map);
String selectNum(String billNo);
int selectBySid(String join);
}

37
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillMapper.xml

@ -4,10 +4,45 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.sms.biz.smspricestrategybill.SmsPricestrategyBillVo">
SELECT * FROM sms_pricestrategy_bill <where> ${ew.sqlSegment} </where>
SELECT * FROM sms_pricestrategy_bill sb
LEFT JOIN anrui_portal.sys_organization as s ON sb.deptSid = s.sid
<where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.sms.biz.smspricestrategybill.SmsPricestrategyBillVo">
SELECT * FROM sms_pricestrategy_bill <where> ${ew.sqlSegment} </where>
</select>
<update id="updateFlowFiled">
UPDATE sms_pricestrategy_bill
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
<select id="selectNum" resultType="java.lang.String">
select RIGHT (billNo, 4)
from sms_pricestrategy_bill
where billNo LIKE concat(#{billNo}, '%')
order by billNo desc
limit 1
</select>
<select id="selectBySid" resultType="int">
SELECT COUNT(*)
FROM sms_pricestrategy_bill
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
</mapper>

20
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(价格策略) <br/>
* File: SmsPricestrategyBillQuery.java <br/>
@ -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;
}

522
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(价格策略) <br/>
@ -60,38 +86,163 @@ public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestra
@Autowired
private SmsPricestrategyBillDetailService smsPricestrategyBillDetailService;
@Autowired
private SmsPricestrategyBillGoodstypedetailService smsPricestrategyBillGoodstypedetailService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
@Autowired
private FlowFeign flowFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysUserFeign sysUserFeign;
public PagerVo<SmsPricestrategyBillVo> listPageVo(PagerQuery<SmsPricestrategyBillQuery> pq) {
SmsPricestrategyBillQuery query = pq.getParams();
QueryWrapper<SmsPricestrategyBill> 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<String> 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<SmsPricestrategyBillVo> p = new PagerVo<>();
return p;
}
} else {
PagerVo<SmsPricestrategyBillVo> 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<SmsPricestrategyBill> page = PagerUtil.queryToPage(pq);
IPage<SmsPricestrategyBillVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SmsPricestrategyBillVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(SmsPricestrategyBillDto dto){
public String saveOrUpdateDto(SmsPricestrategyBillDto dto){
String dtoSid = dto.getSid();
List<SmsPricestrategyBillDetailDto> 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<SmsPricestrategyBillGoodstypedetailDto> smsPricestrategyBillGoodstypedetailList = smsPricestrategyBillDetailDto.getSmsPricestrategyBillGoodstypedetailList();
for (SmsPricestrategyBillGoodstypedetailDto smsPricestrategyBillGoodstypedetailDto : smsPricestrategyBillGoodstypedetailList) {
smsPricestrategyBillGoodstypedetailDto.setDetailSid(sid1);
smsPricestrategyBillGoodstypedetailService.saveOrUpdateDto(smsPricestrategyBillGoodstypedetailDto);
}
}
}
return;
return sid;
}
this.updateByDto(dto);
List<SmsPricestrategyBillDetailDetailsVo> 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<SmsPricestrategyBillGoodstypedetailDto> 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<SmsPricestra
BeanUtil.copyProperties(entity, vo);
List<SmsPricestrategyBillDetailDetailsVo> smsPricestrategyBillDetailDetailsVos = smsPricestrategyBillDetailService.selByMainSid(sid);
vo.setSmsPricestrategyBillDetailList(smsPricestrategyBillDetailDetailsVos);
for (SmsPricestrategyBillDetailDetailsVo smsPricestrategyBillDetailDetailsVo : smsPricestrategyBillDetailDetailsVos) {
List<SmsPricestrategyBillGoodstypedetailDetailsVo> 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<SmsPricestrategyBillDetailDetailsVo> 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<String, Object> 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<String, Object> 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<UpdateFlowFieldVo> 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<Runnable>(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<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
SmsPricestrategyBill smsPricestrategyBill = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> 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<UpdateFlowFieldVo> 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<Runnable>(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<List<SmsPricestrategyBillNodeVo>> getPreviousNodesForReject(SmsPricestrategyBillNodeQuery query) {
ResultBean<List<SmsPricestrategyBillNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<SmsPricestrategyBillNodeVo> 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<List<SmsPricestrategyBillNodeVo>> getNextNodesForSubmit(SmsPricestrategyBillNodeQuery query) {
ResultBean<List<SmsPricestrategyBillNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.SMSPRICESTRATEGYBILL.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<SmsPricestrategyBillNodeVo> 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<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> 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<Runnable>(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<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> 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<UpdateFlowFieldVo> 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<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> 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();
}
}

14
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(价格策略) <br/>
* File: SmsPricestrategyBillVo.java <br/>
@ -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("单据编号")

37
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;
}

26
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;
}

25
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;
}

26
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<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

48
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;
}

24
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;
}

2
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)")

11
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(价格策略) <br/>
* File: SmsPricestrategyBillDetailVo.java <br/>
@ -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<SmsPricestrategyBillGoodstypedetailDetailsVo> smsPricestrategyBillGoodstypedetailList;
}

10
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(价格策略) <br/>
* File: SmsPricestrategyBillDetailDto.java <br/>
@ -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<SmsPricestrategyBillGoodstypedetailDto> smsPricestrategyBillGoodstypedetailList;
}

67
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<SmsPricestrategyBillDetailMapper, SmsPricestrategyBillDetail> {
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<SmsPricestrategyBillDetailDetailsVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
public List<SmsPricestrategyBillDetailDetailsVo> selByMainSid(String mainSid) {
return baseMapper.selByMainSid(mainSid);
}
}

10
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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetail.java <br/>
@ -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; // 加价比例
}

10
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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetailVo.java <br/>
@ -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; // 加价比例
}

10
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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetailDto.java <br/>
@ -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; // 加价比例
}

12
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<SmsPricestrategyBillGoodstypedetail> {
IPage<SmsPricestrategyBillGoodstypedetailVo> selectPageVo(IPage<SmsPricestrategyBillGoodstypedetail> page, @Param(Constants.WRAPPER) Wrapper<SmsPricestrategyBillGoodstypedetail> qw);
List<SmsPricestrategyBillGoodstypedetailVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<SmsPricestrategyBillGoodstypedetail> qw);
@Select("select * from sms_pricestrategy_bill_goodstypedetail")
List<SmsPricestrategyBillGoodstypedetailVo> selectListVo();
@Select("select * from sms_pricestrategy_bill_goodstypedetail where detailSid = #{detailSid}")
List<SmsPricestrategyBillGoodstypedetailDetailsVo> selByMainSid(String detailSid);
@Delete("delete from sms_pricestrategy_bill_goodstypedetail where detailSid = #{detailSid}")
void delByMainSid(String detailSid);
}

7
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailMapper.xml

@ -3,11 +3,4 @@
<mapper namespace="com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailVo">
SELECT * FROM sms_pricestrategy_bill_goodstypedetail <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.sms.biz.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailVo">
SELECT * FROM sms_pricestrategy_bill_goodstypedetail <where> ${ew.sqlSegment} </where>
</select>
</mapper>

63
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailQuery.java

@ -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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetailQuery.java <br/>
* Class: com.yxt.sms.api.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailQuery <br/>
* Description: 价格策略商品类别明细 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-28 14:32:24 <br/>
*
* @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; // 加价比例
}

79
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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetailService.java <br/>
@ -51,51 +53,40 @@ import org.springframework.stereotype.Service;
*/
@Service
public class SmsPricestrategyBillGoodstypedetailService extends MybatisBaseService<SmsPricestrategyBillGoodstypedetailMapper, SmsPricestrategyBillGoodstypedetail> {
private QueryWrapper<SmsPricestrategyBillGoodstypedetail> createQueryWrapper(SmsPricestrategyBillGoodstypedetailQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<SmsPricestrategyBillGoodstypedetail> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<SmsPricestrategyBillGoodstypedetailVo> listPageVo(PagerQuery<SmsPricestrategyBillGoodstypedetailQuery> pq) {
SmsPricestrategyBillGoodstypedetailQuery query = pq.getParams();
QueryWrapper<SmsPricestrategyBillGoodstypedetail> qw = createQueryWrapper(query);
IPage<SmsPricestrategyBillGoodstypedetail> page = PagerUtil.queryToPage(pq);
IPage<SmsPricestrategyBillGoodstypedetailVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<SmsPricestrategyBillGoodstypedetailVo> 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<SmsPricestrategyBillGoodstypedetailDetailsVo> selByMainSid(String detailSid) {
return baseMapper.selByMainSid(detailSid);
}
public void delByMainSid(String detailSid) {
baseMapper.delByMainSid(detailSid);
}
}

65
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybillgoodstypedetail/SmsPricestrategyBillGoodstypedetailVo.java

@ -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(价格策略) <br/>
* File: SmsPricestrategyBillGoodstypedetailVo.java <br/>
* Class: com.yxt.sms.api.smspricestrategybillgoodstypedetail.SmsPricestrategyBillGoodstypedetailVo <br/>
* Description: 价格策略商品类别明细 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-03-28 14:32:24 <br/>
*
* @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; // 加价比例
}

24
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;
}

44
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;
}
}

65
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<String, Object> formVariables =new HashMap<>();
/* @ApiModelProperty("机构sid:切换结构使用")
private String orgPath;*/
}

27
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<String, Object> variables;
@ApiModelProperty("流程id")
private String proDefKey;
@ApiModelProperty("是否领票(欠款开票使用)")
private String isLP;
@ApiModelProperty("贷款人姓名")
private String dkrName;
}

38
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<Map<String,Object>> getMap(@RequestBody FlowProcessMapQuery query);
@ApiOperation(value = "驳回流程")
@PostMapping(value = "/taskReject")
@ResponseBody
ResultBean<UpdateFlowFieldVo> taskReject(@RequestBody FlowTaskVo fl);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> revokeProcess(@RequestBody FlowTaskVo fl);
@ApiOperation(value = "终止流程")
@PostMapping(value = "/breakProcess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> breakProcess(@RequestBody FlowTaskVo fl);
}

38
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;
}
}

68
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;
}
}

23
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;
}

36
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<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables dto);
@ApiOperation(value = "处理流程")
@PostMapping(value = "/handleProsess")
@ResponseBody
ResultBean<UpdateFlowFieldVo> handleProsess(@RequestBody BusinessVariables bv);
@ApiOperation(value = "转办")
@PostMapping(value = "/assignTask")
public ResultBean assignTask(@RequestBody FlowDelegateQuery flowDelegateQuery);
}

31
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<List<LatestTaskVo>> getLatestTasks(@PathVariable(value = "procId") String procId);
}

53
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;
/**
* <p>流程任务<p>
*
* @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<String, Object> values=new HashMap<>();
@ApiModelProperty("审批人")
private String assignee;
@ApiModelProperty("候选人")
private List<String> candidateUsers;
@ApiModelProperty("审批组")
private List<String> candidateGroups;
}

34
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;
}

26
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<String> pushMessage(@RequestBody MessageFlowableQuery query);
}

21
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;
}

32
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<String,Object> appMap;
@ApiModelProperty("申请人")
private String applicationName;
}

34
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<String> receivedSids;
/* @ApiModelProperty("跳转地址")
private String msgTargetUri;*/
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String app_type;
@ApiModelProperty("插件sid")
private String moduleSid;
}

92
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(门户建设) <br/>
* File: SysOrganization.java <br/>
* Class: com.yxt.anrui.portal.api.sysorganization.SysOrganization <br/>
* Description: 组织机构表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @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;
}

35
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(门户建设) <br/>
* File: SysOrganizationFeign.java <br/>
* Class: com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign <br/>
* Description: 组织机构表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @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<SysOrganizationVo> fetchBySid(@PathVariable("sid") String sid);
}

88
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(门户建设) <br/>
* File: SysOrganizationVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo <br/>
* Description: 组织机构表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:28 <br/>
*
* @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<SysOrganizationVo> 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;
}

25
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<String> getOrgSidByPath(@RequestParam("orgPath") String orgPath);
}

22
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;
}

21
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;
}

27
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<String> selectPrivilegeLevel(@RequestBody PrivilegeQuery query);
@ApiOperation("根据sid获取一条记录")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<SysUserVo> fetchBySid(@PathVariable("sid") String sid);
}

97
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(门户建设) <br/>
* File: SysUserVo.java <br/>
* Class: com.yxt.anrui.portal.api.sysuser.SysUserVo <br/>
* Description: 用户表 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2021-08-03 00:24:30 <br/>
*
* @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<String> roleSids = new ArrayList<>();
private List<OrgList> 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;
}
Loading…
Cancel
Save