SpmkServiceImpl.java 7.56 KB
Newer Older
1 2 3
package cn.timer.api.controller.spmk.service;

import java.util.ArrayList;
4
import java.util.Arrays;
5 6
import java.util.List;

7 8 9 10 11 12 13 14

import cn.hutool.json.JSONObject;
import cn.timer.api.bean.spmk.*;
import cn.timer.api.dao.spmk.*;

import cn.timer.api.dto.spmk.FlowChildren;
import cn.timer.api.dto.spmk.Router;
import com.alibaba.fastjson.JSON;
15 16 17 18 19 20 21
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.lang.Console;
22
import cn.hutool.core.util.ObjectUtil;
23 24
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
25
import cn.timer.api.dto.spmk.SpmkApproveDetailDto;
26

27 28 29

@Service
public class SpmkServiceImpl implements SpmkService{
30 31 32
	
	@Autowired
	private ZzglBmgwMService zzglBmgwMService;
33 34

	@Autowired
35 36 37
	private SpmkApproveDetailMapper spmkApproveDetailMapper;
	
	@Autowired
38 39 40
	private SpmkApprovalGMapper spmkApprovalGMapper;
	
	@Autowired
41
	private SpmkApproveExecuteRecordMapper spmkApproveExecuteRecordMapper;
42 43 44 45 46 47

	@Autowired
	private SpmkApproveDetailSummaryMapper spmkApproveDetailSummaryMapper;

	private static com.alibaba.fastjson.JSONObject jsonObject = new  com.alibaba.fastjson.JSONObject();

48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
	/**
	 * 根据orgCode查数据库 审批模板 生成 自定义模板
	 * orgCode 企业id
	 */
	@Override
	public boolean createCustomApproval(Integer orgCode) {
		// TODO Auto-generated method stub
		List<SpmkApprovalTemplateG> listAtg = SpmkApprovalTemplateG.builder().build()
				.selectList(new QueryWrapper<SpmkApprovalTemplateG>().lambda().orderByAsc(SpmkApprovalTemplateG::getId));
		List<SpmkApprovalG> listAG = new ArrayList<SpmkApprovalG>(listAtg.size());
		for (SpmkApprovalTemplateG spmkApprovalTemplateG : listAtg) {
			SpmkApprovalG saG = SpmkApprovalG.builder().build();
			BeanUtil.copyProperties(spmkApprovalTemplateG, saG, "id","update_time");
			saG.setOrgCode(orgCode);
			listAG.add(saG);
		}
		
		Console.log(listAG);
		SpmkCustomApproval sca = SpmkCustomApproval.builder().build();
		List<SpmkApprovalTemplate> listAt = new ArrayList<SpmkApprovalTemplate>();
		for (int i = 0,n = listAG.size(); i < n; i++) {
			boolean b = listAG.get(i).insert();
			if (b) {
				listAt = SpmkApprovalTemplate.builder().build().selectList(new QueryWrapper<SpmkApprovalTemplate>()
						.lambda()
73
						.eq(SpmkApprovalTemplate::getApprovalTemplateGId, listAtg.get(i).getId()).eq(SpmkApprovalTemplate::getIsOpen, '1').orderByAsc(SpmkApprovalTemplate::getId));
74 75 76 77 78 79 80 81 82 83 84 85 86 87
				for (SpmkApprovalTemplate spmkApprovalTemplate : listAt) {
					BeanUtil.copyProperties(spmkApprovalTemplate, sca, "id","approval_template_g_id","update_time","create_time");
					sca.setOrgCode(orgCode);
					sca.setApprovalGId(listAG.get(i).getId());
					sca.setIsAllvisible(1);
					
					sca.insert();
				}
			}
		}
		
		return true;
	}

88 89 90 91 92 93
	/**
	 * 根据审批汇总id 获取 审批详情
	 */
	@Override
	public SpmkApproveDetailDto selectApproveDetailByAsId(Integer asId) {
		// TODO Auto-generated method stub
94
		//SpmkApproveDetail ad = spmkApproveDetailMapper.selectOne(new QueryWrapper<SpmkApproveDetail>().lambda().eq(SpmkApproveDetail::getApproveSummaryId, asId));
95
		//审批详情
96
		SpmkApproveDetailSummary ad = spmkApproveDetailSummaryMapper.selectOne(new QueryWrapper<SpmkApproveDetailSummary>().lambda().eq(SpmkApproveDetailSummary::getApproveSummaryId, asId));
97
		//审批汇总
ilal committed
98 99
		SpmkApproveSummary sum = null;
		if(ad != null) {
ilal committed
100
			sum = SpmkApproveSummary.builder().build().selectOne(new QueryWrapper<SpmkApproveSummary>().lambda().select(SpmkApproveSummary::getId,SpmkApproveSummary::getEmpNum,SpmkApproveSummary::getSts,SpmkApproveSummary::getCreateTime)
ilal committed
101
					.eq(SpmkApproveSummary::getId, ad.getApproveSummaryId()));
ilal committed
102 103
		}
		
104 105 106 107
		SpmkApproveDetailDto adD = SpmkApproveDetailDto.builder().build();
		if (ad == null) {
			return null;
		}
108
		//审批操作记录
109
		List<SpmkApproveExecuteRecord> listAer = spmkApproveExecuteRecordMapper.selectListByAsId(asId);
110
		BeanUtil.copyProperties(ad, adD, "requestData","froms","router","flowChildren","spmkApproveExecuteRecord");
111 112 113 114 115 116 117 118 119 120
		if(ad.getRequestData() !=null) {
			adD.setRequestData(jsonObject.parseObject(ad.getRequestData(), JSONObject.class));
		}
		if(ad.getFroms()!=null) {
			adD.setFroms(jsonObject.parseArray(ad.getFroms(), JSONObject.class));
	}
		if(ad.getFlowChildren() !=null) {
			adD.setRouter(jsonObject.parseObject(ad.getRouter(), Router.class));
		}
		if(ad.getFlowChildren()!=null) {
121
			adD.setFlowChildren(jsonObject.parseArray(ad.getFlowChildren(), FlowChildren.class));
122
		}
123
		adD.setApproveExecuteRecord(listAer);
ilal committed
124 125 126
		if(sum != null) {
			adD.setEmpNum(sum.getEmpNum());
			adD.setSts(sum.getSts());
ilal committed
127
			adD.setLaunchTime(sum.getCreateTime());
ilal committed
128 129
			SpmkExecutor exe= null;
			
yuquan.zhu committed
130
			SpmkApproveExecuteRecord exere = SpmkApproveExecuteRecord.builder().build()
ilal committed
131 132
					.selectOne(new QueryWrapper<SpmkApproveExecuteRecord>().lambda().select(SpmkApproveExecuteRecord::getId).eq(SpmkApproveExecuteRecord::getApproveSummaryId , sum.getId())
							.eq(SpmkApproveExecuteRecord::getSts, 1));
ilal committed
133
			if(exere != null) {
ilal committed
134
				exe = SpmkExecutor.builder().build().selectOne(new QueryWrapper<SpmkExecutor>().lambda().eq(SpmkExecutor::getApproveExecuteRecordId, exere.getId()).orderByDesc(SpmkExecutor::getId));
ilal committed
135 136 137 138
			}
			
			if(exe != null) {
				adD.setExecuteEmpNum(exe.getEmpNum());
ilal committed
139
				adD.setExecuteSts(exe.getSts());
ilal committed
140 141
				adD.setExeid(exe.getId());
				adD.setExereid(exere.getId());
ilal committed
142
			}
ilal committed
143
		}
ilal committed
144
		
145 146 147
		return adD;
	}

148

149 150 151 152 153 154 155
	@Override
	public List<SpmkApprovalG> selectListAg(UserBean userBean) {
		// TODO Auto-generated method stub
		List<Integer> depts = zzglBmgwMService.empNumupGetDepts(userBean.getOrgCode(), userBean.getEmpNum());
		return spmkApprovalGMapper.selectListAgInCa(userBean.getOrgCode(), userBean.getEmpNum(), depts);
	}

156 157 158

