八项作业高处作业流程

pull/4/head
chenxinying 2024-01-31 11:28:04 +08:00
parent e7e3ed29e9
commit 546f680ff1
8 changed files with 1282 additions and 0 deletions

View File

@ -0,0 +1,26 @@
package com.zcloud.mapper.datasource.eightwork;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import java.util.List;
/**
* @author fangjiakai
* @date 2024/01/17 11:31
*/
public interface HighworkMapper {
PageData getCode(PageData pd);
PageData findById(PageData pd);
void save(PageData pd);
void delete(PageData pd);
void edit(PageData pd);
void editStep(PageData pd);
List<PageData> datalistPage(Page page);
List<PageData> listAllMeasures();
List<PageData> checkWorkCount(PageData pd);
List<PageData> getFlowList(PageData pd);
}

View File

@ -0,0 +1,37 @@
package com.zcloud.mapper.datasource.eightwork;
import com.zcloud.entity.PageData;
import java.util.List;
/**
* @author fangjiakai
* @date 2024/01/17 11:31
*/
public interface HighworkSignMapper {
/**
* @param pd
* @throws Exception
*/
void save(PageData pd);
void saveBatch(List<PageData> signers);
/**
* @param pd
* @throws Exception
*/
void edit(PageData pd);
/**ID
* @throws Exception
*/
List<PageData> listById(PageData pd);
List<PageData> listAll(PageData sign);
/**ID
* @throws Exception
*/
List<PageData> checkUnsigned(PageData sign);
}

View File

@ -0,0 +1,57 @@
package com.zcloud.mapper.datasource.eightwork;
import com.zcloud.entity.PageData;
import java.util.List;
/**
*
* luoxiaobao
* 2021-09-18
* www.zcloudchina.com
*/
public interface HighworkToMeasuresMapper {
/**
* @param pd
* @throws Exception
*/
void save(PageData pd);
void saveBatch(List<PageData> signers);
/**
* @param pd
* @throws Exception
*/
void delete(PageData pd);
/**
* @param pd
* @throws Exception
*/
void edit(PageData pd);
/**()
* @param pd
* @throws Exception
*/
List<PageData> listAll(PageData pd);
/**id
* @param pd
* @throws Exception
*/
PageData findById(PageData pd);
/**
* @param ArrayDATA_IDS
* @throws Exception
*/
void deleteAll(String[] ArrayDATA_IDS);
List<PageData> listAllMeasuresForSign(PageData pd);
List<PageData> listSignFinishMeasures(PageData pd);
}

View File

@ -0,0 +1,41 @@
package com.zcloud.service.eightwork;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
/**
* @author fangjiakai
* @date 2024/01/17 11:29
*/
public interface HighworkService {
void save(PageData pd)throws Exception;
void edit(PageData pd)throws Exception;
void delete(PageData pd)throws Exception;
List<PageData> list(Page page) throws Exception;
void nextStep(PageData pd, MultipartFile[] files) throws Exception;
PageData findById(PageData pd) throws Exception;
PageData listSignFinished(PageData pd) throws Exception;
PageData checkWorkCount(PageData pd);
//获取所有措施(bus_highwork_measures)
List<PageData> listAllMeasures() throws Exception;
//
// //获取需要签字的措施(bus_highworktomeasures)
List<PageData> listAllMeasuresForSign(PageData pd) throws Exception;
//
// //获取所有签字完成的措施(bus_highworktomeasures)
List<PageData> listSignFinishMeasures(PageData pd) throws Exception;
List<PageData> getFlowList(PageData pd)throws Exception;
}

View File

