SpmkServiceImpl.java 7.51 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 95
		//SpmkApproveDetail ad = spmkApproveDetailMapper.selectOne(new QueryWrapper<SpmkApproveDetail>().lambda().eq(SpmkApproveDetail::getApproveSummaryId, asId));
		SpmkApproveDetailSummary ad = spmkApproveDetailSummaryMapper.selectOne(new QueryWrapper<SpmkApproveDetailSummary>().lambda().eq(SpmkApproveDetailSummary::getApproveSummaryId, asId));
ilal committed
96 97
		SpmkApproveSummary sum = null;
		if(ad != null) {
ilal committed
98
			sum = SpmkApproveSummary.builder().build().selectOne(new QueryWrapper<SpmkApproveSummary>().lambda().select(SpmkApproveSummary::getId,SpmkApproveSummary::getEmpNum,SpmkApproveSummary::getSts,SpmkApproveSummary::getCreateTime)
ilal committed
99
					.eq(SpmkApproveSummary::getId, ad.getApproveSummaryId()));
ilal committed
100 101
		}
		
102 103 104 105 106
		SpmkApproveDetailDto adD = SpmkApproveDetailDto.builder().build();
		if (ad == null) {
			return null;
		}
		List<SpmkApproveExecuteRecord> listAer = spmkApproveExecuteRecordMapper.selectListByAsId(asId);
107
		BeanUtil.copyProperties(ad, adD, "requestData","froms","router","flowChildren","spmkApproveExecuteRecord");
108 109 110 111 112 113 114 115 116 117
		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) {
118
			adD.setFlowChildren(jsonObject.parseArray(ad.getFlowChildren(), FlowChildren.class));
119
		}
120
		adD.setApproveExecuteRecord(listAer);
ilal committed
121 122 123
		if(sum != null) {
			adD.setEmpNum(sum.getEmpNum());
			adD.setSts(sum.getSts());
ilal committed
124
			adD.setLaunchTime(sum.getCreateTime());
ilal committed
125 126
			SpmkExecutor exe= null;
			
yuquan.zhu committed
127
			SpmkApproveExecuteRecord exere = SpmkApproveExecuteRecord.builder().build()
ilal committed
128 129
					.selectOne(new QueryWrapper<SpmkApproveExecuteRecord>().lambda().select(SpmkApproveExecuteRecord::getId).eq(SpmkApproveExecuteRecord::getApproveSummaryId , sum.getId())
							.eq(SpmkApproveExecuteRecord::getSts, 1));
ilal committed
130
			if(exere != null) {
ilal committed
131
				exe = SpmkExecutor.builder().build().selectOne(new QueryWrapper<SpmkExecutor>().lambda().eq(SpmkExecutor::getApproveExecuteRecordId, exere.getId()).orderByDesc(SpmkExecutor::getId));
ilal committed
132 133 134 135
			}
			
			if(exe != null) {
				adD.setExecuteEmpNum(exe.getEmpNum());
ilal committed
136
				adD.setExecuteSts(exe.getSts());
ilal committed
137 138
				adD.setExeid(exe.getId());
				adD.setExereid(exere.getId());
ilal committed
139
			}
ilal committed
140
		}
ilal committed
141
		
142 143 144
		return adD;
	}

145

146 147 148 149 150 151 152
	@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);
	}

153 154 155

	/**
	 * 审核汇总详情数据转换
156
	 * @param
157 158
	 */
	@Override
159 160
	public String addApproveDetail() {

161 162 163 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
			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 {
196
								spmkApproveDetailSummary.insertOrUpdate();
197 198 199 200 201 202

							}
						}
					}
				}
			});
203

204
		     return "成功";
205
	}
206

207
}