Commit e1bc5c8b authored by 鲁鑫's avatar 鲁鑫

EP销售订单根据ep申请人创建待办任务

parent 5addc8ef
package com.huigou.topsun.ep.order.application.impl; package com.huigou.topsun.ep.order.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache; import com.huigou.cache.SystemCache;
...@@ -25,7 +26,9 @@ import com.huigou.topsun.sap.common.domain.SapResult; ...@@ -25,7 +26,9 @@ import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement; import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.uasp.bmp.common.BizBillStatus; import com.huigou.uasp.bmp.common.BizBillStatus;
import com.huigou.uasp.bmp.operator.OperatorApplication; import com.huigou.uasp.bmp.operator.OperatorApplication;
import com.huigou.uasp.bmp.opm.application.OrgApplication;
import com.huigou.uasp.bmp.opm.domain.model.org.Org; import com.huigou.uasp.bmp.opm.domain.model.org.Org;
import com.huigou.uasp.bmp.opm.repository.org.PersonRepository;
import com.huigou.uasp.bpm.FlowBroker; import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.uasp.bpm.ProcessAction; import com.huigou.uasp.bpm.ProcessAction;
import com.huigou.uasp.bpm.ProcessStartModel; import com.huigou.uasp.bpm.ProcessStartModel;
...@@ -33,6 +36,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication; ...@@ -33,6 +36,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication;
import com.huigou.util.ClassHelper; import com.huigou.util.ClassHelper;
import com.huigou.util.Constants; import com.huigou.util.Constants;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
...@@ -207,13 +211,19 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde ...@@ -207,13 +211,19 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde
//初始化用户信息 //初始化用户信息
String personCode = epSaleOrderVos.get(0).getPersonCode(); String personCode = epSaleOrderVos.get(0).getPersonCode();
Org org = orgApplication.loadMainOrgByLoginName(personCode); QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "loadPersonMemberId");
String personMemberId = this.sqlExecutorDao.queryToString(queryDescriptor.getSql(), personCode);
if (StringUtil.isBlank(personMemberId)){
throw new RuntimeException("未找到编码为:" + personCode + " 的人员");
}
//String createdById = SystemCache.getParameter("adminPersonId", String.class); //String createdById = SystemCache.getParameter("adminPersonId", String.class);
Operator operator = operatorApplication.createOperatorByPersonMemberId(org.getId()); Operator operator = operatorApplication.createOperatorByPersonMemberId(personMemberId);
SDO localSdo = new SDO();
localSdo.setOperator(operator);
epSaleOrder.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName())); epSaleOrder.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
Map<String, Object> formData = BeanUtil.beanToMap(epSaleOrder); Map<String, Object> formData = BeanUtil.beanToMap(epSaleOrder);
String bizId = this.startProcessInstance(EpSaleOrderApplication.PROCESS_DEFINITION_KEY, formData); String bizId = this.startProcessInstance(EpSaleOrderApplication.PROCESS_DEFINITION_KEY, formData, localSdo);
epSaleOrder.setId(bizId); epSaleOrder.setId(bizId);
epSaleOrder.setStatusId(BizBillStatus.APPROVING.getId()); epSaleOrder.setStatusId(BizBillStatus.APPROVING.getId());
epSaleOrder = epSaleOrderRepository.save(epSaleOrder); epSaleOrder = epSaleOrderRepository.save(epSaleOrder);
...@@ -229,9 +239,13 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde ...@@ -229,9 +239,13 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde
} }
} }
public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData){ public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData, SDO localSdo){
Map<String, Object> variables = new HashMap(); Map<String, Object> variables = new HashMap();
SDO localSdo = this.buildSDO(formData); // 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
ThreadLocalUtil.putVariable(Constants.SDO, localSdo); ThreadLocalUtil.putVariable(Constants.SDO, localSdo);
variables.put("startModel", ProcessStartModel.MANUAL.getId()); variables.put("startModel", ProcessStartModel.MANUAL.getId());
Operator operator = localSdo.getOperator(); Operator operator = localSdo.getOperator();
...@@ -244,21 +258,6 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde ...@@ -244,21 +258,6 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde
return businessKey; return businessKey;
} }
private SDO buildSDO(Map<String, Object> formData) {
//String createdById = (String) formData.get("createdById");
//暂定管理员id
String createdById = SystemCache.getParameter("adminPersonId", String.class);
Operator operator = operatorApplication.createOperatorByPersonMemberId(createdById);
SDO localSdo = new SDO();
// 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
localSdo.setOperator(operator);
return localSdo;
}
public void feedBackSaleOrder(EpSaleOrder epSaleOrder,String state){ public void feedBackSaleOrder(EpSaleOrder epSaleOrder,String state){
List<EpSaleOrderItem> orderItemList = epSaleOrderItemApplication.findByEpSaleOrderId(epSaleOrder.getId()); List<EpSaleOrderItem> orderItemList = epSaleOrderItemApplication.findByEpSaleOrderId(epSaleOrder.getId());
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
......
package com.huigou.topsun.ep.order.application.impl; package com.huigou.topsun.ep.order.application.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache; import com.huigou.cache.SystemCache;
...@@ -32,6 +33,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication; ...@@ -32,6 +33,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication;
import com.huigou.util.ClassHelper; import com.huigou.util.ClassHelper;
import com.huigou.util.Constants; import com.huigou.util.Constants;
import com.huigou.util.SDO; import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask; import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
...@@ -206,13 +208,18 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa ...@@ -206,13 +208,18 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa
//初始化用户信息 //初始化用户信息
String personCode = epSaleOrderCancelVos.get(0).getPersonCode(); String personCode = epSaleOrderCancelVos.get(0).getPersonCode();
Org org = orgApplication.loadMainOrgByLoginName(personCode); QueryDescriptor queryDescriptor = this.sqlExecutorDao.getQuery(QUERY_XML_FILE_PATH, "loadPersonMemberId");
String personMemberId = this.sqlExecutorDao.queryToString(queryDescriptor.getSql(), personCode);
if (StringUtil.isBlank(personMemberId)){
throw new RuntimeException("未找到编码为:" + personCode + " 的人员");
}
//String createdById = SystemCache.getParameter("adminPersonId", String.class); //String createdById = SystemCache.getParameter("adminPersonId", String.class);
Operator operator = operatorApplication.createOperatorByPersonMemberId(org.getId()); Operator operator = operatorApplication.createOperatorByPersonMemberId(personMemberId);
epSaleOrderCancel.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName())); epSaleOrderCancel.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
SDO localSdo = new SDO();
localSdo.setOperator(operator);
Map<String, Object> formData = BeanUtil.beanToMap(epSaleOrderCancel); Map<String, Object> formData = BeanUtil.beanToMap(epSaleOrderCancel);
String bizId = this.startProcessInstance(EpSaleOrderCancelApplication.PROCESS_DEFINITION_KEY, formData); String bizId = this.startProcessInstance(EpSaleOrderCancelApplication.PROCESS_DEFINITION_KEY, formData, localSdo);
epSaleOrderCancel.setId(bizId); epSaleOrderCancel.setId(bizId);
epSaleOrderCancel.setStatusId(BizBillStatus.APPROVING.getId()); epSaleOrderCancel.setStatusId(BizBillStatus.APPROVING.getId());
epSaleOrderCancel = epSaleOrderCancelRepository.save(epSaleOrderCancel); epSaleOrderCancel = epSaleOrderCancelRepository.save(epSaleOrderCancel);
...@@ -228,9 +235,13 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa ...@@ -228,9 +235,13 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa
} }
} }
public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData){ public String startProcessInstance(String processDefinitionKey,Map<String, Object> formData, SDO localSdo){
Map<String, Object> variables = new HashMap(); Map<String, Object> variables = new HashMap();
SDO localSdo = this.buildSDO(formData); // 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
ThreadLocalUtil.putVariable(Constants.SDO, localSdo); ThreadLocalUtil.putVariable(Constants.SDO, localSdo);
variables.put("startModel", ProcessStartModel.MANUAL.getId()); variables.put("startModel", ProcessStartModel.MANUAL.getId());
Operator operator = localSdo.getOperator(); Operator operator = localSdo.getOperator();
...@@ -243,21 +254,6 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa ...@@ -243,21 +254,6 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa
return businessKey; return businessKey;
} }
private SDO buildSDO(Map<String, Object> formData) {
//String createdById = (String) formData.get("createdById");
//暂定管理员id
String createdById = SystemCache.getParameter("adminPersonId", String.class);
Operator operator = operatorApplication.createOperatorByPersonMemberId(createdById);
SDO localSdo = new SDO();
// 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
localSdo.setOperator(operator);
return localSdo;
}
public void feedBackSaleOrderCancel(EpSaleOrderCancel epSaleOrderCancel,String state){ public void feedBackSaleOrderCancel(EpSaleOrderCancel epSaleOrderCancel,String state){
List<EpSaleOrderCancelItem> orderItemList = epSaleOrderCancelItemApplication.findByEpSaleOrderCancelId(epSaleOrderCancel.getId()); List<EpSaleOrderCancelItem> orderItemList = epSaleOrderCancelItemApplication.findByEpSaleOrderCancelId(epSaleOrderCancel.getId());
Map<String,Object> map = new HashMap<>(); Map<String,Object> map = new HashMap<>();
......
...@@ -87,7 +87,7 @@ public class EpSaleOrderCancelController extends CommonController { ...@@ -87,7 +87,7 @@ public class EpSaleOrderCancelController extends CommonController {
this.epSaleOrderCancelApplication.saveEpSaleOrderCancelVo(epSaleOrderCancelVos); this.epSaleOrderCancelApplication.saveEpSaleOrderCancelVo(epSaleOrderCancelVos);
}catch (RuntimeException e){ }catch (RuntimeException e){
messageMap.put("Message_Status","E"); messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e); messageMap.put("Message_Text",e.getMessage());
} }
return messageMap; return messageMap;
} }
......
...@@ -89,7 +89,7 @@ public class EpSaleOrderController extends CommonController { ...@@ -89,7 +89,7 @@ public class EpSaleOrderController extends CommonController {
this.epSaleOrderApplication.saveEpSaleOrderVo(epSaleOrderVos); this.epSaleOrderApplication.saveEpSaleOrderVo(epSaleOrderVos);
}catch (RuntimeException e){ }catch (RuntimeException e){
messageMap.put("Message_Status","E"); messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e); messageMap.put("Message_Text",e.getMessage());
} }
return messageMap; return messageMap;
} }
......
...@@ -14,4 +14,13 @@ ...@@ -14,4 +14,13 @@
<condition column="ep_sale_order_id" name="epSaleOrderId" type="java.lang.String" symbol="=" alias="t"/> <condition column="ep_sale_order_id" name="epSaleOrderId" type="java.lang.String" symbol="=" alias="t"/>
</query> </query>
<query name="loadPersonMemberId" label="根据人员编码获取主岗位id">
<sql-query>
SELECT o.ID FROM
sa_oporg o
LEFT JOIN sa_opperson p on o.PERSON_ID = p.id and p.MAIN_ORG_ID = o.PARENT_ID
where p.code = ?
</sql-query>
</query>
</query-mappings> </query-mappings>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment