SpmkServiceImpl.java 7.6 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
import com.alibaba.fastjson.JSONArray;
16 17 18 19 20 21 22
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;
23
import cn.hutool.core.util.ObjectUtil;
24 25
import cn.timer.api.config.annotation.UserBean;
import cn.timer.api.controller.zzgl.service.ZzglBmgwMService;
26
import cn.timer.api.dto.spmk.SpmkApproveDetailDto;
27

28 29 30

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

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

	@Autowired
	private SpmkApproveDetailSummaryMapper spmkApproveDetailSummaryMapper;

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

49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
	/**
	 * 根据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()
74
						.eq(SpmkApprovalTemplate::getApprovalTemplateGId, listAtg.get(i).getId()).eq(SpmkApprovalTemplate::getIsOpen, '1').orderByAsc(SpmkApprovalTemplate::getId));
75 76 77 78 79 80 81 82 83 84 85 86 87 88
				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;
	}

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

149

150 151 152 153 154 155 156
	@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);
	}

157 158 159

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

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 199
			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 {
200
								spmkApproveDetailSummary.insertOrUpdate();
201 202 203 204 205 206

							}
						}
					}
				}
			});
207

208
		     return "成功";
209
	}
210

211
}