Merge remote-tracking branch 'origin/dev_xd' into dev_xd

dev_xd
haha 2025-02-10 01:16:54 +08:00
commit 55b1ed0d1e
26 changed files with 581 additions and 133 deletions

View File

@ -41,6 +41,16 @@ public interface RemoteProService
@GetMapping("/proProjectInfoSubdeptsUsers/approveSubDeptsUser/{busKey}")
public R<AjaxResult> approveSubDeptsUser(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/subDeptsUserComSign/{busKey}")
public R<AjaxResult> subDeptsUserComSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
@ -61,6 +71,36 @@ public interface RemoteProService
@GetMapping("/proProjectInfoSubdeptsUsers/subDeptsUserGroSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserComSign/{busKey}")
public R<Boolean> findUserComSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserProSign/{busKey}")
public R<Boolean> findUserProSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*
* @param busKey
* @param source
* @return
*/
@GetMapping("/proProjectInfoSubdeptsUsers/findUserGroSign/{busKey}")
public R<Boolean> findUserGroSign(@PathVariable("busKey") Long busKey, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
*
*

View File

@ -38,12 +38,36 @@ public class RemoteProFallbackFactory implements FallbackFactory<RemoteProServic
return R.fail("审批通过信息同步失败:" + throwable.getMessage());
}
@Override
public R<AjaxResult> subDeptsUserComSign(Long busKey, String source)
{
return R.fail("公司承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<AjaxResult> subDeptsUserProSign(Long busKey, String source)
{
return R.fail("项目承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserGroSign(Long busKey, String source)
{
return R.fail("班组承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserComSign(Long busKey, String source)
{
return R.fail("公司承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> findUserProSign(Long busKey, String source)
{
return R.fail("项目承诺书签名章失败:" + throwable.getMessage());
}
@Override
public R<AjaxResult> subDeptsUserGroSign(Long busKey, String source)
{

View File

@ -32,6 +32,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<where>
<if test="comId != null "> and bt.com_id = #{comId}</if>
<if test="projectId != null "> and bt.project_id = #{projectId}</if>
<if test="activeComId != null "> and bt.com_id = #{activeComId}</if>
<if test="activeProjectId != null "> and bt.project_id = #{activeProjectId}</if>
<if test="temName != null and temName != ''"> and bt.tem_name like concat('%', #{temName}, '%')</if>
<if test="temType != null and temType != ''"> and bt.tem_type = #{temType}</if>
<if test="isDel != null "> and bt.is_del = #{isDel}</if>

View File

@ -80,7 +80,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
from sys_user u
left join sys_dept d on u.dept_id = d.dept_id
left join sys_user_ext ex on u.user_id=ex.user_id
where u.del_flag = '0'
where u.del_flag = '0' and u.user_type= '00'
<if test="userId != null and userId != 0">
AND u.user_id = #{userId}
</if>

View File

@ -0,0 +1,41 @@
package com.yanzhu.flowable.listener;
import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.text.Convert;
import com.yanzhu.system.api.RemoteProService;
import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.ExecutionListener;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
/**
*
*
* Java
*
*
*
*
*
*
*
*
* @author JiangYuQi
* @date 2024/12/16
*/
@Slf4j
@Component
public class FlowComSignListener implements ExecutionListener {
@Lazy
@Autowired
private RemoteProService remoteProService;
@Override
public void notify(DelegateExecution execution) {
log.info("公司审批签名执行监听器:{}", execution.getProcessInstanceBusinessKey());
remoteProService.subDeptsUserComSign(Convert.toLong(execution.getProcessInstanceBusinessKey(),null), SecurityConstants.INNER);
}
}

View File

@ -6,7 +6,10 @@ import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.github.pagehelper.PageInfo;
import com.yanzhu.common.core.constant.SecurityConstants;
import com.yanzhu.common.core.exception.ServiceException;
import com.yanzhu.common.core.exception.base.BaseException;
import com.yanzhu.common.core.text.Convert;
import com.yanzhu.common.core.web.domain.AjaxResult;
import com.yanzhu.common.redis.service.RedisService;
import com.yanzhu.common.security.utils.SecurityUtils;
@ -30,6 +33,7 @@ import com.yanzhu.flowable.service.IFlowTaskService;
import com.yanzhu.flowable.service.ISysDeployFormService;
import com.yanzhu.flowable.service.ISysFormService;
import com.yanzhu.flowable.util.WorkflowUtil;
import com.yanzhu.system.api.RemoteProService;
import com.yanzhu.system.api.domain.SysRole;
import com.yanzhu.system.api.domain.SysUser;
import lombok.extern.slf4j.Slf4j;
@ -87,6 +91,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
@Resource
private ISysFormService sysFormService;
@Resource
private RemoteProService remoteProService;
@Resource
private RemoteSystemService remoteSystemService;
@ -106,6 +113,24 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
return AjaxResult.error("任务不存在");
}
String userId = taskVo.getUserId();
if(task.getName().indexOf("安全教育")>-1){
Boolean vis = remoteProService.findUserComSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData();
if(!vis){
throw new ServiceException("未查询到三级安全教育主管签名信息...");
}
}
if(task.getName().indexOf("安质部")>-1){
Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData();
if(!vis){
throw new ServiceException("未查询到安质部部长签名信息...");
}
}
if(task.getName().indexOf("班组")>-1){
Boolean vis = remoteProService.findUserGroSign(Convert.toLong(task.getCaseVariables().get("businessKey")), SecurityConstants.INNER).getData();
if(!vis){
throw new ServiceException("未查询到班组长签名信息...");
}
}
if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.DELEGATE.getType(), taskVo.getComment());
taskService.resolveTask(taskVo.getTaskId(), taskVo.getVariables());
@ -113,7 +138,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if(StringUtils.isNotEmpty(taskVo.getComment())){
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getComment());
}else{
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getAssignee()+"重新提交流程申请!!");
taskService.addComment(taskVo.getTaskId(), taskVo.getInstanceId(), FlowComment.NORMAL.getType(), taskVo.getAssignee()+"提交流程申请!!");
}
taskService.setAssignee(taskVo.getTaskId(), userId);
taskService.complete(taskVo.getTaskId(), taskVo.getVariables());

View File

@ -160,13 +160,13 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
}
/**
*
*
*/
@InnerAuth
@GetMapping("/subDeptsUserGroSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey)
@GetMapping("/subDeptsUserComSign/{busKey}")
public R<AjaxResult> subDeptsUserComSign(@PathVariable("busKey") Long busKey)
{
proProjectInfoSubdeptsUsersService.approveSubDeptsUserGroSign(busKey);
proProjectInfoSubdeptsUsersService.approveSubDeptsUserComSign(busKey);
return R.ok(AjaxResult.success());
}
@ -181,6 +181,47 @@ public class ProProjectInfoSubdeptsUsersController extends BaseController
return R.ok(AjaxResult.success());
}
/**
*
*/
@InnerAuth
@GetMapping("/subDeptsUserGroSign/{busKey}")
public R<AjaxResult> subDeptsUserGroSign(@PathVariable("busKey") Long busKey)
{
proProjectInfoSubdeptsUsersService.approveSubDeptsUserGroSign(busKey);
return R.ok(AjaxResult.success());
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserComSign/{busKey}")
public R<Boolean> findUserComSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserComSign(busKey));
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserProSign/{busKey}")
public R<Boolean> findUserProSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserProSign(busKey));
}
/**
*
*/
@InnerAuth
@GetMapping("/findUserGroSign/{busKey}")
public R<Boolean> findUserGroSign(@PathVariable("busKey") Long busKey)
{
return R.ok(proProjectInfoSubdeptsUsersService.findUserGroSign(busKey));
}
/**
*
* @param ids

View File

@ -6,7 +6,9 @@ package com.yanzhu.manage.enums;
public enum CraftPostEnums {
WTDL("1022", "委托代理人"),
XMJL("1023", "项目经理");
XMJL("1023", "项目经理"),
AQZY("1024", "安全专员"),
CLZY("1025", "材料专员");
private final String code;
private final String info;

View File

@ -5,7 +5,8 @@ package com.yanzhu.manage.enums;
*/
public enum DeptGroupEnums {
MANAGE("DEFAULT", "管理班组");
MANAGE("DEFAULT", "管理班组"),
SPECIAL("SPECIAL", "特殊工种班组");
private final String code;
private final String info;

View File

@ -9,6 +9,7 @@ public enum UserPostEnums {
XMJL("2", "项目经理"),
BZZ("3", "班组长"),
LWGR("4", "劳务工人"),
TSGZ("5", "特殊工种"),
CLRY("6", "材料员"),
AQRY("8", "安全员"),
JSDWGL("66", "建设单位管理"),

View File

@ -1,5 +1,6 @@
package com.yanzhu.manage.service;
import com.sun.org.apache.xpath.internal.operations.Bool;
import com.yanzhu.manage.domain.ProProjectInfoSubdeptsUsers;
import com.yanzhu.manage.domain.SignetFileVo;
@ -124,6 +125,12 @@ public interface IProProjectInfoSubdeptsUsersService
*/
public void approveSubDeptsUserProSign(Long id);
/**
*
* @param id
*/
public void approveSubDeptsUserComSign(Long id);
/**
*
*
@ -159,4 +166,10 @@ public interface IProProjectInfoSubdeptsUsersService
* @return
*/
int editDefaultProjectById(Long id);
Boolean findUserComSign(Long id);
Boolean findUserProSign(Long id);
Boolean findUserGroSign(Long id);
}

View File

@ -318,7 +318,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
// 班组信息处理
if(Objects.nonNull(proProjectInfoSubdeptsUsers.getUserPost())){
if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.XMJL.getCode())){
//查询管理班组
// 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId());
@ -332,6 +332,39 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.XMJL.getCode());
sysUser.setUserType(UserTypeEnums.FBXMJL.getCode());
// 设置特殊工种班组
ProProjectInfoSubdeptsGroup GroupQuery = new ProProjectInfoSubdeptsGroup();
GroupQuery.setProjectId(parUsers.getProjectId());
GroupQuery.setSubDeptId(parUsers.getSubDeptId());
GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(specialGroups) && specialGroups.size()>0){
ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0);
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());
specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone());
proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(specialGroup);
}else{
ProProjectInfoSubdeptsGroup specialGroup = new ProProjectInfoSubdeptsGroup();
specialGroup.setComId(proProjectInfoSubdeptsUsers.getComId());
specialGroup.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
specialGroup.setSubDeptId(proProjectInfoSubdeptsUsers.getSubDeptId());
specialGroup.setSubDeptName(proProjectInfoSubdeptsUsers.getSubDeptName());
specialGroup.setSubDeptType(proProjectInfoSubdeptsUsers.getSubDeptType());
specialGroup.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
specialGroup.setGroupName(DeptGroupEnums.SPECIAL.getInfo());
specialGroup.setCraftType(CraftTypeEnums.TSGZ.getCode());
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());
specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone());
specialGroup.setUseStatus(UseStateEnums.AW.getCode());
specialGroup.setApproveStatus(ApproveStatus.await.getCode());
specialGroup.setCreateBy(DataSourceEnuns.APP.getInfo());
specialGroup.setCreateTime(DateUtils.getNowDate());
proProjectInfoSubdeptsGroupMapper.insertProProjectInfoSubdeptsGroup(specialGroup);
}
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.BZZ.getCode())){
// 班组长新增班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
@ -364,7 +397,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
sysUser.setUserType(UserTypeEnums.FBBZZZ.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.CLRY.getCode())){
//查询管理班组
// 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId());
@ -375,10 +408,11 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.CLZY.getCode());
sysUser.setUserType(UserTypeEnums.FBCLRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.AQRY.getCode())){
//查询管理班组
// 查询管理班组
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId());
@ -389,8 +423,22 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.AQZY.getCode());
sysUser.setUserType(UserTypeEnums.FBAQRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.TSGZ.getCode())){
// 查询特殊工种绑定班组信息
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId());
query.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> groups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(groups) && groups.size()>0){
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
sysUser.setUserType(UserTypeEnums.FBLWRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.LWGR.getCode())){
// 劳务人员绑定班组信息
proProjectInfoSubdeptsUsers.setSubDeptGroup(parUsers.getSubDeptGroup());
@ -457,6 +505,7 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
throw new ServiceException("用户信息异常...请重新扫码");
}
proProjectInfoSubdeptsUsers.setComId(parUsers.getComId());
proProjectInfoSubdeptsUsers.setProjectId(parUsers.getProjectId());
proProjectInfoSubdeptsUsers.setSubDeptId(parUsers.getSubDeptId());
@ -491,6 +540,40 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.XMJL.getCode());
sysUser.setUserType(UserTypeEnums.FBXMJL.getCode());
// 设置特殊工种班组
ProProjectInfoSubdeptsGroup GroupQuery = new ProProjectInfoSubdeptsGroup();
GroupQuery.setProjectId(parUsers.getProjectId());
GroupQuery.setSubDeptId(parUsers.getSubDeptId());
GroupQuery.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> specialGroups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(specialGroups) && specialGroups.size()>0){
ProProjectInfoSubdeptsGroup specialGroup = specialGroups.get(0);
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());
specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone());
proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(specialGroup);
}else{
ProProjectInfoSubdeptsGroup specialGroup = new ProProjectInfoSubdeptsGroup();
specialGroup.setComId(proProjectInfoSubdeptsUsers.getComId());
specialGroup.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
specialGroup.setSubDeptId(proProjectInfoSubdeptsUsers.getSubDeptId());
specialGroup.setSubDeptName(proProjectInfoSubdeptsUsers.getSubDeptName());
specialGroup.setSubDeptType(proProjectInfoSubdeptsUsers.getSubDeptType());
specialGroup.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
specialGroup.setGroupName(DeptGroupEnums.SPECIAL.getInfo());
specialGroup.setCraftType(CraftTypeEnums.TSGZ.getCode());
specialGroup.setGroupLeaderName(proProjectInfoSubdeptsUsers.getUserName());
specialGroup.setGroupLeaderCode(proProjectInfoSubdeptsUsers.getCardCode());
specialGroup.setGroupLeaderPhone(proProjectInfoSubdeptsUsers.getUserPhone());
specialGroup.setUseStatus(UseStateEnums.AW.getCode());
specialGroup.setApproveStatus(ApproveStatus.await.getCode());
specialGroup.setCreateBy(DataSourceEnuns.APP.getInfo());
specialGroup.setCreateTime(DateUtils.getNowDate());
proProjectInfoSubdeptsGroupMapper.insertProProjectInfoSubdeptsGroup(specialGroup);
}
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.BZZ.getCode())){
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
@ -575,6 +658,8 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.CLZY.getCode());
sysUser.setUserType(UserTypeEnums.FBCLRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.AQRY.getCode())){
//查询管理班组
@ -589,7 +674,22 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
proProjectInfoSubdeptsUsers.setCraftType(CraftTypeEnums.GLRY.getCode());
proProjectInfoSubdeptsUsers.setCraftPost(CraftPostEnums.AQZY.getCode());
sysUser.setUserType(UserTypeEnums.FBAQRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.TSGZ.getCode())){
// 查询特殊工种绑定班组信息
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(parUsers.getProjectId());
query.setSubDeptId(parUsers.getSubDeptId());
query.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> groups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(groups) && groups.size()>0){
proProjectInfoSubdeptsUsers.setSubDeptGroup(groups.get(0).getId());
proProjectInfoSubdeptsUsers.setSubDeptGroupName(groups.get(0).getGroupName());
}
sysUser.setUserType(UserTypeEnums.FBLWRY.getCode());
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(), UserPostEnums.LWGR.getCode())){
// 劳务人员绑定班组信息
proProjectInfoSubdeptsUsers.setSubDeptGroup(parUsers.getSubDeptGroup());
@ -790,6 +890,9 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.WTDL.getCode())){
ProProjectInfoSubdepts proProjectInfoSubdepts = proProjectInfoSubdeptsMapper.selectProProjectInfoSubdeptsById(proProjectInfoSubdeptsUsers.getSubDeptId());
proProjectInfoSubdepts.setApproveStatus(ApproveStatus.exempt.getCode());
if(Objects.isNull(proProjectInfoSubdepts.getUseStatus()) && Objects.equals(proProjectInfoSubdepts.getUseStatus(),UseStateEnums.AW.getCode())){
proProjectInfoSubdepts.setUseStatus(UseStateEnums.IN.getCode());
}
// 生成二维码
try {
String accessToken = wxMaService.getAccessToken();
@ -807,6 +910,21 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
}
proProjectInfoSubdeptsMapper.updateProProjectInfoSubdepts(proProjectInfoSubdepts);
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.XMJL.getCode())){
// 查询特殊工种绑定班组信息
ProProjectInfoSubdeptsGroup query = new ProProjectInfoSubdeptsGroup();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
query.setSubDeptId(proProjectInfoSubdeptsUsers.getSubDeptId());
query.setGroupCode(DeptGroupEnums.SPECIAL.getCode());
List<ProProjectInfoSubdeptsGroup> groups = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupList(query);
if(Objects.nonNull(groups) && groups.size()>0){
ProProjectInfoSubdeptsGroup specialGroup = groups.get(0);
specialGroup.setApproveStatus(ApproveStatus.exempt.getCode());
if(Objects.isNull(specialGroup.getUseStatus()) && Objects.equals(specialGroup.getUseStatus(),UseStateEnums.AW.getCode())){
specialGroup.setUseStatus(UseStateEnums.IN.getCode());
}
proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(specialGroup);
}
try {
String accessToken = wxMaService.getAccessToken();
String filePath = DateUtils.datePath()+"/"+System.currentTimeMillis()+".png";
@ -823,6 +941,9 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
}else if(Objects.equals(proProjectInfoSubdeptsUsers.getUserPost(),UserPostEnums.BZZ.getCode())){
ProProjectInfoSubdeptsGroup proProjectInfoSubdeptsGroup = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup());
proProjectInfoSubdeptsGroup.setApproveStatus(ApproveStatus.exempt.getCode());
if(Objects.isNull(proProjectInfoSubdeptsGroup.getUseStatus()) && Objects.equals(proProjectInfoSubdeptsGroup.getUseStatus(),UseStateEnums.AW.getCode())){
proProjectInfoSubdeptsGroup.setUseStatus(UseStateEnums.IN.getCode());
}
proProjectInfoSubdeptsGroupMapper.updateProProjectInfoSubdeptsGroup(proProjectInfoSubdeptsGroup);
try {
String accessToken = wxMaService.getAccessToken();
@ -839,24 +960,6 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
}
}
// 审核文件签名
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
BasSignet query = new BasSignet();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
query.setUserId(SecurityUtils.getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isEmpty(signets)){
throw new ServiceException("获取签名异常");
}
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath);
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs();
log.info("创建目录...{}...{}",mkdirs,filePath);
}
String newFilePath = filePath.replace(".pdf","-c.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, filePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.COMPANY_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath);
proProjectInfoSubdeptsUsers.setUseStatus(UseStateEnums.IN.getCode());
proProjectInfoSubdeptsUsers.setApproveStatus(ApproveStatus.exempt.getCode());
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
@ -872,23 +975,30 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
public void approveSubDeptsUserGroSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
// 查询班组长签名
if(proProjectInfoSubdeptsUsers.getSubDeptGroup()!=null){
ProProjectInfoSubdeptsGroup group = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup());
if(group!=null && StringUtils.isNotEmpty(group.getGroupLeaderPhone())){
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setUserPhone(group.getGroupLeaderPhone());
userQuery.setProjectId(group.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
query.setUserId(SecurityUtils.getUserId());
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isEmpty(signets)){
throw new ServiceException("获取签名异常");
}
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath);
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs();
log.info("创建目录...{}...{}",mkdirs,filePath);
}
if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-g.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.GROUP_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath);
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
}
}
}
}
/**
*
@ -898,23 +1008,121 @@ public class ProProjectInfoSubdeptsUsersServiceImpl implements IProProjectInfoSu
public void approveSubDeptsUserProSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setWorkType(18L);
userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
query.setUserId(SecurityUtils.getUserId());
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isEmpty(signets)){
throw new ServiceException("获取签名异常");
}
File pdfFile = org.apache.commons.io.FileUtils.getFile(filePath);
if (!pdfFile.getParentFile().exists()) {
boolean mkdirs = pdfFile.getParentFile().mkdirs();
log.info("创建目录...{}...{}",mkdirs,filePath);
}
if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-p.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, filePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath);
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
}
}
/**
*
* @param id
*/
@Override
public void approveSubDeptsUserComSign(Long id){
// 审核文件签名
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
String filePath = proProjectInfoSubdeptsUsers.getEduFilePath().replace(ProfileConfig.profile, ProfileConfig.profilePath);
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setWorkType(18L);
userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isNotEmpty(signets)){
String newFilePath = filePath.replace(".pdf","-c.pdf");
PdfImageSignetUtil.imageWaterMark(filePath, newFilePath, signets.get(0).getSignetPath().replace(ProfileConfig.profile, ProfileConfig.profilePath),SignetKeyEnums.PROJECT_SIGN.getCode());
proProjectInfoSubdeptsUsers.setEduFilePath(newFilePath.replace(ProfileConfig.profilePath,ProfileConfig.profile));
proProjectInfoSubdeptsUsersMapper.updateProProjectInfoSubdeptsUsers(proProjectInfoSubdeptsUsers);
}
}
}
@Override
public Boolean findUserComSign(Long id){
// 审核文件签名
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setWorkType(18L);
userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isNotEmpty(signets)){
return true;
}
}
return false;
}
@Override
public Boolean findUserProSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setWorkType(18L);
userQuery.setProjectId(proProjectInfoSubdeptsUsers.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isNotEmpty(signets)){
return true;
}
}
return false;
}
@Override
public Boolean findUserGroSign(Long id){
ProProjectInfoSubdeptsUsers proProjectInfoSubdeptsUsers = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersById(id);
// 查询班组长签名
if(proProjectInfoSubdeptsUsers.getSubDeptGroup()!=null){
ProProjectInfoSubdeptsGroup group = proProjectInfoSubdeptsGroupMapper.selectProProjectInfoSubdeptsGroupById(proProjectInfoSubdeptsUsers.getSubDeptGroup());
if(group!=null && StringUtils.isNotEmpty(group.getGroupLeaderPhone())){
ProProjectInfoSubdeptsUsers userQuery = new ProProjectInfoSubdeptsUsers();
userQuery.setUserPhone(group.getGroupLeaderPhone());
userQuery.setProjectId(group.getProjectId());
List<ProProjectInfoSubdeptsUsers> users = proProjectInfoSubdeptsUsersMapper.selectProProjectInfoSubdeptsUsersList(userQuery);
if(StringUtils.isNotEmpty(users)){
BasSignet query = new BasSignet();
query.setProjectId(users.get(0).getProjectId());
query.setUserId(users.get(0).getUserId());
List<BasSignet> signets = basSignetMapper.selectBasSignetList(query);
if(StringUtils.isNotEmpty(signets)){
return true;
}
}
}
}
return false;
}
public static void main(String[] args) {
String path = "D:\\meta\\test.pdf";
String newPath = path.replace(".pdf","-c.pdf");;
String signPath = "D:\\meta\\sign.png.v1.png";
PdfImageSignetUtil.imageWaterMark(path, newPath, signPath, SignetKeyEnums.PROJECT_SIGN.getCode());
}
/**
* ...

View File

@ -127,26 +127,7 @@ public class PdfImageSignetUtil {
pdfReader = new PdfReader(srcPdfPath);
FileOutputStream out = org.apache.commons.io.FileUtils.openOutputStream(org.apache.commons.io.FileUtils.getFile(newPdfPath));
pdfStamper = new PdfStamper(pdfReader, out);
BufferedImage bufferedImage = ImageIO.read(org.apache.commons.io.FileUtils.getFile(imagePath));
// 这里裁剪图片可能报错,报错用原图
int[] array = bufferedImageToIntArray(bufferedImage,bufferedImage.getWidth(),bufferedImage.getHeight());
// blank是作为四周边距留白
int blank = 20;
boolean cutResult = false;
try {
// 图片裁剪
ImgUtil.cut(FileUtil.file(imagePath),
FileUtil.file(imagePath + ".v1.png"), new Rectangle(array[0]-blank,array[1]-blank,array[2]+blank*2, array[3]+blank*2));
cutResult = true;
}catch (Exception ex){
log.error("图片裁剪发生未知异常:" + ex);
}
// 图片压缩
// ImgUtil.scale(FileUtil.file(cutResult?(imagePath + ".v0.png"):imagePath),
// FileUtil.file(imagePath + ".v1.png"), (float) (60.0/bufferedImage.getWidth()));
// 图片旋转
ImgUtil.rotate(FileUtil.file(cutResult?(imagePath + ".v1.png"):imagePath),270,FileUtil.file(imagePath + ".v2.png"));
Image qrcodeImage = Image.getInstance(imagePath+".v2.png");
Image qrcodeImage = Image.getInstance(imagePath);
//设置图片宽高
qrcodeImage.scaleToFit(qrcodeImage.getWidth()/20, qrcodeImage.getHeight()/20);
for(int i=0;i<list.size();i++){

View File

@ -1,6 +1,6 @@
<!--pages/login/login.wxml-->
<view class="login_logo">
<image src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
<image wx:if="false" src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
</view>
<view class="login_title">
<text>数字工程项目管理系统</text>

View File

@ -6,6 +6,7 @@ page {
.login_logo {
text-align: center;
padding: 50rpx 0rpx;
height: 120rpx;
}
.login_logo image {

View File

@ -70,7 +70,7 @@
<view class="module_title module_title_padding">
<view>{{subDeptData.projectName}}</view>
</view>
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='6' || options.category=='8'}}">
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='5' || options.category=='6' || options.category=='8'}}">
<view class="inspect_overview_list">
<van-row>
<van-col span="8"><text class="color_purple">项目单位</text></van-col>
@ -230,7 +230,7 @@
</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">单位委托书</text></van-col>
<van-col span="16">
@ -260,19 +260,19 @@
<van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">开户行名称</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankName}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">开户行网点</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankOffice}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">工资银行卡号</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankCardNo}}</van-col>

View File

@ -70,7 +70,7 @@
<view class="module_title module_title_padding">
<view>{{subDeptData.projectName}}</view>
</view>
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='6' || options.category=='8'}}">
<view class="inspect_info" wx:if="{{options.category=='1' || options.category=='2' || options.category=='3' || options.category=='4' || options.category=='5' || options.category=='6' || options.category=='8'}}">
<view class="inspect_overview_list">
<van-row>
<van-col span="8"><text class="color_purple">项目单位</text></van-col>
@ -230,7 +230,7 @@
</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category!='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category!='3' && options.category!='4' && options.category!='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">单位委托书</text></van-col>
<van-col span="16">
@ -260,19 +260,19 @@
<van-col span="16">{{subDeptUserData.userInfos.contactPhone}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">开户行名称</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankName}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">开户行网点</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankOffice}}</van-col>
</van-row>
</view>
<view class="inspect_overview_list" wx:if="{{options.category=='4'}}">
<view class="inspect_overview_list" wx:if="{{options.category=='3' || options.category=='4' || options.category=='5'}}">
<van-row>
<van-col span="8"><text class="color_purple">工资银行卡号</text></van-col>
<van-col span="16">{{subDeptUserData.userInfos.bankCardNo}}</van-col>

View File

@ -356,7 +356,7 @@ Page({
subDeptUserInfo: res.data[0]
});
//劳务人员信息
if ((app.globalData.subDeptUserData.subDeptType=='1' || app.globalData.subDeptUserData.subDeptType=='4' || app.globalData.subDeptUserData.subDeptType=='5') && app.globalData.subDeptUserData.userPost != '4' && app.globalData.subDeptUserData.userPost != '6' && app.globalData.subDeptUserData.userPost != '8') {
if ((app.globalData.subDeptUserData.subDeptType=='1' || app.globalData.subDeptUserData.subDeptType=='4' || app.globalData.subDeptUserData.subDeptType=='5') && app.globalData.subDeptUserData.userPost != '4' && app.globalData.subDeptUserData.userPost != '5' && app.globalData.subDeptUserData.userPost != '6' && app.globalData.subDeptUserData.userPost != '8') {
//统计劳务人员信息
this.getSubDeptsUsers(app.globalData.useProjectId);
this.initSubDeptDaysCharts(app.globalData.useProjectId);
@ -367,7 +367,7 @@ Page({
this.getSubDeptsAttendanceView(app.globalData.useProjectId);
}
//人员出勤信息
if (app.globalData.subDeptUserData.userPost == '4' || app.globalData.subDeptUserData.userPost == '6' || app.globalData.subDeptUserData.userPost == '8') {
if (app.globalData.subDeptUserData.userPost == '4' || app.globalData.subDeptUserData.userPost == '5' || app.globalData.subDeptUserData.userPost == '6' || app.globalData.subDeptUserData.userPost == '8') {
//统计劳务人员信息
this.getUsersAttendanceView(app.globalData.useProjectId);
}

View File

@ -143,7 +143,7 @@
</view>
</view>
</view>
<view class="echarts_max bt30" wx:if="{{(subDeptUserInfo.subDeptType=='4' || subDeptUserInfo.subDeptType=='5') && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}">
<view class="echarts_max bt30" wx:if="{{(subDeptUserInfo.subDeptType=='4' || subDeptUserInfo.subDeptType=='5') && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}">
<view class="echarts_min">
<view class="eharts_title module_title_flex">
我的二维码
@ -177,7 +177,7 @@
</view>
</view>
<view class="echarts_max" wx:if="{{subDeptUserInfo.userPost=='4' || subDeptUserInfo.userPost=='6' || subDeptUserInfo.userPost=='8'}}">
<view class="echarts_max" wx:if="{{subDeptUserInfo.userPost=='4' || subDeptUserInfo.userPost=='5' || subDeptUserInfo.userPost=='6' || subDeptUserInfo.userPost=='8'}}">
<view class="echarts_min">
<view class="eharts_title module_title_flex">
最近出勤
@ -235,7 +235,7 @@
</view>
<!-- 底部导航 -->
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5' && subDeptUserInfo.userPost!='6' && subDeptUserInfo.userPost!='8'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar-item>
<image slot="icon" src="/images/footer_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" />
<image slot="icon-active" src="/images/foot_5.png" mode="aspectFit" style="width:40rpx; height: 40rpx;" />

View File

@ -33,7 +33,7 @@
</view>
</view>
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='4'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar wx:if="{{subDeptUserInfo.userPost!='3' && subDeptUserInfo.userPost!='4' && subDeptUserInfo.userPost!='5'}}" active="{{ active }}" bind:change="onChange" active-color="#ffffff" inactive-color="#7d95d6">
<van-tabbar-item bindtap="XMGK">
<image
slot="icon"

View File

@ -164,6 +164,10 @@ Page({
"id": "3",
"text": "班组长"
});
_userPostList.push({
"id": "5",
"text": "特殊工种"
});
_userPostList.push({
"id": "6",
"text": "材料员"
@ -204,26 +208,36 @@ Page({
getDictCache(signId) {
if (signId == '3') {
// 初始化工种类型
findDictCache("pro_craft_type").then(res => {
// findDictCache("pro_craft_type").then(res => {
// if (res.code == 200) {
// let craftTypeList = [];
// res.data.forEach(item => {
// if (item.dictValue != "3") {
// craftTypeList.push({
// "id": item.dictValue,
// "text": item.dictLabel
// });
// }
// })
// this.setData({
// craftTypeList
// });
// }
// })
// 初始化工种岗位
findDictCache("pro_craft_post").then(res => {
if (res.code == 200) {
let craftTypeList = [];
let list = [];
res.data.forEach(item => {
if (item.dictValue != "3") {
craftTypeList.push({
if (item.cssClass == '1') {
list.push({
"id": item.dictValue,
"text": item.dictLabel
});
}
})
this.setData({
craftTypeList
});
}
})
// 初始化工种岗位
findDictCache("pro_craft_post").then(res => {
if (res.code == 200) {
this.setData({
craftPostList:list,
craftPostAllOrginList: res.data
});
}
@ -1110,8 +1124,41 @@ Page({
*/
onChageUserPost(e) {
this.setData({
"form.userPost": e.detail.id
userPost:e.detail.id,
"form.userPost": e.detail.id,
"form.craftPost": null
})
if(e.detail.id=='3'){
let craftPostList = [];
this.data.craftPostAllOrginList.forEach(item => {
if (item.cssClass == '1') {
craftPostList.push({
"id": item.dictValue,
"text": item.dictLabel
});
}
})
this.setData({
craftPostList,
"form.craftType": '1',
"form.craftPost": null
})
} else if(e.detail.id=='5'){
let craftPostList = [];
this.data.craftPostAllOrginList.forEach(item => {
if (item.cssClass == '2') {
craftPostList.push({
"id": item.dictValue,
"text": item.dictLabel
});
}
})
this.setData({
craftPostList,
"form.craftType": '2',
"form.craftPost": null
})
}
},
/**
@ -1546,11 +1593,11 @@ Page({
userPost
} = this.data;
//数据效验
if (userPost == '3' || userPost == '6' || userPost == '8') {
if (!form.craftType) {
app.toast("请选择工种类型!");
return false;
}
if (userPost == '3' || userPost == '5') {
// if (!form.craftType) {
// app.toast("请选择工种类型!");
// return false;
// }
if (!form.craftPost) {
app.toast("请选择工种岗位!");
return false;

View File

@ -1,7 +1,7 @@
<!-- 游客一键登录 -->
<view wx:if="{{!userPhoneNumber}}" class="page">
<view class="login_logo">
<image src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
<image wx:if="{{false}}" src="https://xiangguan.sxyanzhu.com/profile/xmgl/static/sys_logo.png"></image>
</view>
<view class="login_title">
<text>数字工程项目管理系统</text>
@ -284,7 +284,7 @@
</view>
</view>
<view wx:if="{{userPost=='3' || userPost=='6' || userPost=='8'}}">
<view wx:if="{{userPost=='3' || userPost=='5' || userPost=='6' || userPost=='8'}}">
<view class="header_title">
<view class="header_title_row">
<view class="header_name">{{title}}</view>
@ -306,17 +306,17 @@
<voucher-select columns="{{userPostList}}" placeholder="请选择岗位级别" bindchange="onChageUserPost" selectValue="{{form.userPost}}"></voucher-select>
</view>
</view>
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">班组工种</view>
<view class="inspect_info_list" wx:if="{{ userPost=='3' || userPost=='5' }}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">岗位工种</view>
<view class="inspect_info_content">
<van-row>
<!-- <van-row>
<van-col span="8">
<voucher-select columns="{{craftTypeList}}" bindchange="onChageCraftType" placeholder="请选择工种类型" selectValue="{{form.craftType}}"></voucher-select>
</van-col>
<van-col span="16">
<van-col span="16"> -->
<voucher-select columns="{{craftPostList}}" bindchange="onChageCraftPost" placeholder="请选择工种岗位" selectValue="{{form.craftPost}}"></voucher-select>
</van-col>
</van-row>
<!-- </van-col>
</van-row> -->
</view>
</view>
<view class="inspect_info_list" wx:if="{{false}}">
@ -357,7 +357,7 @@
<file-uploader bindimages="fileUploadUserPicture" limit="{{limit}}" fileUrlArray="{{form.userPicture}}"></file-uploader>
</view>
</view>
<view class="inspect_info_list" wx:if="userPost=='6'">
<view class="inspect_info_list" wx:if="{{userPost=='6'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">劳务单位委托书
<text style="font-size: small; color: antiquewhite;">[需加盖劳务单位的公章委托书照片]</text>
</view>
@ -407,6 +407,26 @@
<input placeholder="请填写紧急联系人电话" placeholder-style="color:#6777aa;" bindinput="inputUrgentUserPhone" class="inspect_input_fill_in" maxlength="30" model:value="{{form.contactPhone}}" />
</view>
</view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">开户银行名称</view>
<view class="inspect_info_content">
<input placeholder="请填写开户银行名称" placeholder-style="color:#6777aa;" bindinput="inputBankName" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankName}}" />
</view>
</view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">开户银行网点
<text style="font-size: small; color: antiquewhite;">[开户银行地址]</text>
</view>
<view class="inspect_info_content">
<input placeholder="请填写开户银行网点" placeholder-style="color:#6777aa;" bindinput="inputBankOffice" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankOffice}}" />
</view>
</view>
<view class="inspect_info_list" wx:if="{{userPost=='5'}}">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">工资银行卡号</view>
<view class="inspect_info_content">
<input placeholder="请填写工资银行卡号" placeholder-style="color:#6777aa;" bindinput="inputBankCardNo" class="inspect_input_fill_in" maxlength="30" model:value="{{form.bankCardNo}}" />
</view>
</view>
<view class="inspect_info_list">
<view class="inspect_info_title" style="padding: 20rpx 0 10rpx;">文化程度</view>
<view class="inspect_info_content">

View File

@ -7,6 +7,7 @@
.login_logo {
text-align: center;
padding: 50rpx 0rpx;
height: 120rpx;
}
.login_logo image {

View File

@ -11,7 +11,7 @@
{
"name": "pages/project_qr/index",
"pathName": "pages/project_qr/index",
"query": "QRPID=132&SIGID=4&PARID=40",
"query": "QRPID=132&SIGID=1",
"launchMode": "default",
"scene": null
},

View File

@ -135,7 +135,7 @@
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'">
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-form label-width="100px" size="small" >
<el-form-item label="代理人身份证" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/>
@ -144,7 +144,7 @@
<el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userPicture" :width="120" :height="70"/>
</el-form-item>
<el-form-item label="单位委托证明" v-if="dataOptions.category!='4'">
<el-form-item label="单位委托证明" v-if="dataOptions.category!='3' && dataOptions.category!='4' && dataOptions.category!='5' && dataOptions.category!='8'">
<ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/>
</el-form-item>
<el-form-item label="委托人姓名" v-if="dataOptions.category=='1'">
@ -478,7 +478,7 @@
/** 获取表单数据 */
const initFormValues = () => {
let category = parseInt(dataOptions.value.category);
if(category==1 || category==2 || category==3 || category==4){
if(category==1 || category==2 || category==3 || category==4 || category==5 || category==6 || category==8){
getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{
if(res.data.userInfos){
res.data.userInfos = JSON.parse(res.data.userInfos);

View File

@ -135,7 +135,7 @@
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'">
<el-tab-pane label="人员信息" name="users" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-form label-width="100px" size="small" >
<el-form-item label="代理人身份证" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userInfos.cardImgPos" :width="120" :height="70"/>
@ -144,7 +144,7 @@
<el-form-item label="入场肖像近照" v-if="dataOptions.category=='1'">
<ImagePreview :src="initData.userPicture" :width="120" :height="70"/>
</el-form-item>
<el-form-item label="单位委托证明" v-if="dataOptions.category!='4'">
<el-form-item label="单位委托证明" v-if="dataOptions.category!='3' && dataOptions.category!='4' && dataOptions.category!='5' && dataOptions.category!='8'">
<ImagePreview :src="initData.subDeptPowerPath" :width="120" :height="70"/>
</el-form-item>
<el-form-item label="委托人姓名" v-if="dataOptions.category=='1'">
@ -207,7 +207,7 @@
</el-form-item>
</el-form>
</el-tab-pane>
<el-tab-pane label="视频培训" name="video" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'">
<el-tab-pane label="视频培训" name="video" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='46' || dataOptions.category=='8'">
<el-table :data="userEduVideoList">
<el-table-column label="播放时间" align="center" prop="playDates" width="180">
<template #default="scope">
@ -224,7 +224,7 @@
<el-table-column label="培训级别" align="center" prop="trainLevelName"/>
</el-table>
</el-tab-pane>
<el-tab-pane label="考试情况" name="exams" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4'">
<el-tab-pane label="考试情况" name="exams" v-if="dataOptions.category=='1' || dataOptions.category=='2' || dataOptions.category=='3' || dataOptions.category=='4' || dataOptions.category=='5' || dataOptions.category=='6' || dataOptions.category=='8'">
<el-row class="task_panel">
<el-col :span="6">
<el-statistic class="statistic_div">
@ -621,7 +621,7 @@
/** 获取表单数据 */
const initFormValues = () => {
let category = parseInt(dataOptions.value.category);
if(category==1 || category==2 || category==3 || category==4){
if(category==1 || category==2 || category==3 || category==4 || category==5 || category==6 || category==8){
getProProjectInfoSubdeptsUsers(dataOptions.value.businessKey).then(res =>{
if(res.data.userInfos){
res.data.userInfos = JSON.parse(res.data.userInfos);