@ -0,0 +1,334 @@
package com.zcloud.service.eightwork.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.zcloud.entity.Page;
import com.zcloud.entity.PageData;
import com.zcloud.mapper.datasource.eightwork.*;
import com.zcloud.service.eightwork.HotworkService;
import com.zcloud.util.Const;
import com.zcloud.util.DateUtil;
import com.zcloud.util.Smb;
import com.zcloud.util.UuidUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import com.zcloud.service.eightwork.HighworkService;
import java.text.DecimalFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author fangjiakai
* @date 2024/01/17 11:30
*/
@Service
@Transactional //开启事物
public class HighworkServiceImpl implements HighworkService {
@Autowired
private HighworkMapper highworkMapper;
@Autowired
private EightWorkTaskFlowMapper eightWorkTaskFlowMapper;
@Autowired
private EightWorkFlowLogMapper eightWorkFlowLogMapper;
@Autowired
private HighworkSignMapper highworkSignMapper;
@Autowired
private HighworkToMeasuresMapper highworkToMeasuresMapper;
@Autowired
private com.zcloud.mapper.datasource.eightWork.EightWorkVideoManagerMapper eightworkvideomanagerMapper;
@Autowired
private Smb smb;
private final String primary_key = "HIGHWORK_ID";
private final String work_type = "HIGHWORK";
@Override
@Transactional
public void save(PageData pd) throws Exception {
PageData pd2 = new PageData();
Calendar calendar = Calendar.getInstance();
DecimalFormat dft=new DecimalFormat("00");
int year = calendar.get(Calendar.YEAR);
String month = dft.format(calendar.get(Calendar.MONTH) + 1);
String day = dft.format(calendar.get(Calendar.DAY_OF_MONTH));
pd2.put("CREATDATE",year + "-" + month + "-" + day);
pd2.put("CORPINFO_ID",pd.get("CORPINFO_ID"));
pd2 = highworkMapper.getCode(pd2); //根据ID读取
String code = "GC" + year + month + day + dft.format((Integer.parseInt(pd2.get("code").toString()) + 1));
pd.put("CHECK_NO", code);
pd.put(primary_key, UuidUtil.get32UUID()); //主键
pd.put("CREATTIME", DateUtil.date2Str(new Date())); //添加时间
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
pd.put("ISDELETE", "0"); //是否删除 1-是 0-否
highworkMapper.save(pd);
if (pd.get("APPLY_STATUS").equals("1")) {
PageData flow = getStep(pd.get("TASK_ID"),"1");
saveLog(pd,pd.getString("CREATOR"),"1");
saveNextSigner(pd,flow);
}
}
@Override
@Transactional
public void edit(PageData pd) throws Exception {
pd.put("OPERATTIME", DateUtil.date2Str(new Date())); //修改时间
highworkMapper.edit(pd);
if (pd.get("APPLY_STATUS").equals("1")) {
pd.put("STEP_ID", 1);
highworkMapper.editStep(pd);
PageData flow = getStep(pd.get("TASK_ID"),"1");
saveLog(pd,pd.getString("CREATOR"),"1");
saveNextSigner(pd,flow);
}
}
@Override
public void delete(PageData pd) throws Exception {
highworkMapper.delete(pd);
}
@Override
public List<PageData> list(Page page) throws Exception {
return highworkMapper.datalistPage(page);
}
/*
*
*/
@Override
@Transactional
public void nextStep(PageData pd, MultipartFile[] files) throws Exception {
PageData work = this.findById(pd);
work.putAll(pd);
List<String> filePaths = new ArrayList<>();
for (int i = 0; i < files.length; i++) {
//保存签名文件
String ffile = DateUtil.getDays();
String fileName = UuidUtil.get32UUID() + files[i].getOriginalFilename().substring(files[i].getOriginalFilename().lastIndexOf("."));
smb.sshSftp(files[i], fileName, Const.FILEPATHFILE + work.getString("CORPINFO_ID") + "/" + ffile);
filePaths.add(Const.FILEPATHFILE + work.getString("CORPINFO_ID") + "/" + ffile + "/" + fileName);
}
PageData flow = getStep(work.get("TASK_ID"), work.get("STEP_ID"));
work.put("STEP_ID", flow.get("NEXT_STEP_ID"));
//保存签名信息
PageData sign = new PageData();
sign.put(primary_key, work.get(primary_key));
sign.put("STEP_ID", work.get("STEP_ID"));
sign.put("SIGN_USER_ID", work.get("USER_ID"));
sign.put("SIGN_TIME", work.getString("SIGNTIME"));
sign.put("SIGN_PATH", String.join(",",filePaths));
sign.put("DESCR", work.get("DESCR"));
highworkSignMapper.edit(sign);
if (work.get("MEASURES") != null && !work.get("MEASURES").equals("")) { //安全措施确认步骤
saveMeasures(work);
}
List<PageData> unsignedList = highworkSignMapper.checkUnsigned(sign);//当前步骤未签名人列表
if((unsignedList == null || unsignedList.size() == 0) && pd.getString("APPLY_STATUS").equals("1")){//如果没有未签人 则跳转下一步
highworkMapper.editStep(work);
PageData currentflow = getStep(work.get("TASK_ID"), work.get("STEP_ID"));
//保存日志
saveLog(work,work.getString("USER_ID"),"1");
if("99".equals(currentflow.getString("NEXT_STEP_ID"))){
eightworkvideomanagerMapper.editStatus(work);
return;
}
if (work.get("PREPARERS") != null && !work.get("PREPARERS").equals("")) { //如果是设置安全措施确认人步骤
savePreparers(work,currentflow);
}
saveNextSigner(work,currentflow);
}else if(pd.getString("APPLY_STATUS").equals("-1")){
//保存日志
saveLog(work,work.getString("USER_ID"),"-1");
eightworkvideomanagerMapper.editStatus(work);
work.put("STEP_ID",-1);
highworkMapper.editStep(work);
}
}
@Override
public PageData findById(PageData pd) throws Exception {
PageData pageData = highworkMapper.findById(pd);
return pageData;
}
@Override
public PageData listSignFinished(PageData pd) throws Exception {
Map<String,List<PageData>> rmap = new HashMap<>();
List<PageData> varList = highworkSignMapper.listAll(pd);
if (varList != null && !varList.isEmpty()) {
varList.stream().forEach(item -> {
PageData sign = new PageData();
sign.put("SIGN_PATH", item.getString("SIGN_PATH").split(","));
sign.put("SIGN_TIME", item.getString("SIGN_TIME").split(","));
sign.put("DESCR", item.getString("DESCR") != null ? item.getString("DESCR") : "无");
if(rmap.containsKey(item.getString("CODE"))){
rmap.get(item.getString("CODE")).add(sign);
}else{
List<PageData> signs = new ArrayList<>();
signs.add(sign);
rmap.put(item.getString("CODE"),signs);
}
});
}
PageData rpd = new PageData();
if (rmap != null && !rmap.isEmpty()) {
rpd.putAll(rmap);
}
return rpd;
}
@Override
public PageData checkWorkCount(PageData pd) {
PageData rpd = new PageData();
List<PageData> varList = highworkMapper.checkWorkCount(pd);
if (varList != null && !varList.isEmpty()) {
Map<String, String> newMap = varList.stream()
.collect(Collectors.toMap(map -> map.getString("CODE"), map -> map.getString("COUNT")));
rpd.putAll(newMap);
}
return rpd;
}
@Override
public List<PageData> listAllMeasures() throws Exception {
return highworkMapper.listAllMeasures();
}
@Override
public List<PageData> listAllMeasuresForSign(PageData pd) throws Exception {
return highworkToMeasuresMapper.listAllMeasuresForSign(pd);
}
@Override
public List<PageData> listSignFinishMeasures(PageData pd) throws Exception {
return highworkToMeasuresMapper.listSignFinishMeasures(pd);
}
@Override
public List<PageData> getFlowList(PageData pd) throws Exception {
pd=findById(pd);
return highworkMapper.getFlowList(pd);
}
private void saveNextSigner(PageData pd,PageData flow) throws Exception {
pd.put("STEP_ID",flow.get("NEXT_STEP_ID"));
if(pd.get(flow.get("NEXT_ACTOR_FIELD")) == null || pd.get(flow.get("NEXT_ACTOR_FIELD")).equals("")){
return;
}
//提前保存下一步签字人
List<PageData> signers = new ArrayList<>();
PageData signer = new PageData();
signer.put("HIGHWORK_SIGN_ID", UuidUtil.get32UUID()); // 主键
signer.put(primary_key, pd.get(primary_key));
signer.put("CORPINFO_ID", pd.get("CORPINFO_ID"));
signer.put("SIGN_USER_ID", pd.get(flow.get("NEXT_ACTOR_FIELD")));
signer.put("STEP_ID", flow.get("NEXT_STEP_ID"));
signers.add(signer);
highworkSignMapper.saveBatch(signers);
}
private void saveMeasures(PageData pd) {
List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("MEASURES").toString());
for (JSONObject json : list) {
PageData measure = new PageData();
measure.put("HIGHWORKTOMEASURES_ID",json.get("HIGHWORKTOMEASURES_ID"));
measure.put("STATUS", json.get("STATUS"));
measure.put("SIGN_PATH", json.get("SIGN_PATH"));
measure.put("SIGN_TIME", json.get("SIGN_TIME"));
measure.put("IMG_PATH", json.get("IMG_PATH"));
highworkToMeasuresMapper.edit(measure);
}
}
private void savePreparers(PageData pd,PageData flow) {
List<PageData> signers = new ArrayList<>();
List<JSONObject> list = (List<JSONObject>) JSON.parse(pd.get("PREPARERS").toString());
for (JSONObject json : list) {
PageData preparer = new PageData();
preparer.put("HIGHWORKTOMEASURES_ID", UuidUtil.get32UUID()); // 主键
preparer.put("HIGHWORK_ID", pd.get("HIGHWORK_ID"));
preparer.put("BUS_HIGHWORK_MEASURES_ID", json.get("BUS_HIGHWORK_MEASURES_ID"));
preparer.put("CONFIRM_ID", json.get("USER_ID"));
signers.add(preparer);
}
if(signers.size() > 0){
highworkToMeasuresMapper.saveBatch(signers);
//获取所有需要签名人
List<String> fieldList = signers.stream()
.map(map -> map.getString("CONFIRM_ID"))
.collect(Collectors.toList());
Set<String > fieldSet = new HashSet<>(fieldList); //去重
List<String> uniqueList = new ArrayList<>(fieldSet);
List<PageData> nextSigners = new ArrayList<>();
uniqueList.forEach(item -> { // 保存下一步需要签名的人
PageData signer = new PageData();
signer.put("HIGHWORK_SIGN_ID", UuidUtil.get32UUID()); // 主键
signer.put(primary_key, pd.get(primary_key));
signer.put("CORPINFO_ID", pd.get("CORPINFO_ID"));
signer.put("SIGN_USER_ID", item);
signer.put("STEP_ID", flow.get("NEXT_STEP_ID"));
nextSigners.add(signer);
});
highworkSignMapper.saveBatch(nextSigners);
}
}
private PageData getStep(Object TASK_ID, Object STEP_ID) throws Exception {
PageData flow = new PageData();
flow.put("TASK_ID", TASK_ID);
flow.put("STEP_ID", STEP_ID);
flow = eightWorkTaskFlowMapper.getStep(flow);
return flow;
}
private void saveLog(PageData pd,String act_user,String status) throws Exception {
PageData log = new PageData();
log.put("LOG_ID", UuidUtil.get32UUID());
log.put("WORK_ID", pd.get(primary_key));
log.put("TASK_ID", pd.get("TASK_ID"));
log.put("STEP_ID", pd.get("STEP_ID"));
log.put("CORPINFO_ID", pd.get("CORPINFO_ID"));
log.put("CHECK_NO", pd.get("CHECK_NO"));
log.put("ACT_USER", act_user);
log.put("ACT_TIME", DateUtil.date2Str(new Date()));
log.put("STATUS", status);
log.put("WORK_TYPE",work_type);
eightWorkFlowLogMapper.save(log);
}
// private void saveNext(PageData pd,PageData flow) throws Exception {
// PageData log = new PageData();
// log.put("LOG_ID", UuidUtil.get32UUID());
// log.put("WORK_ID", pd.get(primary_key));
// log.put("TASK_ID", pd.get("TASK_ID"));
// log.put("STEP_ID", flow.get("NEXT_STEP_ID"));
// log.put("STATUS", "0");
// eightWorkFlowLogMapper.save(log);
// }
}

