Browse Source

出入库审批

guarantee-lsq 2 years ago
parent
commit
dc8b8f9d07

+ 1 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -259,6 +259,7 @@ public interface CommonConstants {
     String SB_SCRAP_FORM = "sb_info_scrap"; // 设备报废单
     String SB_STOP_FORM = "sb_info_stop"; // 设备停用单
     String SB_ALLOCATE_FORM = "sb_info_allocate"; // 设备调拨单
+    String OUT_STORE_BACK = "out_store_back"; // 仓库调拨
     String REPAIR_STATUS_RECORD = "repair_status_record"; // 维修状态记录
     String REPAIR_RECORD = "repair_record"; // 维修记录
     String REPAIR_DISPATCH_RECORD = "repair_dispatch_record"; // 维修转派记录

+ 1 - 1
platform-rest/src/main/java/com/platform/rest/controller/activiti/OutStoreFormActivitiController.java

@@ -41,7 +41,7 @@ public class OutStoreFormActivitiController {
     /**
      * 审核
      * @param actAuditRequest:不包括processInstanceId,
-     * @return R
+     * @return R.
      */
     @SysLog("审批单审核")
     @PutMapping("/audit")

+ 15 - 4
platform-service/src/main/java/com/platform/service/activiti/strategy/ActivitiAssignStrategyStartUserDeptRole.java

@@ -56,7 +56,8 @@ public class ActivitiAssignStrategyStartUserDeptRole implements ActivitiAssignSt
             log.info(candidateUsers.getValue());
             element.remove(candidateUsers);
         }
-        element.addAttribute("activiti:candidateUsers", getIds(map.get("userId"), activitiUserModel));
+        List<String> ids = getIds(map.get("userId"), activitiUserModel);
+        element.addAttribute("activiti:candidateUsers", StringUtils.join(ids, ","));
 
         // 指定角色的,就不会指定人员,需要清除
         Attribute assignee = element.attribute("assignee");
@@ -68,10 +69,19 @@ public class ActivitiAssignStrategyStartUserDeptRole implements ActivitiAssignSt
 
     @Override
     public void handleAssign(Task task, Map<String, String> map, ActivitiUserModel activitiUserModel) {
-        taskService.addCandidateUser(task.getId(), getIds(map.get("userId"), activitiUserModel));
+        List<String> ids = getIds(map.get("userId"), activitiUserModel);
+        if(ids.size() == 1){ // 一个人就不走待签收流程了,直接发给他
+            task.setAssignee(ids.get(0));
+            taskService.saveTask(task);
+        }else{
+            for(String id: ids){
+                taskService.addCandidateUser(task.getId(), id);
+            }
+        }
+        //taskService.addCandidateUser(task.getId(), getIds(map.get("userId"), activitiUserModel));
     }
 
-    public String getIds(String userId, ActivitiUserModel activitiUserModel){
+    public List<String> getIds(String userId, ActivitiUserModel activitiUserModel){
         String roleId = activitiUserModel.getRoleId();
         SysUserDTO sysUserDTO = new SysUserDTO();
         sysUserDTO.setRoleIds(Arrays.asList(roleId));
@@ -87,6 +97,7 @@ public class ActivitiAssignStrategyStartUserDeptRole implements ActivitiAssignSt
         }
         List<String> ids = sysUserVOList.stream().distinct().map(SysUserVO::getUserId).collect(Collectors.toList());
         log.info("查询的用户id:" + ids);
-        return StringUtils.join(ids, ",");
+        return ids;
+        //return StringUtils.join(ids, ",");
     }
 }

+ 4 - 1
platform-service/src/main/java/com/platform/service/business/impl/ActivitiBaseServiceAbstract.java

@@ -1,14 +1,18 @@
 package com.platform.service.business.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.platform.activiti.dao.entity.ActApplyInfo;
 import com.platform.activiti.dao.entity.ActAuditRecord;
 import com.platform.activiti.dao.entity.ActAuditRequest;
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.model.UserInfo;
+import com.platform.common.util.IdGeneratorUtils;
 import com.platform.common.util.SecurityUtils;
 import com.platform.dao.entity.activiti.ActivitiUserModel;
+import com.platform.dao.entity.activiti.LocalAuditRecord;
+import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.upms.SysUser;
 import com.platform.service.activiti.ActivitiAssignStrategy;
 import com.platform.service.activiti.ActivitiUserModelService;
@@ -199,7 +203,6 @@ public abstract class ActivitiBaseServiceAbstract implements ActivitiBaseService
         return result == 0 ? false : true;
 
     }
