Browse Source
Merge remote-tracking branch 'origin/milestone-20251016-现金管理' into milestone-20251016-现金管理
lihuilin1015备份
Merge remote-tracking branch 'origin/milestone-20251016-现金管理' into milestone-20251016-现金管理
lihuilin1015备份
10 changed files with 480 additions and 6 deletions
-
2src/main/java/com/example/demo/Mysql/MysqlServiceImpl.java
-
92src/main/java/com/example/demo/controller/cash/CashRefundController.java
-
2src/main/java/com/example/demo/controller/coin/RefundController.java
-
22src/main/java/com/example/demo/mapper/cash/CashRefundMapper.java
-
19src/main/java/com/example/demo/service/cash/RefundService.java
-
2src/main/java/com/example/demo/serviceImpl/cash/CashCollectionServiceImpl.java
-
44src/main/java/com/example/demo/serviceImpl/cash/CashRefundServiceImpl.java
-
4src/main/resources/application-prod.yml
-
167src/main/resources/mapper/CashRefundMapper.xml
-
132src/main/resources/processes/work.bpmn20.xml
@ -0,0 +1,92 @@ |
|||
package com.example.demo.controller.cash; |
|||
|
|||
import com.example.demo.Util.JWTUtil; |
|||
import com.example.demo.domain.entity.Admin; |
|||
import com.example.demo.domain.vo.cash.CashCollection; |
|||
import com.example.demo.domain.vo.coin.Page; |
|||
import com.example.demo.domain.vo.coin.Result; |
|||
import com.example.demo.service.coin.MarketService; |
|||
import com.example.demo.serviceImpl.cash.CashRefundServiceImpl; |
|||
import com.github.pagehelper.PageInfo; |
|||
import jakarta.servlet.http.HttpServletRequest; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.apache.commons.lang3.StringUtils; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.util.ObjectUtils; |
|||
import org.springframework.web.bind.annotation.*; |
|||
import org.springframework.web.context.request.RequestContextHolder; |
|||
import org.springframework.web.context.request.ServletRequestAttributes; |
|||
|
|||
import java.util.Arrays; |
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName RefundController |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−09-26 14:15 |
|||
* @Version 1.0 |
|||
**/ |
|||
@RestController |
|||
@RequestMapping("/Money") |
|||
@RequiredArgsConstructor |
|||
@Slf4j |
|||
@CrossOrigin |
|||
public class CashRefundController { |
|||
@Autowired |
|||
private CashRefundServiceImpl cashRefundServiceImpl; |
|||
@Autowired |
|||
MarketService marketService; |
|||
@PostMapping("/select") |
|||
public Result select(@RequestBody Page page) throws Exception { |
|||
// 获取当前请求对象 |
|||
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); |
|||
String token = request.getHeader("token"); |
|||
|
|||
// 解析 token 获取用户信息 |
|||
Admin admin = (Admin) JWTUtil.getUserDetailsList(String.valueOf(token), Admin.class); |
|||
List<String> userMarkets = Arrays.asList(StringUtils.split(admin.getMarkets(), ",")); |
|||
List<String> markets = marketService.getMarketIds(userMarkets); |
|||
|
|||
// 校验分页参数 |
|||
if (ObjectUtils.isEmpty(page.getPageNum())) { |
|||
return Result.error("页码数为空!"); |
|||
} |
|||
if (ObjectUtils.isEmpty(page.getPageSize())) { |
|||
return Result.error("页大小为空!"); |
|||
} |
|||
|
|||
// 获取传入的市场列表 |
|||
List<String> requestedMarkets = page.getGoldDetail() != null ? page.getGoldDetail().getMarkets() : null; |
|||
|
|||
// 权限校验逻辑 |
|||
if (markets.contains("9") || markets.contains("9999")) { |
|||
// 特权市场:9 或 9999,跳过权限校验,直接放行传入的 markets |
|||
// 如果业务需要,也可以在这里做空值处理 |
|||
if (page.getGoldDetail() != null) { |
|||
// 保持 requestedMarkets 不变,原样接受 |
|||
// 可选:如果 requestedMarkets 为 null,可设为默认值或保持 null |
|||
} |
|||
} else { |
|||
// 普通用户:必须校验权限 |
|||
if (requestedMarkets == null || requestedMarkets.isEmpty()) { |
|||
page.getGoldDetail().setMarkets(requestedMarkets); |
|||
} |
|||
if (!markets.containsAll(requestedMarkets)) { |
|||
return Result.error("无权限!请求的市场不在授权范围内。"); |
|||
} |
|||
// 校验通过,保持 requestedMarkets 不变 |
|||
} |
|||
return Result.success(cashRefundServiceImpl.select(page.getPageNum(),page.getPageSize(),page.getCashCollection())); |
|||
} |
|||
@PostMapping("/add") |
|||
public Result add(@RequestBody CashCollection cashCollection){ |
|||
return Result.success(cashRefundServiceImpl.add(cashCollection)); |
|||
} |
|||
@PostMapping("/update") |
|||
public Result update(@RequestBody CashCollection cashCollection){ |
|||
return Result.success(cashRefundServiceImpl.update(cashCollection)); |
|||
} |
|||
} |
|||
@ -0,0 +1,22 @@ |
|||
package com.example.demo.mapper.cash; |
|||
|
|||
import com.example.demo.domain.vo.cash.CashCollection; |
|||
import com.example.demo.domain.vo.coin.RefundUser; |
|||
import org.apache.ibatis.annotations.Mapper; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName RefundController |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−09-28 10:37 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Mapper |
|||
public interface CashRefundMapper { |
|||
List<CashCollection> select(CashCollection cashCollection); |
|||
int update(CashCollection cashCollection); |
|||
int insert(CashCollection cashCollection); |
|||
} |
|||
@ -0,0 +1,19 @@ |
|||
package com.example.demo.service.cash; |
|||
|
|||
import com.example.demo.domain.vo.cash.CashCollection; |
|||
import com.github.pagehelper.PageInfo; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName RefundService |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−09-26 14:17 |
|||
* @Version 1.0 |
|||
**/ |
|||
public interface RefundService { |
|||
PageInfo<CashCollection> select(Integer pageNum, Integer pageSize,CashCollection cashCollection); |
|||
int add(CashCollection cashCollection); |
|||
int update(CashCollection cashCollection); |
|||
|
|||
} |
|||
@ -0,0 +1,44 @@ |
|||
package com.example.demo.serviceImpl.cash; |
|||
|
|||
import com.example.demo.domain.vo.cash.CashCollection; |
|||
import com.example.demo.mapper.cash.CashRefundMapper; |
|||
import com.example.demo.service.cash.RefundService; |
|||
import com.github.pagehelper.PageHelper; |
|||
import com.github.pagehelper.PageInfo; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Service; |
|||
|
|||
import java.util.List; |
|||
|
|||
/** |
|||
* @program: GOLD |
|||
* @ClassName CashRefundServiceImpl |
|||
* @description: |
|||
* @author: huangqizhen |
|||
* @create: 2025−09-28 15:02 |
|||
* @Version 1.0 |
|||
**/ |
|||
@Service |
|||
|
|||
public class CashRefundServiceImpl implements RefundService { |
|||
|
|||
@Autowired |
|||
private CashRefundMapper cashRefundMapper; |
|||
@Override |
|||
public PageInfo<CashCollection> select(Integer pageNum, Integer pageSize,CashCollection cashCollection) { |
|||
PageHelper.startPage(pageNum, pageSize); |
|||
// System.out.println(goldDetail.getMarkets()); |
|||
List<CashCollection> list = cashRefundMapper.select(cashCollection); |
|||
return new PageInfo<>(list); |
|||
} |
|||
|
|||
@Override |
|||
public int add(CashCollection cashCollection) { |
|||
return cashRefundMapper.insert(cashCollection); |
|||
} |
|||
|
|||
@Override |
|||
public int update(CashCollection cashCollection) { |
|||
return cashRefundMapper.update(cashCollection); |
|||
} |
|||
} |
|||
@ -0,0 +1,167 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
|||
<mapper namespace="com.example.demo.mapper.cash.CashRefundMapper"> |
|||
<insert id="insert"> |
|||
INSERT INTO cash_record ( |
|||
order_type, |
|||
jwcode, |
|||
name, |
|||
market, |
|||
activity, |
|||
order_code, |
|||
bank_code, |
|||
goods_name, |
|||
goods_num, |
|||
payment_currency, |
|||
payment_amount, |
|||
received_currency, |
|||
received_amount, |
|||
handling_charge, |
|||
received_market, |
|||
pay_type, |
|||
pay_time, |
|||
received_time, |
|||
status, |
|||
submitter_id, |
|||
voucher, |
|||
remark, |
|||
refund_reason, |
|||
refund_model, |
|||
executor, |
|||
refund_channels, |
|||
refund_currency, |
|||
refund_amount, |
|||
refund_time, |
|||
refund_remark, |
|||
refund_voucher, |
|||
create_time, |
|||
update_time |
|||
) VALUES ( |
|||
#{orderType}, |
|||
#{jwcode}, |
|||
#{name}, |
|||
#{market}, |
|||
#{activity}, |
|||
#{orderCode}, |
|||
#{bankCode}, |
|||
#{goodsName}, |
|||
#{goodsNum}, |
|||
#{paymentCurrency}, |
|||
#{paymentAmount}, |
|||
#{receivedCurrency}, |
|||
#{receivedAmount}, |
|||
#{handlingCharge}, |
|||
#{receivedMarket}, |
|||
#{payType}, |
|||
#{payTime}, |
|||
#{receivedTime}, |
|||
#{submitterId}, |
|||
#{voucher}, |
|||
#{remark}, |
|||
#{status}, |
|||
#{refundReason}, |
|||
#{refundModel}, |
|||
#{executor}, |
|||
#{refundChannels}, |
|||
#{refundCurrency}, |
|||
#{refundAmount}, |
|||
#{refundTime}, |
|||
#{refundRemark}, |
|||
#{refundVoucher}, |
|||
#{createTime}, |
|||
#{updateTime}, |
|||
); |
|||
|
|||
</insert> |
|||
<update id="update"> |
|||
update cash_record |
|||
<set> |
|||
<if test="status!=null"> |
|||
status = #{status}, |
|||
</if> |
|||
</set> |
|||
|
|||
<if test="status != null"> |
|||
status = #{status}, |
|||
</if> |
|||
<if test="rejectReason!=null"> |
|||
reject_reason = #{rejectReason}, |
|||
</if> |
|||
<if test="refundReason != null"> |
|||
refund_reason = #{refundReason}, |
|||
</if> |
|||
<if test="refundCurrency != null"> |
|||
refund_currency = #{refundCurrency}, |
|||
</if> |
|||
<if test="refundAmount != null"> |
|||
refund_amount = #{refundAmount}, |
|||
</if> |
|||
<if test="refundRemark != null"> |
|||
refund_remark = #{refundRemark}, |
|||
</if> |
|||
</update> |
|||
|
|||
|
|||
<select id="select" resultType="com.example.demo.domain.vo.cash.CashCollection"> |
|||
select |
|||
id, |
|||
order_type, |
|||
jwcode, |
|||
name, |
|||
market, |
|||
activity, |
|||
order_code, |
|||
bank_code, |
|||
goods_name, |
|||
goods_num, |
|||
payment_currency, |
|||
payment_amount, |
|||
received_currency, |
|||
received_amount, |
|||
handling_charge, |
|||
received_market, |
|||
pay_type, |
|||
pay_time, |
|||
received_time, |
|||
status, |
|||
submitter_id, |
|||
voucher, |
|||
remark, |
|||
reject_reason, |
|||
create_time, |
|||
update_time |
|||
from cash_record |
|||
<where> |
|||
<if test="status != null"> |
|||
status = #{status} |
|||
</if> |
|||
<if test="orderCode != null"> |
|||
and order_code = #{orderCode} |
|||
</if> |
|||
<if test="name != null and name.size > 0"> |
|||
and name = #{name} |
|||
</if> |
|||
<if test="jwcode != null"> |
|||
and jwcode = #{jwcode} |
|||
</if> |
|||
<if test="market!= null and market.size > 0"> |
|||
AND user.market IN |
|||
<foreach collection="market" item="market" open="(" separator="," close=")"> |
|||
#{market} |
|||
</foreach> |
|||
</if> |
|||
<if test="goodsName != null and goodName.size>0"> |
|||
and goods_name = #{goodsName} |
|||
</if> |
|||
<if test="refundCurrency != null and refundCurrency.size>0"> |
|||
and refund_currency = #{refundCurrency} |
|||
</if> |
|||
<if test="payType != null"> |
|||
and pay_type = #{payType} |
|||
</if> |
|||
<if test="startTime != null and endTime != null"> |
|||
and `refund_time` BETWEEN #{startTime} AND #{endTime} |
|||
</if> |
|||
</where> |
|||
</select> |
|||
</mapper> |
|||
@ -0,0 +1,132 @@ |
|||
<?xml version="1.0" encoding="UTF-8"?> |
|||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"> |
|||
<process id="work" name="work" isExecutable="true"> |
|||
<startEvent id="sid-f8ab3e40-3236-4e2c-8c2e-42c8b0673350" name="start"/> |
|||
<userTask id="sid-bf6d438a-c124-4d0b-9616-7a8917fe31be" name="当地财务审核"> |
|||
<extensionElements> |
|||
<flowable:executionListener class="Class 1"/> |
|||
</extensionElements> |
|||
</userTask> |
|||
<sequenceFlow id="sid-21dc60a2-3215-441d-a332-9fcc18f3554a" sourceRef="sid-f8ab3e40-3236-4e2c-8c2e-42c8b0673350" targetRef="sid-bf6d438a-c124-4d0b-9616-7a8917fe31be"/> |
|||
<userTask id="sid-468a34ae-6742-442d-968a-4a64da1c4d42" name="地区负责人审核"/> |
|||
<exclusiveGateway id="sid-2fee5126-0cab-454d-83b8-7e1590ca672b"/> |
|||
<sequenceFlow id="sid-d99251a8-f290-4c61-88f3-67c4fdb3936f" sourceRef="sid-bf6d438a-c124-4d0b-9616-7a8917fe31be" targetRef="sid-2fee5126-0cab-454d-83b8-7e1590ca672b"/> |
|||
<endEvent id="sid-dd93e6d7-7685-442e-923b-1914223d8fab"> |
|||
<terminateEventDefinition/> |
|||
</endEvent> |
|||
<sequenceFlow id="sid-383a4ef0-2fc2-415a-b8cf-bab0bcca8273" sourceRef="sid-2fee5126-0cab-454d-83b8-7e1590ca672b" targetRef="sid-dd93e6d7-7685-442e-923b-1914223d8fab" name="财务驳回"> |
|||
<conditionExpression xsi:type="tFormalExpression">${status=='12'}</conditionExpression> |
|||
</sequenceFlow> |
|||
<sequenceFlow id="sid-89dc161a-9f8b-4c81-be12-c9d517118d4f" sourceRef="sid-2fee5126-0cab-454d-83b8-7e1590ca672b" targetRef="sid-468a34ae-6742-442d-968a-4a64da1c4d42" name="当地财务审核通过"> |
|||
<conditionExpression xsi:type="tFormalExpression">${status=='20'}</conditionExpression> |
|||
</sequenceFlow> |
|||
<exclusiveGateway id="sid-2e8f3dde-f7dd-42e6-9578-188489000af4"/> |
|||
<sequenceFlow id="sid-4e6091b1-dac2-4af9-a10b-4102962f699d" sourceRef="sid-468a34ae-6742-442d-968a-4a64da1c4d42" targetRef="sid-2e8f3dde-f7dd-42e6-9578-188489000af4"/> |
|||
<endEvent id="sid-c7acb14b-e462-4e1a-bdf6-6b05c96b11f9"> |
|||
<terminateEventDefinition/> |
|||
</endEvent> |
|||
<sequenceFlow id="sid-c99e2377-dfb1-4a07-a6fd-487fd03f45c3" sourceRef="sid-2e8f3dde-f7dd-42e6-9578-188489000af4" targetRef="sid-c7acb14b-e462-4e1a-bdf6-6b05c96b11f9" name="负责人驳回"> |
|||
<conditionExpression xsi:type="tFormalExpression">${status=='22'}</conditionExpression> |
|||
</sequenceFlow> |
|||
<userTask id="sid-22acc750-e0a9-49d1-80e2-2d8b19ec0a9f" name="总部财务审批"/> |
|||
<sequenceFlow id="sid-9c0b8ad2-8f5f-418f-913c-9b2be1ea139e" sourceRef="sid-2e8f3dde-f7dd-42e6-9578-188489000af4" targetRef="sid-22acc750-e0a9-49d1-80e2-2d8b19ec0a9f" name="地区负责人审核通过"> |
|||
<conditionExpression xsi:type="tFormalExpression">${status=='30'}</conditionExpression> |
|||
</sequenceFlow> |
|||
<exclusiveGateway id="sid-82edb572-12d0-457e-a5b0-c416803c42ef"/> |
|||
<sequenceFlow id="sid-557630ce-b991-400e-a800-1d09fa2999d9" sourceRef="sid-22acc750-e0a9-49d1-80e2-2d8b19ec0a9f" targetRef="sid-82edb572-12d0-457e-a5b0-c416803c42ef"/> |
|||
<endEvent id="sid-44496c97-4cae-4011-8af2-6923f8016a3f"> |
|||
<terminateEventDefinition/> |
|||
</endEvent> |
|||
<sequenceFlow id="sid-034cda19-b5a4-4505-9880-7bc947c6a1c1" sourceRef="sid-82edb572-12d0-457e-a5b0-c416803c42ef" targetRef="sid-44496c97-4cae-4011-8af2-6923f8016a3f" name="总部财务审批"> |
|||
<conditionExpression xsi:type="tFormalExpression"/> |
|||
</sequenceFlow> |
|||
<endEvent id="sid-6df885e4-d40a-4a6c-bff0-bc8604eb186a"> |
|||
<terminateEventDefinition/> |
|||
<extensionElements> |
|||
<flowable:executionListener class="Class 1" event="end"> |
|||
<flowable:field name="Name 1"/> |
|||
</flowable:executionListener> |
|||
</extensionElements> |
|||
</endEvent> |
|||
<sequenceFlow id="sid-dc24872f-5c8e-43fa-8348-6ea038d3dda9" sourceRef="sid-82edb572-12d0-457e-a5b0-c416803c42ef" targetRef="sid-6df885e4-d40a-4a6c-bff0-bc8604eb186a" name="总部财务审批通过"> |
|||
<conditionExpression xsi:type="tFormalExpression">${status=='40'}</conditionExpression> |
|||
</sequenceFlow> |
|||
</process> |
|||
<bpmndi:BPMNDiagram id="BPMNDiagram_work"> |
|||
<bpmndi:BPMNPlane bpmnElement="work" id="BPMNPlane_work"> |
|||
<bpmndi:BPMNShape id="shape-822c5fe2-36b7-4467-826c-0f1dd8fc80fe" bpmnElement="sid-f8ab3e40-3236-4e2c-8c2e-42c8b0673350"> |
|||
<omgdc:Bounds x="-70.0" y="40.0" width="30.0" height="30.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape id="shape-084334ea-0095-4ca2-9c70-620a2e5ffeb7" bpmnElement="sid-bf6d438a-c124-4d0b-9616-7a8917fe31be"> |
|||
<omgdc:Bounds x="5.0" y="10.0" width="100.0" height="80.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-19e173f1-0fd2-43ca-995f-d1d03097318c" bpmnElement="sid-21dc60a2-3215-441d-a332-9fcc18f3554a"> |
|||
<omgdi:waypoint x="-40.0" y="47.5"/> |
|||
<omgdi:waypoint x="5.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-84d30d41-e66a-496e-8ce7-2d3d6a384345" bpmnElement="sid-468a34ae-6742-442d-968a-4a64da1c4d42"> |
|||
<omgdc:Bounds x="205.0" y="10.0" width="100.0" height="80.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNShape id="shape-9b68e4fd-ea80-4b09-b9f3-fd734bb4321f" bpmnElement="sid-2fee5126-0cab-454d-83b8-7e1590ca672b"> |
|||
<omgdc:Bounds x="130.0" y="30.0" width="40.0" height="40.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-921c6dc0-4707-417f-af15-c3339f530411" bpmnElement="sid-d99251a8-f290-4c61-88f3-67c4fdb3936f"> |
|||
<omgdi:waypoint x="105.0" y="50.0"/> |
|||
<omgdi:waypoint x="130.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-bac9b355-7d7d-4779-9c3f-814f6023fecb" bpmnElement="sid-dd93e6d7-7685-442e-923b-1914223d8fab"> |
|||
<omgdc:Bounds x="135.0" y="100.0" width="30.0" height="30.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-5bafc0c0-2bfc-4aca-bf40-4057253a8ec7" bpmnElement="sid-383a4ef0-2fc2-415a-b8cf-bab0bcca8273"> |
|||
<omgdi:waypoint x="150.0" y="70.0"/> |
|||
<omgdi:waypoint x="150.0" y="100.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNEdge id="edge-45ad2c75-2cb6-4d16-9fbe-461d31f91ea8" bpmnElement="sid-89dc161a-9f8b-4c81-be12-c9d517118d4f"> |
|||
<omgdi:waypoint x="170.0" y="50.0"/> |
|||
<omgdi:waypoint x="205.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-517c52d0-04dd-472f-b807-df6a9d843e99" bpmnElement="sid-2e8f3dde-f7dd-42e6-9578-188489000af4"> |
|||
<omgdc:Bounds x="355.0" y="30.0" width="40.0" height="40.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-8a30bd1d-80d1-4ae8-a3ed-81c72c55213f" bpmnElement="sid-4e6091b1-dac2-4af9-a10b-4102962f699d"> |
|||
<omgdi:waypoint x="305.0" y="50.0"/> |
|||
<omgdi:waypoint x="355.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-a44faab4-bac1-43e7-bf22-c173b971e3b7" bpmnElement="sid-c7acb14b-e462-4e1a-bdf6-6b05c96b11f9"> |
|||
<omgdc:Bounds x="360.0" y="100.0" width="30.0" height="30.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-26a40ce5-e66e-45d9-9dad-8f5fa6633c07" bpmnElement="sid-c99e2377-dfb1-4a07-a6fd-487fd03f45c3"> |
|||
<omgdi:waypoint x="375.0" y="70.0"/> |
|||
<omgdi:waypoint x="375.0" y="100.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-6f86a7c0-32a7-4511-baa7-52f11ce57a21" bpmnElement="sid-22acc750-e0a9-49d1-80e2-2d8b19ec0a9f"> |
|||
<omgdc:Bounds x="440.0" y="10.0" width="100.0" height="80.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-1aa7f3d5-b79c-44de-aba3-eb086e8a5274" bpmnElement="sid-9c0b8ad2-8f5f-418f-913c-9b2be1ea139e"> |
|||
<omgdi:waypoint x="395.0" y="50.0"/> |
|||
<omgdi:waypoint x="440.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-bc18feae-7519-4693-b30c-ec647a3c985c" bpmnElement="sid-82edb572-12d0-457e-a5b0-c416803c42ef"> |
|||
<omgdc:Bounds x="580.0" y="30.0" width="40.0" height="40.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-afe759c8-9b35-4771-a711-01be0bd46230" bpmnElement="sid-557630ce-b991-400e-a800-1d09fa2999d9"> |
|||
<omgdi:waypoint x="540.0" y="50.0"/> |
|||
<omgdi:waypoint x="580.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-400c0807-7443-488e-8d1e-a72e93853f65" bpmnElement="sid-44496c97-4cae-4011-8af2-6923f8016a3f"> |
|||
<omgdc:Bounds x="585.0" y="100.0" width="30.0" height="30.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-89fb4c38-c73e-4ab5-ba48-ddeae0b199e1" bpmnElement="sid-034cda19-b5a4-4505-9880-7bc947c6a1c1"> |
|||
<omgdi:waypoint x="600.0" y="70.0"/> |
|||
<omgdi:waypoint x="600.0" y="100.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
<bpmndi:BPMNShape id="shape-26a2f5e7-cd7d-4319-9442-a2006a703954" bpmnElement="sid-6df885e4-d40a-4a6c-bff0-bc8604eb186a"> |
|||
<omgdc:Bounds x="665.0" y="35.0" width="30.0" height="30.0"/> |
|||
</bpmndi:BPMNShape> |
|||
<bpmndi:BPMNEdge id="edge-1bed364a-4069-450b-b9f0-4691f385e817" bpmnElement="sid-dc24872f-5c8e-43fa-8348-6ea038d3dda9"> |
|||
<omgdi:waypoint x="620.0" y="50.0"/> |
|||
<omgdi:waypoint x="665.0" y="50.0"/> |
|||
</bpmndi:BPMNEdge> |
|||
</bpmndi:BPMNPlane> |
|||
</bpmndi:BPMNDiagram> |
|||
</definitions> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue