Parcourir la source

优化采购流程

曾成 il y a 6 ans
Parent
commit
5ef5be74c3

+ 16 - 1
Api/src/main/java/com/java110/api/listener/auditOrder/ListAuditOrdersListener.java

@@ -8,6 +8,7 @@ import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
 import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
 import com.java110.core.smo.resourceStore.IResourceStoreInnerServiceSMO;
 import com.java110.dto.auditUser.AuditUserDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.event.service.api.ServiceDataFlowEvent;
 import com.java110.utils.constant.ServiceCodeAuditUserConstant;
@@ -84,7 +85,21 @@ public class ListAuditOrdersListener extends AbstractServiceApiListener {
         List<ApiResourceOrderDataVo> auditOrders = null;
 
         if (count > 0) {
-            auditOrders = BeanConvertUtil.covertBeanList(resourceEntryStoreInnerServiceSMOImpl.getUserTasks(auditUser), ApiResourceOrderDataVo.class);
+            List<PurchaseApplyDto> purchaseApplyDtos = resourceEntryStoreInnerServiceSMOImpl.getUserTasks(auditUser);
+            auditOrders = BeanConvertUtil.covertBeanList(purchaseApplyDtos, ApiResourceOrderDataVo.class);
+            for( ApiResourceOrderDataVo apiResourceOrderDataVo : auditOrders){
+                switch (apiResourceOrderDataVo.getState()){
+                    case "1000": apiResourceOrderDataVo.setStateName("待审核");break;
+                    case "1001": apiResourceOrderDataVo.setStateName("审核中");break;
+                    case "1002": apiResourceOrderDataVo.setStateName("已审核");break;
+                }
+                if(apiResourceOrderDataVo.getResOrderType().equals("10000")){
+                    apiResourceOrderDataVo.setResOrderTypeName("采购申请");
+                }else{
+                    apiResourceOrderDataVo.setResOrderTypeName("出库申请");
+                }
+
+            }
         } else {
             auditOrders = new ArrayList<>();
         }

+ 0 - 1
Api/src/main/java/com/java110/api/listener/purchaseApply/SavePurchaseApplyListener.java

@@ -96,7 +96,6 @@ public class SavePurchaseApplyListener extends AbstractServiceApiListener {
         business.put(CommonConstant.HTTP_INVOKE_MODEL, CommonConstant.HTTP_INVOKE_MODEL_S);
         JSONObject businessPurchaseApply = new JSONObject();
         businessPurchaseApply.putAll(paramInJson);
-        businessPurchaseApply.put("applyOrderId", "-1");
         //计算 应收金额
         business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put("businessPurchaseApply", businessPurchaseApply);
         return business;

+ 5 - 0
CommonService/src/main/java/com/java110/common/activity/complaint/ComplaintUserListener.java

@@ -1,5 +1,6 @@
 package com.java110.common.activity.complaint;
 
+import com.java110.common.activity.resourceEnter.ResourceEnterToDepartmentListener;
 import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
 import com.java110.dto.auditUser.AuditUserDto;
 import com.java110.dto.complaint.ComplaintDto;
@@ -10,6 +11,8 @@ import org.activiti.engine.delegate.DelegateExecution;
 import org.activiti.engine.delegate.DelegateTask;
 import org.activiti.engine.delegate.ExecutionListener;
 import org.activiti.engine.delegate.TaskListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
@@ -17,6 +20,7 @@ import java.util.List;
  * 采购人员采购
  */
 public class ComplaintUserListener implements TaskListener , ExecutionListener {
+    private final static Logger logger = LoggerFactory.getLogger(ComplaintUserListener.class);
 
     private IAuditUserInnerServiceSMO auditUserInnerServiceSMOImpl;
 
@@ -41,6 +45,7 @@ public class ComplaintUserListener implements TaskListener , ExecutionListener {
             return;
         }
         //delegateTask.addCandidateUser(auditUserDtos.get(0).getUserId());
+        logger.info("开始设置投诉建议审核人员:"+auditUserDtos.get(0).getUserId());
 
         delegateTask.setAssignee(auditUserDtos.get(0).getUserId());
     }

+ 19 - 3
CommonService/src/main/java/com/java110/common/activity/resourceEnter/ResourceEnterToDepartmentListener.java

@@ -2,6 +2,7 @@ package com.java110.common.activity.resourceEnter;
 
 import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
 import com.java110.dto.auditUser.AuditUserDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.dto.resourceStore.ResourceOrderDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.factory.ApplicationContextFactory;
@@ -10,6 +11,8 @@ import org.activiti.engine.delegate.DelegateExecution;
 import org.activiti.engine.delegate.DelegateTask;
 import org.activiti.engine.delegate.ExecutionListener;
 import org.activiti.engine.delegate.TaskListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.util.List;
 
@@ -17,29 +20,42 @@ import java.util.List;
  * 部门领导 监听类
  */
 public class ResourceEnterToDepartmentListener implements TaskListener , ExecutionListener {
+    private final static Logger logger = LoggerFactory.getLogger(ResourceEnterToDepartmentListener.class);
 
     private IAuditUserInnerServiceSMO auditUserInnerServiceSMOImpl;
 
     @Override
     public void notify(DelegateTask delegateTask) {
+        logger.info("查询部门审核人员");
 
         auditUserInnerServiceSMOImpl = ApplicationContextFactory.getBean("auditUserInnerServiceSMOImpl", IAuditUserInnerServiceSMO.class);
         AuditUserDto auditUserDto = new AuditUserDto();
-        ResourceOrderDto resourceOrderDto = (ResourceOrderDto)delegateTask.getVariable("resourceOrderDto");
-        auditUserDto.setStoreId(resourceOrderDto.getStoreId());
+        PurchaseApplyDto purchaseApplyDto = (PurchaseApplyDto)delegateTask.getVariable("purchaseApplyDto");
+        auditUserDto.setStoreId(purchaseApplyDto.getStoreId());
         auditUserDto.setObjCode("resourceEntry");
         auditUserDto.setAuditLink("809001");
         List<AuditUserDto> auditUserDtos = auditUserInnerServiceSMOImpl.queryAuditUsers(auditUserDto);
 
+
         for (AuditUserDto tmpAuditUser : auditUserDtos) {
             AuditUser auditUser = BeanConvertUtil.covertBean(tmpAuditUser, AuditUser.class);
-            System.err.println("审核人id:"+tmpAuditUser.getUserName()+tmpAuditUser.getUserId());
+            logger.info("查询到用户:"+tmpAuditUser.getUserName());
 
             delegateTask.setVariable(auditUser.getUserId(), auditUser);
 
         }
+
+        logger.info("查询审核人员人数:"+auditUserDtos.size());
+
+        if (auditUserDtos == null || auditUserDtos.size() < 1) {
+            return;
+        }
+
+        delegateTask.setAssignee(auditUserDtos.get(0).getUserId());
+        logger.info("设置部门审核人员:"+auditUserDtos.get(0).getUserId()+auditUserDtos.get(0).getUserName());
     }
 
+
     @Override
     public void notify(DelegateExecution execution) {
 

+ 23 - 10
CommonService/src/main/java/com/java110/common/smo/impl/PurchaseApplyUserInnerServiceSMOImpl.java

@@ -2,13 +2,16 @@ package com.java110.common.smo.impl;
 
 
 import com.java110.core.base.smo.BaseServiceSMO;
+import com.java110.core.smo.audit.IAuditUserInnerServiceSMO;
 import com.java110.core.smo.complaint.IComplaintInnerServiceSMO;
 import com.java110.core.smo.purchaseApplyUser.IPurchaseApplyUserInnerServiceSMO;
 import com.java110.dto.PageDto;
 import com.java110.dto.auditMessage.AuditMessageDto;
+import com.java110.dto.auditUser.AuditUserDto;
 import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.entity.audit.AuditUser;
 import com.java110.utils.util.Assert;
+import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.ProcessEngine;
@@ -48,6 +51,8 @@ public class PurchaseApplyUserInnerServiceSMOImpl extends BaseServiceSMO impleme
     @Autowired
     private IComplaintInnerServiceSMO complaintInnerServiceSMOImpl;
 
+    @Autowired
+    private IAuditUserInnerServiceSMO auditUserInnerServiceSMOImpl;
 
     /**
      * 启动流程
@@ -58,16 +63,15 @@ public class PurchaseApplyUserInnerServiceSMOImpl extends BaseServiceSMO impleme
         //将信息加入map,以便传入流程中
         Map<String, Object> variables = new HashMap<String, Object>();
         variables.put("purchaseApplyDto", purchaseApplyDto);
-        variables.put("userId", purchaseApplyDto.getCurrentUserId());
+        //variables.put("userId", purchaseApplyDto.getCurrentUserId());
         //开启流程
         ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("resourceEntry", purchaseApplyDto.getApplyOrderId(), variables);
-        //将得到的实例流程id值赋给之前设置的变量
-        String processInstanceId = processInstance.getId();
-        // System.out.println("流程开启成功.......实例流程id:" + processInstanceId);
-
-        purchaseApplyDto.setProcessInstanceId(processInstanceId);
-        //第一个节点自动提交
-        autoFinishFirstTask(purchaseApplyDto);
+//        //将得到的实例流程id值赋给之前设置的变量
+//        String processInstanceId = processInstance.getId();
+//        // System.out.println("流程开启成功.......实例流程id:" + processInstanceId);
+//
+//        purchaseApplyDto.setProcessInstanceId(processInstanceId);
+//        autoFinishFirstTask(purchaseApplyDto);
         return purchaseApplyDto;
     }
 
@@ -75,10 +79,18 @@ public class PurchaseApplyUserInnerServiceSMOImpl extends BaseServiceSMO impleme
      * 自动提交第一步
      */
     private void autoFinishFirstTask(PurchaseApplyDto purchaseApplyDto) {
+        AuditUserDto auditUserDto = new AuditUserDto();
+        auditUserDto.setStoreId(purchaseApplyDto.getStoreId());
+        auditUserDto.setObjCode("resourceEntry");
+        auditUserDto.setAuditLink("809001");
+        List<AuditUserDto> auditUserDtos = auditUserInnerServiceSMOImpl.queryAuditUsers(auditUserDto);
+        if(auditUserDtos.size() == 0 || auditUserDtos == null){
+            throw new IllegalArgumentException("未找的采购部门审核人员信息");
+        }
         Task task = null;
-        TaskQuery query = taskService.createTaskQuery().taskCandidateOrAssigned(purchaseApplyDto.getCurrentUserId()).active();
+        TaskQuery query = taskService.createTaskQuery().taskCandidateOrAssigned(auditUserDtos.get(0).getUserId()).active();
         List<Task> todoList = query.list();//获取申请人的待办任务列表
-        List<Task> list = taskService.createTaskQuery().list();
+
         for (Task tmp : todoList) {
             if (tmp.getProcessInstanceId().equals(purchaseApplyDto.getProcessInstanceId())) {
                 task = tmp;//获取当前流程实例,当前申请人的待办任务
@@ -241,6 +253,7 @@ public class PurchaseApplyUserInnerServiceSMOImpl extends BaseServiceSMO impleme
         //taskService.addCandidateUser(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
         //taskService.claim(complaintDto.getTaskId(), complaintDto.getCurrentUserId());
         taskService.complete(purchaseApplyDto.getTaskId(), variables);
+        taskService.setVariable(purchaseApplyDto.getTaskId(),"purchaseApplyDto",purchaseApplyDto);
 
         ProcessInstance pi = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
         if (pi == null) {

+ 11 - 6
CommonService/src/main/java/com/java110/common/smo/impl/ResourceEntryStoreInnerServiceSMOImpl.java

@@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.java110.core.base.smo.BaseServiceSMO;
 import com.java110.core.smo.common.IResourceEntryStoreInnerServiceSMO;
 import com.java110.dto.PageDto;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.dto.resourceStore.ResourceOrderDto;
 import com.java110.entity.audit.AuditUser;
 import org.activiti.engine.ProcessEngine;
@@ -75,28 +76,32 @@ public class ResourceEntryStoreInnerServiceSMOImpl extends BaseServiceSMO implem
      *
      * @param user 用户信息
      */
-    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user) {
+    public List<PurchaseApplyDto> getUserTasks(@RequestBody AuditUser user) {
         TaskService taskService = processEngine.getTaskService();
         TaskQuery query = taskService.createTaskQuery().processDefinitionKey("resourceEntry");
         query.taskAssignee(user.getUserId());
         query.orderByTaskCreateTime().desc();
         List<Task> list = null;
+        if(user.getPage()  >=1){
+            user.setPage(user.getPage()-1);
+        }
         if (user.getPage() != PageDto.DEFAULT_PAGE) {
             list = query.listPage(user.getPage(), user.getRow());
         }else{
             list = query.list();
         }
 
-        List<ResourceOrderDto> resourceOrderDtos = new ArrayList<>();
+        List<PurchaseApplyDto> purchaseApplyDtos = new ArrayList<>();
 
         for (Task task : list) {
             String id = task.getId();
             //System.out.println("tasks:" + JSONObject.toJSONString(task));
-            ResourceOrderDto resourceOrderDto = (ResourceOrderDto) taskService.getVariable(id, "resourceOrderDto");
-            resourceOrderDto.setTaskId(id);
-            resourceOrderDtos.add(resourceOrderDto);
+            PurchaseApplyDto purchaseApplyDto = (PurchaseApplyDto) taskService.getVariable(id, "purchaseApplyDto");
+            purchaseApplyDto.setTaskId(id);
+            purchaseApplyDto.setProcessInstanceId(task.getProcessInstanceId());
+            purchaseApplyDtos.add(purchaseApplyDto);
         }
-        return resourceOrderDtos;
+        return purchaseApplyDtos;
     }
 
     public boolean agreeCompleteTask(@RequestBody ResourceOrderDto resourceOrderDto) {

+ 3 - 1
CommonService/src/main/resources/processes/resourceEnter.bpmn

@@ -4,7 +4,9 @@
     <startEvent id="_2" name="StartEvent"/>
     <userTask activiti:exclusive="true" id="_3" name="department">
       <extensionElements>
-        <activiti:executionListener class="com.java110.common.activity.resourceEnter.ResourceEnterToDepartmentListener" event="department"/>
+        <activiti:taskListener class="com.java110.common.activity.resourceEnter.ResourceEnterToDepartmentListener" event="create"/>
+        <activiti:taskListener class="com.java110.common.activity.FreshActHiTaskInstAssigneeListener" event="department"/>
+
       </extensionElements>
     </userTask>
     <userTask activiti:exclusive="true" id="_4" name="finance"/>

+ 5 - 0
FrontService/src/main/java/com/java110/front/smo/purchaseApply/impl/AddPurchaseApplySMOImpl.java

@@ -3,10 +3,12 @@ package com.java110.front.smo.purchaseApply.impl;
 import com.alibaba.fastjson.JSONObject;
 import com.java110.core.component.AbstractComponentSMO;
 import com.java110.core.context.IPageData;
+import com.java110.core.factory.GenerateCodeFactory;
 import com.java110.entity.component.ComponentValidateResult;
 import com.java110.utils.constant.ServiceConstant;
 import com.java110.utils.util.Assert;
 import com.java110.front.smo.purchaseApply.IAddPurchaseApplySMO;
+import com.java110.utils.util.DateUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpMethod;
 import org.springframework.http.ResponseEntity;
@@ -41,6 +43,9 @@ public class AddPurchaseApplySMOImpl extends AbstractComponentSMO implements IAd
         paramIn.put("storeId", result.getStoreId());
         paramIn.put("userId", pd.getUserId());
         paramIn.put("userName", pd.getUserName());
+        paramIn.put("state", "1000");
+        paramIn.put("createTime", DateUtil.getCurrentDate());
+        paramIn.put("applyOrderId", GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
         responseEntity = this.callCenterService(restTemplate, pd, paramIn.toJSONString(),
                 ServiceConstant.SERVICE_API_URL + "/api/purchaseApply.savePurchaseApply",
                 HttpMethod.POST);

+ 1 - 6
StoreService/src/main/java/com/java110/store/listener/purchaseApply/SavePurchaseApplyInfoListener.java

@@ -162,13 +162,8 @@ public class SavePurchaseApplyInfoListener extends AbstractPurchaseApplyBusiness
 
         Assert.jsonObjectHaveKey(businessPurchaseApply,"applyOrderId","businessPurchaseApply 节点下没有包含 applyOrderId 节点");
 
-        if(businessPurchaseApply.getString("applyOrderId").startsWith("-")){
-            businessPurchaseApply.put("applyOrderId",GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_applyOrderId));
-
-        }
-
         //状态
-        businessPurchaseApply.put("state","1000");
+        //businessPurchaseApply.put("state","1000");
         businessPurchaseApply.put("bId",business.getbId());
         businessPurchaseApply.put("operate", StatusConstant.OPERATE_ADD);
         Object jsonArray = businessPurchaseApply.get("resourceStores");

+ 1 - 1
StoreService/src/main/java/com/java110/store/smo/impl/PurchaseApplyInnerServiceSMOImpl.java

@@ -72,7 +72,7 @@ public class PurchaseApplyInnerServiceSMOImpl extends BaseServiceSMO implements
             purchaseApplyDto.setPage((page - 1) * purchaseApplyDto.getRow());
         }
 
-        List<PurchaseApplyDto> purchaseApplys = BeanConvertUtil.covertBeanList(purchaseApplyServiceDaoImpl.getPurchaseApplyInfo2(BeanConvertUtil.beanCovertMap(purchaseApplyDto)), PurchaseApplyDto.class);
+        List<PurchaseApplyDto> purchaseApplys = purchaseApplyServiceDaoImpl.getPurchaseApplyInfo2(BeanConvertUtil.beanCovertMap(purchaseApplyDto));
 
         if (purchaseApplys == null || purchaseApplys.size() == 0) {
             return purchaseApplys;

+ 3 - 3
java110-bean/src/main/java/com/java110/dto/purchaseApply/PurchaseApplyDto.java

@@ -28,7 +28,7 @@ public class PurchaseApplyDto extends PageDto implements Serializable {
     private String stateName;
     private List<PurchaseApplyDetailVo> purchaseApplyDetailVo;
 
-    private Date createTime;
+    private String createTime;
 
     private String statusCd = "0";
 
@@ -98,11 +98,11 @@ public class PurchaseApplyDto extends PageDto implements Serializable {
     }
 
 
-    public Date getCreateTime() {
+    public String getCreateTime() {
         return createTime;
     }
 
-    public void setCreateTime(Date createTime) {
+    public void setCreateTime(String createTime) {
         this.createTime = createTime;
     }
 

+ 35 - 6
java110-bean/src/main/java/com/java110/vo/api/resourceOrder/ApiResourceOrderDataVo.java

@@ -1,6 +1,7 @@
 package com.java110.vo.api.resourceOrder;
 
 import java.io.Serializable;
+import java.util.Date;
 
 public class ApiResourceOrderDataVo implements Serializable {
 
@@ -9,22 +10,26 @@ public class ApiResourceOrderDataVo implements Serializable {
 
     private String taskId;
 
-    //资源订单ID
-    private String resOrderId;
+
+    //订单ID
+    private String applyOrderId;
 
     //商户ID
     private String storeId;
 
     // 资源类型 入库还是出库
     private String resOrderType;
+    private String resOrderTypeName;
 
     // 资源状态
     private String state;
+    private String stateName;
 
     //
     private String auditCode;
 
     private String auditMessage;
+    private String createTime;
 
     public String getProcessInstanceId() {
         return processInstanceId;
@@ -42,12 +47,20 @@ public class ApiResourceOrderDataVo implements Serializable {
         this.taskId = taskId;
     }
 
-    public String getResOrderId() {
-        return resOrderId;
+    public String getApplyOrderId() {
+        return applyOrderId;
+    }
+
+    public void setApplyOrderId(String applyOrderId) {
+        this.applyOrderId = applyOrderId;
     }
 
-    public void setResOrderId(String resOrderId) {
-        this.resOrderId = resOrderId;
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
     }
 
     public String getStoreId() {
@@ -89,4 +102,20 @@ public class ApiResourceOrderDataVo implements Serializable {
     public void setAuditMessage(String auditMessage) {
         this.auditMessage = auditMessage;
     }
+
+    public String getResOrderTypeName() {
+        return resOrderTypeName;
+    }
+
+    public void setResOrderTypeName(String resOrderTypeName) {
+        this.resOrderTypeName = resOrderTypeName;
+    }
+
+    public String getStateName() {
+        return stateName;
+    }
+
+    public void setStateName(String stateName) {
+        this.stateName = stateName;
+    }
 }

+ 2 - 1
java110-core/src/main/java/com/java110/core/smo/common/IResourceEntryStoreInnerServiceSMO.java

@@ -1,6 +1,7 @@
 package com.java110.core.smo.common;
 
 import com.java110.core.feign.FeignConfiguration;
+import com.java110.dto.purchaseApply.PurchaseApplyDto;
 import com.java110.dto.resourceStore.ResourceOrderDto;
 import com.java110.entity.audit.AuditUser;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -38,7 +39,7 @@ public interface IResourceEntryStoreInnerServiceSMO {
      * @param user 用户信息
      */
     @RequestMapping(value = "/getUserTasks", method = RequestMethod.POST)
-    public List<ResourceOrderDto> getUserTasks(@RequestBody AuditUser user);
+    public List<PurchaseApplyDto> getUserTasks(@RequestBody AuditUser user);
 
     /**
      * 同意

+ 1 - 6
java110-db/src/main/resources/mapper/store/PurchaseApplyServiceDaoImplMapper.xml

@@ -225,15 +225,10 @@
         <if test="resOrderType !=null and resOrderType != ''">
             and t.res_order_type= #{resOrderType}
         </if>
-        <if test="description !=null and description != ''">
-            and t.description= #{description}
-        </if>
+
         <if test="applyOrderId !=null and applyOrderId != ''">
             and t.apply_order_id= #{applyOrderId}
         </if>
-        <if test="userName !=null and userName != ''">
-            and t.user_name like concat('%',#{userName},'%')
-        </if>
         <if test="statusCd !=null and statusCd != ''">
             and t.status_cd= #{statusCd}
         </if>