Commit e1bc5c8b authored by 鲁鑫's avatar 鲁鑫

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

parent 5addc8ef
package com.huigou.topsun.ep.order.application.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache;
......@@ -25,7 +26,9 @@ import com.huigou.topsun.sap.common.domain.SapResult;
import com.huigou.topsun.sap.costReimbursement.domain.SapCostReimbursement;
import com.huigou.uasp.bmp.common.BizBillStatus;
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.repository.org.PersonRepository;
import com.huigou.uasp.bpm.FlowBroker;
import com.huigou.uasp.bpm.ProcessAction;
import com.huigou.uasp.bpm.ProcessStartModel;
......@@ -33,6 +36,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication;
import com.huigou.util.ClassHelper;
import com.huigou.util.Constants;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance;
......@@ -207,13 +211,19 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde
//初始化用户信息
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);
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()));
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.setStatusId(BizBillStatus.APPROVING.getId());
epSaleOrder = epSaleOrderRepository.save(epSaleOrder);
......@@ -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();
SDO localSdo = this.buildSDO(formData);
// 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
ThreadLocalUtil.putVariable(Constants.SDO, localSdo);
variables.put("startModel", ProcessStartModel.MANUAL.getId());
Operator operator = localSdo.getOperator();
......@@ -244,21 +258,6 @@ public class EpSaleOrderApplicationImpl extends FlowBroker implements EpSaleOrde
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){
List<EpSaleOrderItem> orderItemList = epSaleOrderItemApplication.findByEpSaleOrderId(epSaleOrder.getId());
Map<String,Object> map = new HashMap<>();
......
package com.huigou.topsun.ep.order.application.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.huigou.cache.SystemCache;
......@@ -32,6 +33,7 @@ import com.huigou.uasp.bpm.engine.application.WorkflowApplication;
import com.huigou.util.ClassHelper;
import com.huigou.util.Constants;
import com.huigou.util.SDO;
import com.huigou.util.StringUtil;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.runtime.ProcessInstance;
......@@ -206,13 +208,18 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa
//初始化用户信息
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);
Operator operator = operatorApplication.createOperatorByPersonMemberId(org.getId());
Operator operator = operatorApplication.createOperatorByPersonMemberId(personMemberId);
epSaleOrderCancel.setDefaultValues(new OrgUnit(operator.getFullId(), operator.getFullName()));
SDO localSdo = new SDO();
localSdo.setOperator(operator);
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.setStatusId(BizBillStatus.APPROVING.getId());
epSaleOrderCancel = epSaleOrderCancelRepository.save(epSaleOrderCancel);
......@@ -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();
SDO localSdo = this.buildSDO(formData);
// 将业务数据传递给工作流
formData.forEach(localSdo::putProperty);
// 将业务流程信息传递给工作流
localSdo.putProperty("processAction", ProcessAction.SAVE);
localSdo.putProperty("procUnitId", "Apply");
ThreadLocalUtil.putVariable(Constants.SDO, localSdo);
variables.put("startModel", ProcessStartModel.MANUAL.getId());
Operator operator = localSdo.getOperator();
......@@ -243,21 +254,6 @@ public class EpSaleOrderCancelApplicationImpl extends FlowBroker implements EpSa
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){
List<EpSaleOrderCancelItem> orderItemList = epSaleOrderCancelItemApplication.findByEpSaleOrderCancelId(epSaleOrderCancel.getId());
Map<String,Object> map = new HashMap<>();
......
......@@ -87,7 +87,7 @@ public class EpSaleOrderCancelController extends CommonController {
this.epSaleOrderCancelApplication.saveEpSaleOrderCancelVo(epSaleOrderCancelVos);
}catch (RuntimeException e){
messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e);
messageMap.put("Message_Text",e.getMessage());
}
return messageMap;
}
......
......@@ -89,7 +89,7 @@ public class EpSaleOrderController extends CommonController {
this.epSaleOrderApplication.saveEpSaleOrderVo(epSaleOrderVos);
}catch (RuntimeException e){
messageMap.put("Message_Status","E");
messageMap.put("Message_Text",e);
messageMap.put("Message_Text",e.getMessage());
}
return messageMap;
}
......
......@@ -14,4 +14,13 @@
<condition column="ep_sale_order_id" name="epSaleOrderId" type="java.lang.String" symbol="=" alias="t"/>
</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>
\ 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