View File

@ -0,0 +1,491 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.datasource.eightwork.HighworkMapper">
<!--表名 -->
<sql id="tableName">
BUS_HIGHWORK
</sql>
<!-- 字段 -->
<sql id="Field">
f.HIGHWORK_ID,
f.CORPINFO_ID,
f.TASK_ID,
f.STEP_ID,
f.ISDELETE,
f.CREATTIME,
f.CREATOR,
f.OPERATTIME,
f.OPERATOR,
f.CHECK_NO,
f.WORK_CONTENT,
f.WORK_PLACE,
f.APPLY_DEPARTMENT_ID,
f.APPLY_USER_ID,
f.WORK_LEVEL,
f.WORK_START_DATE,
f.WORK_END_DATE,
f.SPECIAL_WORK,
f.RISK_IDENTIFICATION,
f.CONFESS_DEPARTMENT_ID,
f.CONFESS_USER_ID,
f.ACCEPT_CONFESS_DEPARTMENT_ID,
f.ACCEPT_CONFESS_USER_ID,
f.GUARDIAN_DEPARTMENT_ID,
f.GUARDIAN_USER_ID,
f.CONFIRM_DEPARTMENT_ID,
f.CONFIRM_USER_ID,
f.LEADER_DEPARTMENT_ID,
f.LEADER_USER_ID,
f.AUDIT_DEPARTMENT_ID,
f.AUDIT_USER_ID,
f.APPROVE_DEPARTMENT_ID,
f.APPROVE_USER_ID,
f.ACCEPT_DEPARTMENT_ID,
f.ACCEPT_USER_ID,
f.WORK_START_DEPARTMENT_ID,
f.WORK_START_USER_ID,
f.WORK_END_DEPARTMENT_ID,
f.WORK_END_USER_ID,
f.ACCEPT_TIME,
f.PLS_ID,
f.PLS_NAME,
f.WORK_POSITION,
f.WORK_USER_DEPARTMENT_ID,
f.WORK_USER_ID,
f.WORK_HIGH
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
HIGHWORK_ID,
CORPINFO_ID,
TASK_ID,
STEP_ID,
ISDELETE,
CREATTIME,
CREATOR,
OPERATTIME,
OPERATOR,
CHECK_NO,
WORK_CONTENT,
WORK_PLACE,
APPLY_DEPARTMENT_ID,
APPLY_USER_ID,
WORK_LEVEL,
WORK_START_DATE,
WORK_END_DATE,
SPECIAL_WORK,
RISK_IDENTIFICATION,
CONFESS_DEPARTMENT_ID,
CONFESS_USER_ID,
ACCEPT_CONFESS_DEPARTMENT_ID,
ACCEPT_CONFESS_USER_ID,
GUARDIAN_DEPARTMENT_ID,
GUARDIAN_USER_ID,
CONFIRM_DEPARTMENT_ID,
CONFIRM_USER_ID,
LEADER_DEPARTMENT_ID,
LEADER_USER_ID,
AUDIT_DEPARTMENT_ID,
AUDIT_USER_ID,
APPROVE_DEPARTMENT_ID,
APPROVE_USER_ID,
ACCEPT_DEPARTMENT_ID,
ACCEPT_USER_ID,
WORK_START_DEPARTMENT_ID,
WORK_START_USER_ID,
WORK_END_DEPARTMENT_ID,
WORK_END_USER_ID,
ACCEPT_TIME,
PLS_ID,
PLS_NAME,
WORK_POSITION,
WORK_USER_DEPARTMENT_ID,
WORK_USER_ID,
WORK_HIGH
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{HIGHWORK_ID},
#{CORPINFO_ID},
#{TASK_ID},
#{STEP_ID},
#{ISDELETE},
#{CREATTIME},
#{CREATOR},
#{OPERATTIME},
#{OPERATOR},
#{CHECK_NO},
#{WORK_CONTENT},
#{WORK_PLACE},
#{APPLY_DEPARTMENT_ID},
#{APPLY_USER_ID},
#{WORK_LEVEL},
#{WORK_START_DATE},
#{WORK_END_DATE},
#{SPECIAL_WORK},
#{RISK_IDENTIFICATION},
#{CONFESS_DEPARTMENT_ID},
#{CONFESS_USER_ID},
#{ACCEPT_CONFESS_DEPARTMENT_ID},
#{ACCEPT_CONFESS_USER_ID},
#{GUARDIAN_DEPARTMENT_ID},
#{GUARDIAN_USER_ID},
#{CONFIRM_DEPARTMENT_ID},
#{CONFIRM_USER_ID},
#{LEADER_DEPARTMENT_ID},
#{LEADER_USER_ID},
#{AUDIT_DEPARTMENT_ID},
#{AUDIT_USER_ID},
#{APPROVE_DEPARTMENT_ID},
#{APPROVE_USER_ID},
#{ACCEPT_DEPARTMENT_ID},
#{ACCEPT_USER_ID},
#{WORK_START_DEPARTMENT_ID},
#{WORK_START_USER_ID},
#{WORK_END_DEPARTMENT_ID},
#{WORK_END_USER_ID},
#{ACCEPT_TIME},
#{PLS_ID},
#{PLS_NAME},
#{WORK_POSITION},
#{WORK_USER_DEPARTMENT_ID},
#{WORK_USER_ID},
#{WORK_HIGH}
</sql>
<!-- 获取编码 -->
<select id="getCode" parameterType="pd" resultType="pd">
SELECT
COUNT(1) as code
FROM <include refid="tableName"></include> f
WHERE f.CORPINFO_ID = #{CORPINFO_ID}
and f.CREATTIME LIKE CONCAT(#{CREATDATE},'%')
</select>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
HIGHWORK_ID = #{HIGHWORK_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
HIGHWORK_ID = #{HIGHWORK_ID},
CORPINFO_ID = #{CORPINFO_ID},
TASK_ID = #{TASK_ID},
OPERATTIME = #{OPERATTIME},
OPERATOR = #{OPERATOR},
CHECK_NO = #{CHECK_NO},
WORK_CONTENT = #{WORK_CONTENT},
WORK_PLACE = #{WORK_PLACE},
APPLY_DEPARTMENT_ID = #{APPLY_DEPARTMENT_ID},
APPLY_USER_ID = #{APPLY_USER_ID},
WORK_LEVEL = #{WORK_LEVEL},
WORK_START_DATE = #{WORK_START_DATE},
WORK_END_DATE = #{WORK_END_DATE},
SPECIAL_WORK = #{SPECIAL_WORK},
RISK_IDENTIFICATION = #{RISK_IDENTIFICATION},
CONFESS_DEPARTMENT_ID = #{CONFESS_DEPARTMENT_ID},
CONFESS_USER_ID = #{CONFESS_USER_ID},
ACCEPT_CONFESS_DEPARTMENT_ID = #{ACCEPT_CONFESS_DEPARTMENT_ID},
ACCEPT_CONFESS_USER_ID = #{ACCEPT_CONFESS_USER_ID},
GUARDIAN_DEPARTMENT_ID = #{GUARDIAN_DEPARTMENT_ID},
GUARDIAN_USER_ID = #{GUARDIAN_USER_ID},
CONFIRM_DEPARTMENT_ID = #{CONFIRM_DEPARTMENT_ID},
CONFIRM_USER_ID = #{CONFIRM_USER_ID},
LEADER_DEPARTMENT_ID = #{LEADER_DEPARTMENT_ID},
LEADER_USER_ID = #{LEADER_USER_ID},
AUDIT_DEPARTMENT_ID = #{AUDIT_DEPARTMENT_ID},
AUDIT_USER_ID = #{AUDIT_USER_ID},
APPROVE_DEPARTMENT_ID = #{APPROVE_DEPARTMENT_ID},
APPROVE_USER_ID = #{APPROVE_USER_ID},
ACCEPT_DEPARTMENT_ID = #{ACCEPT_DEPARTMENT_ID},
ACCEPT_USER_ID = #{ACCEPT_USER_ID},
WORK_START_DEPARTMENT_ID=#{WORK_START_DEPARTMENT_ID},
WORK_START_USER_ID=#{WORK_START_USER_ID},
WORK_END_DEPARTMENT_ID=#{WORK_END_DEPARTMENT_ID},
WORK_END_USER_ID=#{WORK_END_USER_ID},
ACCEPT_TIME = #{ACCEPT_TIME},
PLS_ID = #{PLS_ID},
PLS_NAME = #{PLS_NAME},
WORK_POSITION =#{WORK_POSITION},
WORK_USER_DEPARTMENT_ID = #{WORK_USER_DEPARTMENT_ID},
WORK_USER_ID = #{WORK_USER_ID},
WORK_HIGH = #{WORK_HIGH}
where
HIGHWORK_ID = #{HIGHWORK_ID}
</update>
<select id="findById" parameterType="pd" resultType="pd">
SELECT
<include refid="Field"></include>,
appo.`NAME` as APPLY_DEPARTMENT_NAME,
appu.`NAME` as APPLY_USER_NAME,
f.WORK_LEVEL,
f.WORK_START_DATE,
f.WORK_END_DATE,
f.SPECIAL_WORK,
f.RISK_IDENTIFICATION,
cono.`NAME` as CONFESS_DEPARTMENT_NAME,
conu.`NAME` as CONFESS_USER_NAME,
acco.`NAME` as ACCEPT_CONFESS_DEPARTMENT_NAME,
accu.`NAME` as ACCEPT_CONFESS_USER_NAME,
guao.`NAME` as GUARDIAN_DEPARTMENT_NAME,
guau.`NAME` as GUARDIAN_USER_NAME,
confo.`NAME` as CONFIRM_DEPARTMENT_NAME,
confu.`NAME` as CONFIRM_USER_NAME,
leao.`NAME` as LEADER_DEPARTMENT_NAME,
leau.`NAME` as LEADER_USER_NAME,
audo.`NAME` as AUDIT_DEPARTMENT_NAME,
audu.`NAME` as AUDIT_USER_NAME,
appro.`NAME` as APPROVE_DEPARTMENT_NAME,
appru.`NAME` as APPROVE_USER_NAME,
acceo.`NAME` as ACCEPT_DEPARTMENT_NAME,
acceu.`NAME` as ACCEPT_USER_NAME,
stao.`NAME` as WORK_START_DEPARTMENT_NAME,
stau.`NAME` as WORK_START_USER_NAME,
endo.`NAME` as WORK_END_DEPARTMENT_NAME,
endu.`NAME` as WORK_END_USER_NAME,
confirm.SIGN_TIME as CONFIRM_USER_SIGNER_TIME,
confirm.SIGN_PATH as CONFIRM_USER_SIGNER_PATH,
IFNULL(confirm.DESCR,'无') as CONFIRM_CONTENT,
leader.SIGN_TIME as LEADER_USER_SIGNER_TIME,
leader.SIGN_PATH as LEADER_USER_SIGNER_PATH,
IFNULL(leader.DESCR,'无') as LEADER_CONTENT,
audit.SIGN_TIME as AUDIT_USER_SIGNER_TIME,
audit.SIGN_PATH as AUDIT_USER_SIGNER_PATH,
IFNULL(audit.DESCR,'无') as AUDIT_CONTENT,
approve.SIGN_TIME as APPROVE_USER_SIGNER_TIME,
approve.SIGN_PATH as APPROVE_USER_SIGNER_PATH,
IFNULL(approve.DESCR,'无') as APPROVE_CONTENT,
start.SIGN_TIME as WORK_START_USER_SIGNER_TIME,
start.SIGN_PATH as WORK_START_USER_SIGNER_PATH,
end.SIGN_TIME as WORK_END_USER_SIGNER_TIME,
end.SIGN_PATH as WORK_END_USER_SIGNER_PATH,
accept.SIGN_TIME as ACCEPT_USER_SIGNER_TIME,
accept.SIGN_PATH as ACCEPT_USER_SIGNER_PATH,
IFNULL(accept.DESCR,'无') as ACCEPT_CONTENT
FROM
bus_highwork AS f
left join oa_department as appo on f.APPLY_DEPARTMENT_ID = appo.DEPARTMENT_ID
left join sys_user as appu on f.APPLY_USER_ID = appu.USER_ID
left join oa_department as cono on f.CONFESS_DEPARTMENT_ID = cono.DEPARTMENT_ID
left join sys_user as conu on f.CONFESS_USER_ID = conu.USER_ID
left join oa_department as acco on f.ACCEPT_CONFESS_DEPARTMENT_ID = acco.DEPARTMENT_ID
left join sys_user as accu on f.ACCEPT_CONFESS_USER_ID = accu.USER_ID
left join oa_department as guao on f.GUARDIAN_DEPARTMENT_ID = guao.DEPARTMENT_ID
left join sys_user as guau on f.GUARDIAN_USER_ID = guau.USER_ID
left join oa_department as confo on f.CONFIRM_DEPARTMENT_ID = confo.DEPARTMENT_ID
left join sys_user as confu on f.CONFIRM_USER_ID = confu.USER_ID
left join oa_department as leao on f.LEADER_DEPARTMENT_ID = leao.DEPARTMENT_ID
left join sys_user as leau on f.LEADER_USER_ID = leau.USER_ID
left join oa_department as audo on f.AUDIT_DEPARTMENT_ID = audo.DEPARTMENT_ID
left join sys_user as audu on f.AUDIT_USER_ID = audu.USER_ID
left join oa_department as appro on f.APPROVE_DEPARTMENT_ID = appro.DEPARTMENT_ID
left join sys_user as appru on f.APPROVE_USER_ID = appru.USER_ID
left join oa_department as acceo on f.ACCEPT_DEPARTMENT_ID = acceo.DEPARTMENT_ID
left join sys_user as acceu on f.ACCEPT_USER_ID = acceu.USER_ID
left join oa_department as stao on f.WORK_START_DEPARTMENT_ID = stao.DEPARTMENT_ID
left join sys_user as stau on f.WORK_START_USER_ID = stau.USER_ID
left join oa_department as endo on f.WORK_END_DEPARTMENT_ID = endo.DEPARTMENT_ID
left join sys_user as endu on f.WORK_END_USER_ID = endu.USER_ID
left join bus_highwork_sign confirm on confirm.HIGHWORK_ID = f.HIGHWORK_ID and confirm.STEP_ID = '8'
left join bus_highwork_sign leader on leader.HIGHWORK_ID = f.HIGHWORK_ID and leader.STEP_ID = '9'
left join bus_highwork_sign audit on audit.HIGHWORK_ID = f.HIGHWORK_ID and audit.STEP_ID = '10'
left join bus_highwork_sign approve on approve.HIGHWORK_ID = f.HIGHWORK_ID and approve.STEP_ID = '11'
left join bus_highwork_sign start on start.HIGHWORK_ID = f.HIGHWORK_ID and start.STEP_ID = '13'
left join bus_highwork_sign end on end.HIGHWORK_ID = f.HIGHWORK_ID and end.STEP_ID = '14'
left join bus_highwork_sign accept on accept.HIGHWORK_ID = f.HIGHWORK_ID and accept.STEP_ID = '15'
WHERE f.HIGHWORK_ID = #{HIGHWORK_ID}
</select>
<!-- 修改 -->
<update id="editStep" parameterType="pd">
update
<include refid="tableName"></include>
set
<if test="WORK_START_DATE != null and WORK_START_DATE != ''"><!-- 关键词检索 -->
WORK_START_DATE = #{WORK_START_DATE},
</if>
<if test="WORK_END_DATE != null and WORK_END_DATE != ''"><!-- 关键词检索 -->
WORK_END_DATE = #{WORK_END_DATE},
</if>
<if test="ACCEPT_TIME != null and ACCEPT_TIME != ''"><!-- 关键词检索 -->
ACCEPT_TIME = #{ACCEPT_TIME},
</if>
STEP_ID = #{STEP_ID}
where
HIGHWORK_ID = #{HIGHWORK_ID}
</update>
<!-- 列表 -->
<select id="datalistPage" parameterType="page" resultType="pd">
select
<include refid="Field"></include>,
appo.`NAME` as APPLY_DEPARTMENT_NAME,
appu.`NAME` as APPLY_USER_NAME,
cono.`NAME` as CONFESS_DEPARTMENT_NAME,
conu.`NAME` as CONFESS_USER_NAME,
acco.`NAME` as ACCEPT_CONFESS_DEPARTMENT_NAME,
accu.`NAME` as ACCEPT_CONFESS_USER_NAME,
guao.`NAME` as GUARDIAN_DEPARTMENT_NAME,
guau.`NAME` as GUARDIAN_USER_NAME,
confo.`NAME` as CONFIRM_DEPARTMENT_NAME,
confu.`NAME` as CONFIRM_USER_NAME,
leao.`NAME` as LEADER_DEPARTMENT_NAME,
leau.`NAME` as LEADER_USER_NAME,
audo.`NAME` as AUDIT_DEPARTMENT_NAME,
audu.`NAME` as AUDIT_USER_NAME,
appro.`NAME` as APPROVE_DEPARTMENT_NAME,
appru.`NAME` as APPROVE_USER_NAME,
acceo.`NAME` as ACCEPT_DEPARTMENT_NAME,
acceu.`NAME` as ACCEPT_USER_NAME,
stao.`NAME` as WORK_START_DEPARTMENT_NAME,
stau.`NAME` as WORK_START_USER_NAME,
endo.`NAME` as WORK_END_DEPARTMENT_NAME,
endu.`NAME` as WORK_END_USER_NAME,
log.STEP_NAME,
log.NEXT_STEP_NAME,
log.STATUS
from
<include refid="tableName"></include> f
left join oa_department as appo on f.APPLY_DEPARTMENT_ID = appo.DEPARTMENT_ID
left join sys_user as appu on f.APPLY_USER_ID = appu.USER_ID
left join oa_department as cono on f.CONFESS_DEPARTMENT_ID = cono.DEPARTMENT_ID
left join sys_user as conu on f.CONFESS_USER_ID = conu.USER_ID
left join oa_department as acco on f.ACCEPT_CONFESS_DEPARTMENT_ID = acco.DEPARTMENT_ID
left join sys_user as accu on f.ACCEPT_CONFESS_USER_ID = accu.USER_ID
left join oa_department as guao on f.GUARDIAN_DEPARTMENT_ID = guao.DEPARTMENT_ID
left join sys_user as guau on f.GUARDIAN_USER_ID = guau.USER_ID
left join oa_department as confo on f.CONFIRM_DEPARTMENT_ID = confo.DEPARTMENT_ID
left join sys_user as confu on f.CONFIRM_USER_ID = confu.USER_ID
left join oa_department as leao on f.LEADER_DEPARTMENT_ID = leao.DEPARTMENT_ID
left join sys_user as leau on f.LEADER_USER_ID = leau.USER_ID
left join oa_department as audo on f.AUDIT_DEPARTMENT_ID = audo.DEPARTMENT_ID
left join sys_user as audu on f.AUDIT_USER_ID = audu.USER_ID
left join oa_department as appro on f.APPROVE_DEPARTMENT_ID = appro.DEPARTMENT_ID
left join sys_user as appru on f.APPROVE_USER_ID = appru.USER_ID
left join oa_department as acceo on f.ACCEPT_DEPARTMENT_ID = acceo.DEPARTMENT_ID
left join sys_user as acceu on f.ACCEPT_USER_ID = acceu.USER_ID
left join oa_department as stao on f.WORK_START_DEPARTMENT_ID = stao.DEPARTMENT_ID
left join sys_user as stau on f.WORK_START_USER_ID = stau.USER_ID
left join oa_department as endo on f.WORK_END_DEPARTMENT_ID = endo.DEPARTMENT_ID
left join sys_user as endu on f.WORK_END_USER_ID = endu.USER_ID
left join (select * from(select * from vi_eightwork_flow_log log having 1 order by log.ACT_TIME desc
) tmp group by tmp.WORK_ID) log on log.WORK_ID = f.HIGHWORK_ID
where f.ISDELETE = '0'
<if test="pd.KEYWORDS != null and pd.KEYWORDS != ''"><!-- 关键词检索 -->
and f.CHECK_NO LIKE CONCAT(CONCAT('%', #{pd.KEYWORDS}),'%')
</if>
<if test="pd.STEP_NAME != null and pd.STEP_NAME != ''"><!-- 关键词检索 -->
and exists (
select 1 from bus_highwork_sign sign
left join bus_eightwork_step step on step.STEP_ID = sign.STEP_ID
where sign.HIGHWORK_ID = f.HIGHWORK_ID
and sign.SIGN_TIME is null
and sign.SIGN_USER_ID = #{pd.USER_ID}
and step.STEP_NAME = #{pd.STEP_NAME}
and f.STEP_ID != -1
)
</if>
<if test="pd.STEP_ID != null and pd.STEP_ID != ''"><!-- 关键词检索 -->
and log.NEXT_STEP_ID = #{pd.STEP_ID} and f.STEP_ID != -1
</if>
<if test="pd.CREATOR != null and pd.CREATOR != ''"><!-- 关键词检索 -->
and f.CREATOR = #{pd.CREATOR}
</if>
</select>
<select id="checkWorkCount" parameterType="pd" resultType="pd" >
select
step.CODE,count(1) COUNT
from
bus_highwork_sign sign
left join bus_eightwork_step step on step.STEP_ID = sign.STEP_ID
left join bus_highwork work on work.HIGHWORK_ID = sign.HIGHWORK_ID
where
sign.SIGN_TIME is null
and work.STEP_ID != '-1'
and
sign.SIGN_USER_ID = #{USER_ID}
group by step.CODE
</select>
<select id="listAllMeasures" resultType="pd">
select
*
from
BUS_HIGHWORK_MEASURES
</select>
<select id="getFlowList" resultType="pd">
select
step.STEP_NAME,
user.NAME as ACT_USER_NAME,
log.ACT_TIME,
log.STATUS,
cu.SIGN_USER,
cu.STEP_ID as CURRENT_STEP
from
bus_eightwork_task_flow flow
left join bus_eightwork_step step on step.STEP_ID = flow.STEP_ID
left join bus_eightwork_flow_log log on log.STEP_ID = flow.STEP_ID and
log.WORK_ID = #{HIGHWORK_ID}
left join sys_user user on user.USER_ID = log.ACT_USER
left join (select sign.STEP_ID,GROUP_CONCAT(signer.NAME) sign_user from bus_highwork_sign sign
left join sys_user signer on signer.USER_ID = sign.SIGN_USER_ID where sign.HIGHWORK_ID = #{HIGHWORK_ID}
and sign.SIGN_TIME is null) cu on cu.STEP_ID = step.STEP_ID
where
flow.TASK_ID = #{TASK_ID}
and
flow.STEP_ID != 0
order by
flow.ORDER_BY
</select>
</mapper>

View File

@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.datasource.eightwork.HighworkSignMapper">
<!--表名 -->
<sql id="tableName">
BUS_HIGHWORK_SIGN
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.HIGHWORK_SIGN_ID,
f.HIGHWORK_ID,
f.CORPINFO_ID,
f.SIGN_USER_ID,
f.SIGN_PATH,
f.SIGN_TIME,
f.DESCR,
f.STEP_ID,
f.IMG_PATH
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
HIGHWORK_SIGN_ID,
HIGHWORK_ID,
CORPINFO_ID,
SIGN_USER_ID,
SIGN_PATH,
SIGN_TIME,
DESCR,
STEP_ID,
IMG_PATH
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{HIGHWORK_SIGN_ID},
#{HIGHWORK_ID},
#{CORPINFO_ID},
#{SIGN_USER_ID},
#{SIGN_PATH},
#{SIGN_TIME},
#{DESCR},
#{STEP_ID},
#{IMG_PATH}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<insert id="saveBatch" parameterType="pd">
insert into
<include refid="tableName"></include>
(
HIGHWORK_SIGN_ID,
HIGHWORK_ID,
CORPINFO_ID,
SIGN_USER_ID,
STEP_ID
) values
<foreach collection="list" item="item" index="index" separator="," >
(#{item.HIGHWORK_SIGN_ID},
#{item.HIGHWORK_ID},
#{item.CORPINFO_ID},
#{item.SIGN_USER_ID},
#{item.STEP_ID})
</foreach>
</insert>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
DESCR = #{DESCR},
SIGN_PATH = #{SIGN_PATH},
SIGN_TIME= #{SIGN_TIME},
IMG_PATH = #{IMG_PATH}
where
HIGHWORK_ID = #{HIGHWORK_ID} and SIGN_USER_ID = #{SIGN_USER_ID} and STEP_ID = #{STEP_ID}
</update>
<select id="listById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
f.HIGHWORK_ID = #{pd.HIGHWORK_ID}
order by f.SIGN_TIME desc
</select>
<select id="listAll" parameterType="pd" resultType="pd">
select
f.HIGHWORK_SIGN_ID,
f.HIGHWORK_ID,
f.CORPINFO_ID,
f.SIGN_USER_ID,
f.SIGN_PATH,
f.SIGN_TIME,
f.STEP_ID,
f.IMG_PATH,
IFNULL(f.DESCR,'无') as DESCR,
step.CODE
from
<include refid="tableName"></include> f
left join bus_eightwork_step step on step.STEP_ID = f.STEP_ID
where
f.HIGHWORK_ID = #{HIGHWORK_ID}
and
f.SIGN_TIME is not null
</select>
<select id="checkUnsigned" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
f.HIGHWORK_ID = #{HIGHWORK_ID}
and
f.SIGN_TIME is null
</select>
</mapper>

View File

@ -0,0 +1,156 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zcloud.mapper.datasource.eightwork.HighworkToMeasuresMapper">
<!--表名 -->
<sql id="tableName">
BUS_HIGHWORKTOMEASURES
</sql>
<!--数据字典表名 -->
<sql id="dicTableName">
SYS_DICTIONARIES
</sql>
<!-- 字段 -->
<sql id="Field">
f.HIGHWORK_ID,
f.BUS_HIGHWORK_MEASURES_ID,
f.STATUS,
f.HIGHWORKTOMEASURES_ID,
f.CONFIRM_ID,
f.SIGN_PATH,
f.SIGN_TIME,
f.IMG_PATH
</sql>
<!-- 字段用于新增 -->
<sql id="Field2">
HIGHWORK_ID,
BUS_HIGHWORK_MEASURES_ID,
STATUS,
HIGHWORKTOMEASURES_ID,
CONFIRM_ID,
SIGN_PATH,
SIGN_TIME,
IMG_PATH
</sql>
<!-- 字段值 -->
<sql id="FieldValue">
#{HIGHWORK_ID},
#{BUS_HIGHWORK_MEASURES_ID},
#{STATUS},
#{HIGHWORKTOMEASURES_ID},
#{CONFIRM_ID},
#{SIGN_PATH},
#{SIGN_TIME},
#{IMG_PATH}
</sql>
<!-- 新增-->
<insert id="save" parameterType="pd">
insert into
<include refid="tableName"></include>
(
<include refid="Field2"></include>
) values (
<include refid="FieldValue"></include>
)
</insert>
<insert id="saveBatch" parameterType="pd">
insert into
<include refid="tableName"></include>
(
HIGHWORK_ID,
BUS_HIGHWORK_MEASURES_ID,
HIGHWORKTOMEASURES_ID,
CONFIRM_ID
) values
<foreach collection="list" item="item" index="index" separator="," >
(
#{item.HIGHWORK_ID},
#{item.BUS_HIGHWORK_MEASURES_ID},
#{item.HIGHWORKTOMEASURES_ID},
#{item.CONFIRM_ID}
)
</foreach>
</insert>
<!-- 删除-->
<delete id="delete" parameterType="pd">
delete from
<include refid="tableName"></include>
where
HIGHWORK_ID = #{HIGHWORK_ID}
</delete>
<!-- 修改 -->
<update id="edit" parameterType="pd">
update
<include refid="tableName"></include>
set
STATUS = #{STATUS},
SIGN_PATH = #{SIGN_PATH},
IMG_PATH = #{IMG_PATH},
SIGN_TIME = #{SIGN_TIME}
where
HIGHWORKTOMEASURES_ID = #{HIGHWORKTOMEASURES_ID}
</update>
<!-- 通过ID获取数据 -->
<select id="findById" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
where
f.HIGHWORKTOMEASURES_ID = #{HIGHWORKTOMEASURES_ID}
</select>
<!-- 列表(全部) -->
<select id="listAll" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>
from
<include refid="tableName"></include> f
</select>
<!-- 批量删除 -->
<delete id="deleteAll" parameterType="String">
update
<include refid="tableName"></include>
set
ISDELETE = '1'
where
HIGHWORKTOMEASURES_ID in
<foreach item="item" index="index" collection="ArrayDATA_IDS" open="(" separator="," close=")">
#{item}
</foreach>
</delete>
<select id="listAllMeasuresForSign" parameterType="pd" resultType="pd">
select
f.HIGHWORKTOMEASURES_ID,
m.*
from
<include refid="tableName"></include> f
left join bus_highwork_measures m on f.BUS_HIGHWORK_MEASURES_ID = m.BUS_HIGHWORK_MEASURES_ID
where
f.HIGHWORK_ID = #{HIGHWORK_ID} and f.CONFIRM_ID = #{CONFIRM_ID}
</select>
<select id="listSignFinishMeasures" parameterType="pd" resultType="pd">
select
<include refid="Field"></include>,
m.*
from
<include refid="tableName"></include> f
left join bus_highwork_measures m on f.BUS_HIGHWORK_MEASURES_ID = m.BUS_HIGHWORK_MEASURES_ID
where
f.HIGHWORK_ID = #{HIGHWORK_ID}
</select>
</mapper>