-
     /**
      * 终止审核:如果已经终止删除过的
      * 审批设置对象:ActApplyInfo

+ 56 - 6
platform-service/src/main/java/com/platform/service/business/impl/OutStoreFormActivitiServiceImpl.java

@@ -1,9 +1,14 @@
 package com.platform.service.business.impl;
 
+import com.alibaba.fastjson.JSONObject;
 import com.platform.activiti.dao.entity.ActAuditRequest;
+import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.common.exception.BusinessException;
+import com.platform.common.model.UserInfo;
+import com.platform.common.util.IdGeneratorUtils;
 import com.platform.common.util.JsonUtils;
 import com.platform.dao.dto.activiti.SbScrapFormActiviti;
+import com.platform.dao.entity.activiti.LocalAuditRecord;
 import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.store.OutStoreForm;
@@ -11,9 +16,12 @@ import com.platform.dao.enums.ActivitiFormStatusEnum;
 import com.platform.dao.enums.CustomFieldTemplateDataStatusEnum;
 import com.platform.dao.enums.OutStoreStatusEnum;
 import com.platform.dao.enums.SbInfoStatusEnum;
+import com.platform.dao.mapper.activiti.LocalAuditRecordMapper;
 import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.store.OutStoreFormMapper;
+import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
+import com.platform.service.customize.BaseFormCheckServiceAbstract;
 import com.platform.service.yongyou.YongyouService;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
@@ -29,9 +37,10 @@ import org.springframework.stereotype.Service;
 @Slf4j
 @AllArgsConstructor
 @Service("outStoreFormActivitiServiceImpl")
-public class OutStoreFormActivitiServiceImpl extends ActivitiBaseServiceAbstract {
+public class OutStoreFormActivitiServiceImpl extends BaseFormCheckServiceAbstract {
     private OutStoreFormMapper outStoreFormMapper;
     private final YongyouService yongyouService;
+    private final LocalAuditRecordMapper localAuditRecordMapper;
     /**
      * 检查业务是否可以发起,比如检查业务状态等
      *
@@ -48,18 +57,43 @@ public class OutStoreFormActivitiServiceImpl extends ActivitiBaseServiceAbstract
         }
     }
 
+    @Override
+    protected void doStartUpdate(ActAuditRequest actAuditRequest) {
+        OutStoreForm outStoreForm = new OutStoreForm();
+        outStoreForm.setId(actAuditRequest.getId());
+        outStoreForm.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
+        outStoreForm.setStatus(OutStoreStatusEnum.NOT_EXECUTE.getValue());
+        outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
+    }
+
+    @Override
+    public String checkPrepare(String data) {
+        return null;
+    }
+
+    @Override
+    public String packageData(String data, String no) {
+        return null;
+    }
+
+    @Override
+    public void resultWrite(AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos) {
+
+    }
+
     /**
      * 发起审核后的状态,等待主管审核
      *
      * @param actAuditRequest
      */
     @Override
