diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java index 7460af0a..492d94c4 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/controller/TmTaskController.java @@ -6,9 +6,10 @@ import com.bonus.sgzb.app.domain.LeaseApplyDetails; import com.bonus.sgzb.app.domain.LeaseApplyInfo; import com.bonus.sgzb.app.domain.TmTask; import com.bonus.sgzb.app.domain.TmTaskDto; -import com.bonus.sgzb.app.service.*; -import com.bonus.sgzb.base.api.domain.BmFlowRecord; -import com.bonus.sgzb.base.api.domain.BmFlowRelation; +import com.bonus.sgzb.app.service.LeaseApplyDetailsService; +import com.bonus.sgzb.app.service.LeaseApplyInfoService; +import com.bonus.sgzb.app.service.LeaseUserBookService; +import com.bonus.sgzb.app.service.TmTaskService; import com.bonus.sgzb.common.core.utils.ListPagingUtil; import com.bonus.sgzb.common.core.utils.ServletUtils; import com.bonus.sgzb.common.core.utils.StringUtils; @@ -27,7 +28,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.ArrayList; -import java.util.Comparator; import java.util.List; import java.util.Set; @@ -44,26 +44,20 @@ import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE; public class TmTaskController extends BaseController { /** - * 服务对象 + * 任务表Service */ - // 任务表Service @Resource private TmTaskService tmTaskService; - // 领料申请表Service + /** + * 领料申请信息表service + */ @Resource private LeaseApplyInfoService leaseApplyInfoService; - // 领料申请明细表Service @Resource private LeaseApplyDetailsService leaseApplyDetailsService; - @Resource - private BmFlowRelationService bmFlowRelationService; - - @Resource - private BmFlowRecordService bmFlowRecordService; - @Autowired private LeaseUserBookService leaseUserBookService; @@ -95,8 +89,7 @@ public class TmTaskController extends BaseController { /** * 领料审核驳回,分公司,分管,机具分公司统一接口 - * - * @param task + * @param task 任务信息 * @return */ @Log(title = "宁夏领料审核驳回", businessType = BusinessType.UPDATE) @@ -108,8 +101,8 @@ public class TmTaskController extends BaseController { /** * 领料审核驳回,分公司,分管,机具分公司统一接口 * - * @param task - * @return + * @param task 任务信息表 + * @return 结果 */ @Log(title = "重庆领料审核驳回", businessType = BusinessType.UPDATE) @PostMapping("rejectLeaseByCompanyCq") @@ -158,105 +151,8 @@ public class TmTaskController extends BaseController { if (CollUtil.isEmpty(task.getLeaseApplyDetails())) { return AjaxResult.error("领料设备明细为空,请重新选择后上传!"); } - - // ---------审批流校验--------- - // 查询当前任务类型的审批流配置 - BmFlowRelation bmFlowRelation = new BmFlowRelation(); - // 赋值任务类型 - bmFlowRelation.setTaskType(29); - // 赋值组织机构 - bmFlowRelation.setCompanyId(task.getCompanyId()); - List bmFlowRelationList = bmFlowRelationService.selectAllByPrimaryKey(bmFlowRelation); - // 校验审批流配置 - if (CollUtil.isEmpty(bmFlowRelationList)) { - return AjaxResult.error("当前任务类型审批流配置为空,请联系管理员"); - } - - // -----------开始处理审批流 ------------- - - // 使用lambda表达式 按order字段从小到大进行排序 - try { - bmFlowRelationList.sort(Comparator.comparingInt(BmFlowRelation::getOrder)); - } catch (Exception e) { - return AjaxResult.error("处理审批流排序失败,请联系运维人员:" + e.getMessage()); - } - - // 获取起始节点状态 - String flowStartTaskStatus = bmFlowRelationList.get(0).getTaskStatus(); - // 设置任务状态为审批流的起点状态 - task.setTaskStatus(Integer.valueOf(flowStartTaskStatus)); - // -----------审批流处理结束 ------------- - - // 生成领料编码 - String code = tmTaskService.genderLeaseCode(); - if (StringUtils.isEmpty(code)) { return AjaxResult.error("后台生成CODE编号异常,请重试!"); } - task.setCode(code); - - // 创建任务 - if (tmTaskService.insertSelective(task) < 1) { return AjaxResult.error("创建领料任务失败,请重试!"); } - //任务与协议建立关联关系 - if (tmTaskService.insertAgreement(task) < 1) { return AjaxResult.error("领料任务与协议建立关联关系失败,请重试!"); } - - // 获取任务编号 - String taskId = task.getId(); - if (StringUtils.isEmpty(taskId)) {return AjaxResult.error("任务编号为空,创建失败");} - - // -----------数据处理开始start --------------- - - // 根据设备所属分公司拆分集合 - List> deviceByCompanyList = CollUtil.groupByField(task.getLeaseApplyDetails(), "companyId"); - - // 对拆分后的集合进行each遍历 - for (List leaseApplyDetailsList : deviceByCompanyList) { - // 判断拆分后的集合内是否有数据 - if (CollUtil.isNotEmpty(leaseApplyDetailsList)) { - // 对领料任务表的对象做数据处理 - LeaseApplyInfo leaseApplyInfo = task.getLeaseApplyInfo(); - leaseApplyInfo.setCode(code); - leaseApplyInfo.setTaskId(Integer.valueOf(taskId)); - // 设置设备所属分公司,用于交给哪家审核 - leaseApplyInfo.setCompanyId(leaseApplyDetailsList.get(0).getCompanyId()); - // 设置审批层级,根据已启用的审批流进行赋值层数 - leaseApplyInfo.setType(String.valueOf(bmFlowRelationList.size())); - - // 创建领料任务,返回领料任务编号 - if (leaseApplyInfoService.genderLeaseCode(leaseApplyInfo) < 1) { return AjaxResult.error("创建领料任务失败,或领料明细为空"); } - - // 领料任务创建完成,进行领料任务明细插入 - ArrayList ids = new ArrayList<>(); - if (StringUtils.isNotNull(leaseApplyInfo.getId())) { - for (LeaseApplyDetails leaseApplyDetails : leaseApplyDetailsList) { - // 设置领料任务ID - leaseApplyDetails.setParenntId(leaseApplyInfo.getId()); - ids.add(leaseApplyDetails.getId()); - } - // 插入领料任务明细 - if (leaseApplyDetailsService.batchInsert(leaseApplyDetailsList) > 0) { - leaseUserBookService.batchDel(ids); - } else { - System.out.println(("领料任务明细插入失败,请重试")); - } - } else { - return AjaxResult.error("领料任务编号为空"); - } - } - } - // -----------数据处理结束end --------------- - - // 数据处理成功后增加审批流记录 - BmFlowRecord bmFlowRecord = new BmFlowRecord(); - try { - bmFlowRecord.setTaskId(Integer.valueOf(taskId)); - bmFlowRecord.setFlowId(bmFlowRelationList.get(0).getFlowId()); - if (bmFlowRelationList.size() > 1) { bmFlowRecord.setNextFlowId(bmFlowRelationList.get(1).getFlowId());} - // String loginUserName = SecurityUtils.getLoginUser().getSysUser().getUserName(); - // bmFlowRecord.setCreator(loginUserName == null ? "" : loginUserName); - bmFlowRecordService.insertSelective(bmFlowRecord); - } catch (Exception e) { - return AjaxResult.error("数据处理完成,但审批流记录失败,请联系运维人员:" + e.getMessage()); - } - - return AjaxResult.success("任务创建成功,已完成"); + // ------校验结束--执行service------- + return tmTaskService.createFlowLeaseApply(task); } /** diff --git a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java index 42954638..2aeca8b0 100644 --- a/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java +++ b/sgzb-modules/sgzb-base/src/main/java/com/bonus/sgzb/app/service/impl/TmTaskServiceImpl.java @@ -228,8 +228,7 @@ public class TmTaskServiceImpl implements TmTaskService { */ @Override public List getLeaseAuditListByOne(TmTask record) { - List tmTaskList = tmTaskMapper.getLeaseDetailByParentId(record); - return tmTaskList; + return tmTaskMapper.getLeaseDetailByParentId(record); } /** @@ -373,7 +372,6 @@ public class TmTaskServiceImpl implements TmTaskService { * @return 审批流数据集合 */ private List leaseExamFlowParamCheck(TmTask task) { - // ---------审批流校验--------- // 查询当前任务类型的审批流配置 BmFlowRelation bmFlowRelation = new BmFlowRelation(); // 赋值任务类型 diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java index d1e24564..34c90e1e 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/controller/BackApplyController.java @@ -2,6 +2,7 @@ package com.bonus.sgzb.material.controller; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; +import com.bonus.sgzb.common.core.utils.DateUtils; import com.bonus.sgzb.common.core.utils.ListPagingUtil; import com.bonus.sgzb.common.core.utils.ServletUtils; import com.bonus.sgzb.common.core.utils.StringUtils; @@ -11,10 +12,8 @@ import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.core.web.page.TableDataInfo; import com.bonus.sgzb.common.log.annotation.Log; import com.bonus.sgzb.common.log.enums.BusinessType; -import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.material.domain.BackApplyInfo; import com.bonus.sgzb.material.mapper.BackApplyMapper; -import com.bonus.sgzb.material.mapper.TaskMapper; import com.bonus.sgzb.material.service.BackApplyService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -23,7 +22,6 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Set; import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_NUM; import static com.bonus.sgzb.common.core.web.page.TableSupport.PAGE_SIZE; @@ -231,6 +229,102 @@ public class BackApplyController extends BaseController { return AjaxResult.success("退料任务创建成功"); } + @Log(title = "退料申请提交--by重庆", businessType = BusinessType.INSERT) + @PostMapping("/submitBackApplyByCq") + public AjaxResult submitBackApplyByCq(@RequestBody BackApplyInfo bean) { + boolean addLeaseTaskResult; + Long backApplyInfoId; + if (StringUtils.isNull(bean)) { + return AjaxResult.error("参数错误"); + } + try { + //生成退料编码 + String code = backApplyService.genderBackCode(); + if (StringUtils.isEmpty(code)) { + return AjaxResult.error("后台退料编号生成异常,请重试!"); + } + bean.setCode(code); + bean.setTaskType(36); + bean.setTaskStatus("38"); + // 创建任务 + boolean addTaskResult = backApplyService.insertSelective(bean) > 0; + if (addTaskResult && bean.getTaskId() != null) { + //任务协议表(tm_task_agreement) + boolean addTaskAgreementRes = backApplyService.insertTaskAgreement(bean) > 0; + if (addTaskAgreementRes && bean.getBackApplyInfo() != null) { + if (CollUtil.isEmpty(bean.getBackApplyDetails())) { + return AjaxResult.error("退料设备明细为空,请重新选择后上传!"); + } + if (StringUtils.isNull(bean.getBackApplyInfo())) { + return AjaxResult.error("退料任务信息为空,请重新选择后上传!"); + } + + Integer taskId = bean.getTaskId(); + // 根据设备所属分公司拆分集合 + List> backApplyInfoList = CollUtil.groupByField(bean.getBackApplyDetails(), "companyId"); + // 判断拆分后的集合内是否有数据 + if (CollUtil.isNotEmpty(backApplyInfoList)) { + // 对拆分后的集合进行each遍历 + for (List leaseApplyDetailsList : backApplyInfoList) { + BackApplyInfo backApplyInfo1 = leaseApplyDetailsList.get(0); + // 对领料任务表的对象做数据处理 + BackApplyInfo backApplyInfo = bean.getBackApplyInfo(); + /* 创建领料单号*/ + backApplyInfo.setCode(code); + // -----重庆机具专属----- + backApplyInfo.setStatus("1"); + backApplyInfo.setDirectAuditBy(1); + backApplyInfo.setDirectAuditTime(DateUtils.getTime()); + backApplyInfo.setDirectAuditRemark("系统自动审批"); + /*设置任务ID*/ + backApplyInfo.setTaskId(taskId); + /*设置设备所属分公司,用于交给哪家审核*/ + backApplyInfo.setCompanyId(backApplyInfo1.getCompanyId()); + // 创建领料任务,返回领料任务编号 + addLeaseTaskResult = backApplyService.insertBackApply(backApplyInfo) > 0; + // 领料任务编号 + backApplyInfoId = backApplyInfo.getId(); + + // 领料任务创建完成,进行领料任务明细插入 + if (addLeaseTaskResult) { + if (StringUtils.isNotNull(backApplyInfoId)) { + for (BackApplyInfo leaseApplyDetails : leaseApplyDetailsList) { + /* 设置领料任务ID*/ + leaseApplyDetails.setId(backApplyInfoId); + leaseApplyDetails.setUpdateBy("admin"); + leaseApplyDetails.setRemark("系统自动审核"); + // 插入领料任务明细 + boolean addLeaseTaskDetailsResult = backApplyService.uploadByCq(leaseApplyDetails) > 0; + if (!addLeaseTaskDetailsResult) { + return AjaxResult.error("退料任务创建成功,但退料任务明细插入失败"); + } + } + } else { + return AjaxResult.error("退料任务编号为空"); + } + } else { + return AjaxResult.error("创建退料任务失败,或退料明细为空"); + } + } + } else { + return AjaxResult.error("创建任务失败,缺少数据"); + } + } else { + return AjaxResult.error("创建任务失败"); + } + } else { + return AjaxResult.error("创建任务失败"); + } + } catch (Exception e) { + return AjaxResult.error("创建任务失败," + e.getCause().toString() + "," + e.getMessage()); + } + // 重庆无需审批,创建成功后自动调用审核通过service + // backApplyService.audit(bean); + + return AjaxResult.success("退料任务创建成功"); + } + + @Log(title = "退料申请提交", businessType = BusinessType.INSERT) @PostMapping("/submitRefuseBackApply") public AjaxResult submitRefuseBackApply(@RequestBody BackApplyInfo bean) { diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java index 519f70ff..972e0f06 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/mapper/BackApplyMapper.java @@ -1,7 +1,6 @@ package com.bonus.sgzb.material.mapper; import com.bonus.sgzb.material.domain.BackApplyInfo; -import com.bonus.sgzb.material.domain.TmTask; import com.bonus.sgzb.material.domain.TypeTreeNode; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -68,6 +67,8 @@ public interface BackApplyMapper { */ int upload(BackApplyInfo bean); + int uploadByCq(BackApplyInfo bean); + /** * 查询 * @param bean diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java index 672bc87e..b3f2794d 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/BackApplyService.java @@ -1,9 +1,7 @@ package com.bonus.sgzb.material.service; import com.bonus.sgzb.common.core.web.domain.AjaxResult; -import com.bonus.sgzb.material.domain.AgreementInfo; import com.bonus.sgzb.material.domain.BackApplyInfo; -import com.bonus.sgzb.material.domain.LeaseApplyInfo; import java.util.List; @@ -65,6 +63,9 @@ public interface BackApplyService { */ int upload(BackApplyInfo bean); + + int uploadByCq(BackApplyInfo bean); + /** * 退料申请详情 * @param bean diff --git a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java index c015ce30..1779a02e 100644 --- a/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java +++ b/sgzb-modules/sgzb-material/src/main/java/com/bonus/sgzb/material/service/impl/BackApplyServiceImpl.java @@ -6,7 +6,6 @@ import com.bonus.sgzb.common.core.utils.StringUtils; import com.bonus.sgzb.common.core.web.domain.AjaxResult; import com.bonus.sgzb.common.security.utils.SecurityUtils; import com.bonus.sgzb.material.domain.BackApplyInfo; -import com.bonus.sgzb.material.domain.TmTask; import com.bonus.sgzb.material.domain.TypeTreeNode; import com.bonus.sgzb.material.mapper.BackApplyMapper; import com.bonus.sgzb.material.mapper.TaskMapper; @@ -124,6 +123,11 @@ public class BackApplyServiceImpl implements BackApplyService { return backApplyMapper.upload(bean); } + @Override + public int uploadByCq(BackApplyInfo bean) { + return backApplyMapper.uploadByCq(bean); + } + @Override public List getView(BackApplyInfo bean) { Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); @@ -189,35 +193,54 @@ public class BackApplyServiceImpl implements BackApplyService { @Override public AjaxResult audit(BackApplyInfo bean) { - Set roles = SecurityUtils.getLoginUser().getRoles(); - Long userid = SecurityUtils.getLoginUser().getUserid(); - Long companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); + Set roles = null; + Long userid = null; + Long companyId = null; + try { + roles = SecurityUtils.getLoginUser().getRoles(); + userid = SecurityUtils.getLoginUser().getUserid(); + companyId = SecurityUtils.getLoginUser().getSysUser().getCompanyId(); + } catch (NullPointerException e) { + e.printStackTrace(); + return AjaxResult.error("获取用户信息失败:{}", e); + } catch (Exception e) { + e.printStackTrace(); + } int num = 0; if (!StringUtils.isEmpty(bean.getIds())) { String[] ids = bean.getIds().split(","); - for (int i = 0; i < ids.length; i++) { - String id = ids[i]; + for (String id : ids) { bean.setId(Long.valueOf(id)); - if (roles.contains("admin")) { - bean.setCreateBy(userid.toString()); + if (roles != null && roles.contains("admin")) { + if (userid != null) { + bean.setCreateBy(userid.toString()); + } bean.setStatus("1"); int re = backApplyMapper.audit(bean); if (re < 1) { return AjaxResult.error("审核失败"); } } - if (roles.contains("jjfgs")) { - bean.setCompanyId(companyId.toString()); - bean.setCreateBy(userid.toString()); + if (roles != null && roles.contains("jjfgs")) { + if (companyId != null) { + bean.setCompanyId(companyId.toString()); + } + if (userid != null) { + bean.setCreateBy(userid.toString()); + } bean.setStatus("1"); int re = backApplyMapper.audit(bean); if (re < 1) { return AjaxResult.error("审核失败"); } } - if (roles.contains("tsfgs")) { - bean.setCompanyId(companyId.toString()); - bean.setCreateBy(userid.toString()); + if (roles != null && roles.contains("tsfgs")) { + if (companyId != null) { + bean.setCompanyId(companyId.toString()); + } + if (userid != null) { + bean.setCreateBy(userid.toString()); + } bean.setStatus("3"); int re = backApplyMapper.audit(bean); if (re < 1) { diff --git a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml index 425c48f5..d727237e 100644 --- a/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml +++ b/sgzb-modules/sgzb-material/src/main/resources/mapper/material/BackApplyMapper.xml @@ -142,6 +142,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" company_id, + + status, + create_time ) values ( @@ -183,6 +186,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{companyId}, + + #{status}, + NOW() ) @@ -203,9 +209,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" create_by, - - update_by, - update_time, remark, @@ -229,6 +232,54 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{createBy}, + NOW(), + + #{remark}, + + + #{companyId}, + + NOW() + ) + + + + + insert into back_apply_details + ( + + parent_id, + + + type_id, + + + pre_num,audit_num, + + status, + + create_by, + + update_time, + + remark, + + + company_id, + + create_time + ) + values ( + + #{id}, + + + #{typeId}, + + + #{num},#{num}, + + '0', #{createBy},