	/**
	 * 审核汇总详情数据转换
159
	 * @param
160 161
	 */
	@Override
162 163
	public String addApproveDetail() {

164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198
			QueryWrapper queryWrapper = new QueryWrapper<SpmkApproveDetail>().select("id,approve_summary_id", "name", "department_name", "request_data", "froms", "router", "flow_children");
			List<SpmkApproveDetail> spmkApproveDetails = spmkApproveDetailMapper.selectList(queryWrapper);
			spmkApproveDetails.forEach(t -> {
				SpmkApproveDetailSummary spmkApproveDetailSummary = new SpmkApproveDetailSummary();
				spmkApproveDetailSummary.setApproveSummaryId(t.getApproveSummaryId());
				spmkApproveDetailSummary.setDepartmentName(t.getDepartmentName());
				spmkApproveDetailSummary.setName(t.getName());
				try {
					Object deserialize2 = ObjectUtil.deserialize(t.getFlowChildren());
					String flowChidren = JSON.toJSONString(deserialize2);
					spmkApproveDetailSummary.setFlowChildren(flowChidren);
				} catch (Exception e) {
					e.printStackTrace();
				} finally {
					try {
						Object deserialize1 = ObjectUtil.deserialize(t.getFroms());
						String froms = JSON.toJSONString(deserialize1);
						spmkApproveDetailSummary.setFroms(froms);
					} catch (Exception e) {
						e.printStackTrace();
					} finally {
						try {
							Object deserialize = ObjectUtil.deserialize(t.getRequestData());
							String s = JSON.toJSONString(deserialize);
							spmkApproveDetailSummary.setRequestData(s);
						} catch (Exception e) {
							e.printStackTrace();
						} finally {
							try {
								Router router = ObjectUtil.deserialize(t.getRouter());
								String s = JSON.toJSONString(router);
								spmkApproveDetailSummary.setRouter(s);
							} catch (Exception e) {
								e.printStackTrace();
							} finally {
199
								spmkApproveDetailSummary.insertOrUpdate();
200 201 202 203 204 205

							}
						}
					}
				}
			});
206

207
		     return "成功";
208
	}
209

210
}