-    protected void doUpdate(ActAuditRequest actAuditRequest) {
+    public String doUpdate(ActAuditRequest actAuditRequest) {
         OutStoreForm outStoreForm = new OutStoreForm();
         outStoreForm.setId(actAuditRequest.getId());
         outStoreForm.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
         outStoreForm.setStatus(OutStoreStatusEnum.NOT_EXECUTE.getValue());
         outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
+        return null;
     }
 
     /**
@@ -68,11 +102,12 @@ public class OutStoreFormActivitiServiceImpl extends ActivitiBaseServiceAbstract
      * @param actAuditRequest
      */
     @Override
-    protected void doRefuse(ActAuditRequest actAuditRequest) {
+    public String doRefuse(ActAuditRequest actAuditRequest) {
         OutStoreForm outStoreForm = new OutStoreForm();
         outStoreForm.setId(actAuditRequest.getId());
         outStoreForm.setStatus(OutStoreStatusEnum.CREATED.getValue());
         outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
+        return null;
     }
 
     /**
@@ -81,13 +116,13 @@ public class OutStoreFormActivitiServiceImpl extends ActivitiBaseServiceAbstract
      * @param actAuditRequest
      */
     @Override
-    protected void doFinish(ActAuditRequest actAuditRequest) {
+    public String doFinish(ActAuditRequest actAuditRequest) {
         OutStoreForm outStoreForm = new OutStoreForm();
         outStoreForm.setId(actAuditRequest.getId());
         outStoreForm.setStatus(OutStoreStatusEnum.EXECUTING.getValue());
         outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
         yongyouService.addOutForm(actAuditRequest.getId());
-
+        return null;
     }
 
     /**
@@ -96,11 +131,26 @@ public class OutStoreFormActivitiServiceImpl extends ActivitiBaseServiceAbstract
      * @param actAuditRequest
      */
     @Override
-    protected void doStop(ActAuditRequest actAuditRequest) {
+    public String doStop(ActAuditRequest actAuditRequest) {
         OutStoreForm outStoreForm = new OutStoreForm();
         outStoreForm.setId(actAuditRequest.getId());
         outStoreForm.setStatus(OutStoreStatusEnum.CREATED.getValue());
         outStoreForm.setProcessInstanceId(null);
         outStoreFormMapper.updateByPrimaryKeySelective(outStoreForm);
+        return null;
+    }
+
+    @Override
+    public void saveLocalAuditRecord(ActAuditRequest actAuditRequest, UserInfo user, int result) {
+        OutStoreForm outStoreForm = outStoreFormMapper.selectByPrimaryKey(actAuditRequest.getId());
+        LocalAuditRecord record = new LocalAuditRecord(outStoreForm.getCreatedTime(),user,actAuditRequest.getRefuseReason(),actAuditRequest.getTaskId(),actAuditRequest.getAuditModelName());
+        record.setId(IdGeneratorUtils.getObjectId());
+        record.setNo(outStoreForm.getOutNo());
+        record.setProcessInstanceId(actAuditRequest.getProcessInstanceId());
+        record.setTargetCode(outStoreForm.getRemark());
+        record.setTargetId(actAuditRequest.getId());
+        record.setSelf(user.getUserId().equals(outStoreForm.getCreatedUserId()) ? Boolean.TRUE : Boolean.FALSE);
+        record.setFlag(result == 0 ? false : true);
+        localAuditRecordMapper.insertSelective(record);
     }
 }

+ 3 - 0
platform-service/src/main/java/com/platform/service/customize/BaseFormCheckService.java

@@ -3,6 +3,7 @@ package com.platform.service.customize;
 import com.platform.activiti.dao.entity.ActAuditRecord;
 import com.platform.activiti.dao.entity.ActAuditRequest;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.model.UserInfo;
 import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
 
 import java.util.List;
@@ -103,4 +104,6 @@ public interface BaseFormCheckService {
      * @param actAuditRequest
      */
     String doStop(ActAuditRequest actAuditRequest);
+
+    void saveLocalAuditRecord(ActAuditRequest actAuditRequest, UserInfo user, int result);
 }

+ 2 - 2
platform-service/src/main/java/com/platform/service/customize/BaseFormCheckServiceAbstract.java

@@ -56,7 +56,6 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
     private SysUserService sysUserService;
     @Autowired
     private LocalAuditRecordMapper localAuditRecordMapper;
-
     @Autowired
     private ActivitiUserModelService activitiUserModelService;
     /**
@@ -224,7 +223,8 @@ public abstract class BaseFormCheckServiceAbstract implements BaseFormCheckServi
      * 本地存储审核记录信息
      * @param actAuditRequest
      */
-    private void saveLocalAuditRecord(ActAuditRequest actAuditRequest,UserInfo user,int result){
+    @Override
+    public void saveLocalAuditRecord(ActAuditRequest actAuditRequest,UserInfo user,int result){
         CustomFieldTemplateData data = getById(actAuditRequest.getId());
         LocalAuditRecord record = new LocalAuditRecord(data.getCreatedTime(),user,actAuditRequest.getRefuseReason(),actAuditRequest.getTaskId(),actAuditRequest.getAuditModelName());
         record.setId(IdGeneratorUtils.getObjectId());

+ 4 - 0
platform-service/src/main/java/com/platform/service/customize/BaseFormCheckServiceFactory.java

@@ -2,6 +2,7 @@ package com.platform.service.customize;
 
 import com.platform.common.constant.CommonConstants;
 import com.platform.common.util.BeanUtils;
+import com.platform.service.business.impl.OutStoreFormActivitiServiceImpl;
 
 public class BaseFormCheckServiceFactory {
     public static BaseFormCheckService getCheckService(String type){
@@ -19,6 +20,9 @@ public class BaseFormCheckServiceFactory {
                     .SB_ALLOCATE_FORM:
                 checkService = (BaseFormCheckService)BeanUtils.getBean("sbAllocateCheckServiceImpl");
                 break;
+            case CommonConstants.OUT_STORE_BACK:
+                checkService = (OutStoreFormActivitiServiceImpl)BeanUtils.getBean("outStoreFormActivitiServiceImpl");
+                break;
         }
         return checkService;
     }