报工跟质检以及Bom编码修改

This commit is contained in:
z 2025-07-11 13:54:22 +08:00
parent 48a3315fe1
commit e8c40da222
26 changed files with 201 additions and 110 deletions

View File

@ -51,5 +51,14 @@ public class FpUserDetailRespVO {
@Schema(description = "主表备注", example = "你说的对")
@ExcelProperty("备注")
private String remarks;
@Schema(description = "工序id")
private Long procedureId;
@Schema(description = "工序编码")
private String code;
@Schema(description = "工序名称")
private String procedureName;
}

View File

@ -10,6 +10,10 @@ public class UserVo {
private Long busyId;
@Schema(description = "岗位ID", example = "12927")
private String postId;
@Schema(description = "工序id")
private Long procedureId;
@Schema(description = "是否负责人")
private String isRes;
}

View File

@ -6,7 +6,9 @@ import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Schema(description = "管理后台 - 派工单分页 Request VO")
@Data
@ -37,4 +39,7 @@ public class TaskDispatchDetailPageReqVO extends PageParam {
@Schema(description = "项目或子项目id")
private String subOrDetailName;
@Schema(description = "工序集合")
Set<String> procedureIds;
}

View File

@ -53,6 +53,14 @@ public class FpUserDetailDO extends BaseDO {
*/
private String remark;
/**
* 工序id
*/
private Long procedureId;
/**
* 工序编码
*/
private String code;
@TableField(exist = false)
private String nickName;
@TableField(exist = false)
@ -61,4 +69,6 @@ public class FpUserDetailDO extends BaseDO {
private String postName ;
@TableField(exist = false)
private String remarks;
@TableField(exist = false)
private String procedureName ;
}

View File

@ -8,6 +8,7 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.fpuserdetail.vo.FpUserD
import com.chanko.yunxi.mes.module.heli.controller.admin.fpuserdetail.vo.FpUserDetailSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuser.FpUserDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
@ -32,10 +33,12 @@ public interface FpUserDetailMapper extends BaseMapperX<FpUserDetailDO> {
default PageResult<FpUserDetailDO> selectPage(FpUserDetailPageReqVO reqVO) {
MPJLambdaWrapper<FpUserDetailDO> query = new MPJLambdaWrapper<>();
query.selectAll(FpUserDetailDO.class)
.select("u.nickname as nickName")
.select("u.nickname as nickName,p.name as procedureName")
.select("a.type as type","a.remark as remarks")
.leftJoin(AdminUserDO.class, "u", AdminUserDO::getId, FpUserDetailDO::getBusyId)
.leftJoin(FpUserDO.class, "a", FpUserDO::getId, FpUserDetailDO::getFpId)
.leftJoin(ProcedureDO.class,"p",ProcedureDO::getId, FpUserDetailDO::getProcedureId)
.disableSubLogicDel()
.orderByDesc(FpUserDetailDO::getId);
query.like(!StringUtils.isEmpty(reqVO.getBusyId()), "u.nickname", reqVO.getBusyId())
.like(!StringUtils.isEmpty(reqVO.getPostId()),FpUserDetailDO::getPostId, reqVO.getPostId())

View File

@ -34,7 +34,7 @@ public interface PlanTaskMapper extends BaseMapperX<PlanTaskDO> {
query.selectAll(PlanTaskDO.class)
.select("e.name as customerName","p.code as projectCode","p.project_name as projectName","p.project_end_time as projectEndTime")
.select("pl.plan_no as planNo","ps.project_sub_code as projectSubCode","po.name as projectSubName","concat('BOM-', ps.project_sub_code) as bomCode")
.select("pl.plan_no as planNo","ps.project_sub_code as projectSubCode","po.name as projectSubName"," ps.project_sub_code as bomCode")
.leftJoin(PlanDO.class, "pl", PlanDO::getId, PlanTaskDO::getProjectPlanId)
.leftJoin(PlanSubDO.class, "ps", PlanSubDO::getId, PlanTaskDO::getProjectPlanSubId)
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, PlanTaskDO::getProjectId)
@ -72,7 +72,7 @@ public interface PlanTaskMapper extends BaseMapperX<PlanTaskDO> {
MPJLambdaWrapper<PlanTaskDO> query = new MPJLambdaWrapper<>();
query.selectAll(PlanTaskDO.class)
.select("e.name as customerName","p.code as projectCode","p.project_name as projectName","p.project_end_time as projectEndTime")
.select("pl.plan_no as planNo","po.amount as projectSubNum","ps.project_sub_code as projectSubCode","po.name as projectSubName","concat('BOM-', ps.project_sub_code) as bomCode")
.select("pl.plan_no as planNo","po.amount as projectSubNum","ps.project_sub_code as projectSubCode","po.name as projectSubName"," ps.project_sub_code as bomCode")
.leftJoin(PlanDO.class, "pl", PlanDO::getId, PlanTaskDO::getProjectPlanId)
.leftJoin(PlanSubDO.class, "ps", PlanSubDO::getId, PlanTaskDO::getProjectPlanSubId)
.leftJoin(ProjectOrderDO.class, "p", ProjectOrderDO::getId, PlanTaskDO::getProjectId)

View File

@ -93,7 +93,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
default PageResult<ProcessBomDetailDO> selectPageNew(ProcessBomPageReqVO reqVO) {
MPJLambdaWrapper<ProcessBomDetailDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProcessBomDetailDO.class)
.select("concat('BOM-', e.project_sub_code) as bomCode", "e.project_sub_code as projectSubCode")
.select("e.project_sub_code as bomCode", "e.project_sub_code as projectSubCode")
.select("a.plan_no as planCode", "b.code as projectCode", "c.name as customerName", "b.project_name as projectName")
.select("d.name as projectSubName,f.name as compositionName")
@ -108,7 +108,7 @@ public interface ProcessBomDetailMapper extends BaseMapperX<ProcessBomDetailDO>
.disableSubLogicDel()
;
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0},concat('BOM-', e.project_sub_code )) > 0", reqVO.getCode()))
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0}, e.project_sub_code ) > 0", reqVO.getCode()))
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode())
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName())

View File

@ -69,7 +69,7 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
default PageResult<ProcessBomDO> selectPages(ProcessBomPageReqVO reqVO) {
MPJLambdaWrapper<ProcessBomDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProcessBomDO.class)
.select("concat('BOM-', e.project_sub_code) as bomCode", "e.project_sub_code as projectSubCode")
.select(" e.project_sub_code as bomCode", "e.project_sub_code as projectSubCode")
// .select( "e.project_sub_code as projectSubCode")
.select("a.plan_no as planCode", "b.code as projectCode", "c.name as customerName", "b.project_name as projectName")
@ -83,7 +83,7 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
.disableSubLogicDel()
;
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0},concat('BOM-', e.project_sub_code )) > 0", reqVO.getCode()))
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0}, e.project_sub_code ) > 0", reqVO.getCode()))
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode())
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName())
@ -100,7 +100,7 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
default PageResult<ProcessBomDO> selectPage(ProcessBomPageReqVO reqVO) {
MPJLambdaWrapper<ProcessBomDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProcessBomDO.class)
.select("concat('BOM-', e.project_sub_code) as bomCode", "e.project_sub_code as projectSubCode")
.select(" e.project_sub_code as bomCode", "e.project_sub_code as projectSubCode")
.select("a.plan_no as planCode", "b.code as projectCode", "c.name as customerName", "b.project_name as projectName")
.select("d.name as projectSubName")
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessBomDO::getPlanId)
@ -112,7 +112,7 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
.disableSubLogicDel()
;
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0},concat('BOM-', e.project_sub_code )) > 0", reqVO.getCode()))
query.and(!StringUtils.isEmpty(reqVO.getCode()), QueryWrapper -> QueryWrapper.apply("locate({0}, e.project_sub_code ) > 0", reqVO.getCode()))
.like(!StringUtils.isEmpty(reqVO.getPlanCode()), PlanDO::getPlanNo, reqVO.getPlanCode())
.like(!StringUtils.isEmpty(reqVO.getProjectCode()), ProjectOrderDO::getCode, reqVO.getProjectCode())
.like(!StringUtils.isEmpty(reqVO.getCustomerName()), CustomerDO::getName, reqVO.getCustomerName())
@ -168,7 +168,7 @@ public interface ProcessBomMapper extends BaseMapperX<ProcessBomDO> {
default ProcessBomDO selectByIdbyid(Long id) {
MPJLambdaWrapper<ProcessBomDO> query = new MPJLambdaWrapper<>();
query.selectAll(ProcessBomDO.class)
.select("concat('BOM-', e.project_sub_code) as bomCode", "e.project_sub_code as projectSubCode")
.select(" e.project_sub_code as bomCode", "e.project_sub_code as projectSubCode")
.select("a.plan_no as planCode", "b.code as projectCode", "c.name as customerName", "b.project_name as projectName")
.select("d.name as projectSubName")
.leftJoin(PlanDO.class, "a", PlanDO::getId, ProcessBomDO::getPlanId)

View File

@ -1,6 +1,7 @@
package com.chanko.yunxi.mes.module.heli.dal.mysql.taskdispatch;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
@ -297,7 +298,7 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
return selectPage(reqVO, query);
}
default PageResult<TaskDispatchDetailDO> selectPageWx(TaskDispatchDetailPageReqVO reqVO , Set<String> postIds) {
default PageResult<TaskDispatchDetailDO> selectPageWx(TaskDispatchDetailPageReqVO reqVO , Map<String, Long> postIds) {
// 假设reqVO中包含了页码(page)和每页数量(limit)
MPJLambdaWrapper<TaskDispatchDetailDO> query = new MPJLambdaWrapper<>();
query.selectAll(TaskDispatchDetailDO.class)
@ -329,16 +330,35 @@ public interface TaskDispatchDetailMapper extends BaseMapperX<TaskDispatchDetail
.orderByAsc(TaskDispatchDetailDO::getDispatchId,TaskDispatchDetailDO::getSort)
;
}
// if (CollUtil.isNotEmpty(postIds)) {
// query.and(i -> i
// .and(j -> j.in(TaskDispatchDetailDO::getPostId, postIds))
// .and(j -> j.isNull(TaskDispatchDetailDO::getOwner))
// .or(k-> k.eq(reqVO.getOwner() != null, TaskDispatchDetailDO::getOwner, reqVO.getOwner()))
// );
// }else{
// query.eq(reqVO.getOwner() != null, TaskDispatchDetailDO::getOwner, reqVO.getOwner());
// }
if (CollUtil.isNotEmpty(postIds)) {
query.and(i -> i
.and(j -> j.in(TaskDispatchDetailDO::getPostId, postIds))
.and(j -> j.isNull(TaskDispatchDetailDO::getOwner))
.or(k-> k.eq(reqVO.getOwner() != null, TaskDispatchDetailDO::getOwner, reqVO.getOwner()))
query.and(i -> {
// 为每个岗位创建对应的工序查询条件
for (String postId : postIds.keySet()) {
Long processId = postIds.get(postId);
if (ObjectUtil.isNotEmpty(processId)) {
i.or(j -> j
.eq(TaskDispatchDetailDO::getPostId, postId)
.eq(TaskDispatchDetailDO::getProcedureId, processId)
.isNull(TaskDispatchDetailDO::getOwner)
);
}
}
});
// 添加所有者查询条件
query.or(k-> k.eq(reqVO.getOwner() != null, TaskDispatchDetailDO::getOwner, reqVO.getOwner()));
}else{
query.eq(reqVO.getOwner() != null, TaskDispatchDetailDO::getOwner, reqVO.getOwner());
}
query
.in(CollUtil.isNotEmpty(reqVO.getProcedureStatusList()), TaskDispatchDetailDO::getProcedureStatus, reqVO.getProcedureStatusList())
.eq(reqVO.getIsReport() != null, ProcedureDO::getIsReport, reqVO.getIsReport())

View File

@ -1,5 +1,6 @@
package com.chanko.yunxi.mes.module.heli.service.fpuserdetail;
import cn.hutool.core.util.ObjectUtil;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.heli.controller.admin.fpuserdetail.vo.FpUserDetailPageReqVO;
@ -8,8 +9,10 @@ import com.chanko.yunxi.mes.module.heli.controller.admin.fpuserdetail.vo.FpUserD
import com.chanko.yunxi.mes.module.heli.controller.admin.fpuserdetail.vo.UserVo;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuser.FpUserDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.fpuserdetail.FpUserDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.procedure.ProcedureDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuser.FpUserMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.fpuserdetail.FpUserDetailMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.procedure.ProcedureMapper;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
@ -32,6 +35,8 @@ public class FpUserDetailServiceImpl implements FpUserDetailService {
private FpUserDetailMapper fpUserDetailMapper;
@Resource
private FpUserMapper fpUserMapper;
@Resource
private ProcedureMapper procedureMapper;
@Override
public Long createFpUserDetail(FpUserDetailSaveReqVO createReqVO) {
if (createReqVO.getType()!=null){
@ -55,6 +60,11 @@ public class FpUserDetailServiceImpl implements FpUserDetailService {
fpUserDetailDO.setBusyId(user.getBusyId());
fpUserDetailDO.setPostId(user.getPostId());
fpUserDetailDO.setIsRes(user.getIsRes());
fpUserDetailDO.setProcedureId(user.getProcedureId());
ProcedureDO procedureDO = procedureMapper.selectById(user.getProcedureId());
if (ObjectUtil.isNotEmpty(procedureDO)){
fpUserDetailDO.setCode(procedureDO.getCode());
}
fpUserDetailMapper.insert(fpUserDetailDO);
}
}

View File

@ -77,9 +77,9 @@ public class PgMasterServiceImpl implements PgMasterService {
pgMasterLineDO.setProcedureId(taskDispatchDetailDO.getProcedureId());
pgMasterLineDO.setDispatchDetailId(taskDispatchDetailDO.getId());
//bom名称
pgMasterLineDO.setBomName("BOM-"+o.getProjectSubShortName());
pgMasterLineDO.setBomName(o.getProjectSubShortName());
//bom编号
pgMasterLineDO.setBomNumber("BOM-"+o.getProjectSubShortName());
pgMasterLineDO.setBomNumber(o.getProjectSubShortName());
//bom版本号
pgMasterLineDO.setBomNo(o.getVersion());
//子项目id
@ -141,8 +141,8 @@ public class PgMasterServiceImpl implements PgMasterService {
processBomDOList.forEach( o ->{
PgMasterLineDO pgMasterLineDO = new PgMasterLineDO();
pgMasterLineDO.setBomId(o.getBomId());
pgMasterLineDO.setBomName("BOM-"+o.getProjectSubShortName());
pgMasterLineDO.setBomNumber("BOM-"+o.getProjectSubShortName());
pgMasterLineDO.setBomName(o.getProjectSubShortName());
pgMasterLineDO.setBomNumber(o.getProjectSubShortName());
pgMasterLineDO.setBomNo(o.getVersion());
pgMasterLineDO.setProjectSubId(o.getProjectSubId());
pgMasterLineDO.setProjectSubName(o.getProjectSubShortName());

View File

@ -667,7 +667,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("BOM" + updateObj.getProjectSubCode() + "审核已通过,请推送任务通知单");//事件名称
BdgzsomthingDO.setThings( updateObj.getProjectSubCode() + "审核已通过,请推送任务通知单");//事件名称
BdgzsomthingDO.setAttr2(getplanid.getPlanNo());//跳转携带参数
BdgzsomthingDO.setAttr3(getplanid.getPlanNo());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
@ -723,7 +723,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
updateObj.setBomStatus(ProcessBomStatusEnum.valueOf(updateReqVO.getActive()).getCode());
}
if (updateReqVO.getProjectSubCode() != null){
updateObj.setCode("BOM-"+updateReqVO.getProjectSubCode() );
updateObj.setCode(updateReqVO.getProjectSubCode() );
}
processBomMapper.updateById(updateObj);
@ -908,7 +908,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("BOM" + processBomDO.getProjectSubCode() + "已变更");//事件名称
BdgzsomthingDO.setThings( processBomDO.getProjectSubCode() + "已变更");//事件名称
BdgzsomthingDO.setAttr2(processBomDO.getProjectSubCode());//跳转携带参数
BdgzsomthingDO.setAttr3(processBomDO.getProjectSubCode());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期
@ -981,7 +981,7 @@ public class ProcessBomServiceImpl implements ProcessBomService {
// for (StorageLogNowDO storageLogNowDO : pageResult) {
bdgzsomthingDO BdgzsomthingDO = new bdgzsomthingDO();
BdgzsomthingDO.setThingname(attentiontodoRespVO.getEvent());//事件名称
BdgzsomthingDO.setThings("BOM" + processBomDO.getProjectSubCode() + "已提交送审");//事件名称
BdgzsomthingDO.setThings( processBomDO.getProjectSubCode() + "已提交送审");//事件名称
BdgzsomthingDO.setAttr2(processBomDO.getProjectSubCode());//跳转携带参数
BdgzsomthingDO.setAttr3(processBomDO.getProjectSubCode());//独特标识
// BdgzsomthingDO.setClicktime(attentiontodoRespVO.getRemindtime());//提醒周期

View File

@ -540,9 +540,11 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
@Override
public PageResult<TaskDispatchDetailDO> getTaskDispatchDetailPageWx(TaskDispatchDetailPageReqVO pageReqVO) {
List<FpUserDetailDO> fpUserDetailDOS = fpUserDetailMapper.selectList(new LambdaQueryWrapper<FpUserDetailDO>().eq(FpUserDetailDO::getBusyId, pageReqVO.getOwner()));
Set<String> postIds = new HashSet<>();
// Set<String> postIds = new HashSet<>();
// Set<String> procedureIds = new HashSet<>();
Map<String,Long> postIds = new HashMap<>();
for (FpUserDetailDO fpUserDetailDO : fpUserDetailDOS) {
postIds.add(fpUserDetailDO.getPostId());
postIds.put(fpUserDetailDO.getPostId(), fpUserDetailDO.getProcedureId());
}
PageResult<TaskDispatchDetailDO> taskDispatchDetailDOPageResult = taskDispatchDetailMapper.selectPageWx(pageReqVO, postIds);
List<TaskDispatchDetailDO> list = taskDispatchDetailDOPageResult.getList();

View File

@ -291,8 +291,7 @@ try {
public PageResult<QualityStatistics> getUnqualifiedNotificationStatisticPage(UnqualifiedNotificationPageReqVO pageReqVO) {
Page<QualityStatistics> page = new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize());
List<QualityStatistics> qualityStatistics = unqualifiedNotificationMapper.QualityStatistics(page, pageReqVO);
// return new PageResult<>(qualityStatistics, page.getTotal());
return null;
return new PageResult<>(qualityStatistics, page.getTotal());
}
}

View File

@ -17,10 +17,10 @@
(
SELECT
t.create_time as createTime,
t.project_name AS projectName,
p.project_name AS projectName,
c.NAME AS customerName,
t.project_sub_name AS projectSubName,
t.bom_name AS bomName,
pg.project_sub_name AS projectSubName,
pg.bom_name AS bomName,
0 AS type,
CASE
@ -37,25 +37,26 @@
DATE_FORMAT(t.audit_time, '%Y-%m-%d') AS auditTime,
t.audit_opinion AS auditOpinion,
p.CODE AS projectCode,
t.project_sub_number AS projectSubNumber
pg.project_sub_number AS projectSubNumber
FROM
quality_pg_master_line t
LEFT JOIN project_sale_order p ON t.project_id = p.id
quality_bg_master_line t
left join quality_pg_master_line pg on t.zj_mx_id=pg.id
LEFT JOIN project_sale_order p ON pg.project_id = p.id
LEFT JOIN base_customer c ON p.customer_id = c.id
LEFT JOIN system_users u1 ON t.detil_user = u1.id
LEFT JOIN system_users u1 ON pg.detil_user = u1.id
LEFT JOIN system_users u2 ON t.auditor = u2.id
LEFT JOIN base_procedure pro ON t.procedure_id = pro.id
LEFT JOIN base_procedure pro ON pg.procedure_id = pro.id
WHERE
t.is_qua = 1
AND t.deleted = 0
group by t.id
UNION ALL
SELECT
t.create_time as createTime,
t.project_name AS projectName,
pg.project_name AS projectName,
c.NAME AS customerName,
t.project_sub_name AS projectSubName,
pg.project_sub_name AS projectSubName,
'' AS bomName,
1 AS type,
CASE
@ -73,16 +74,18 @@
DATE_FORMAT(t.audit_time, '%Y-%m-%d') AS auditTime,
t.audit_opinion AS auditOpinion,
p.CODE AS projectCode,
t.project_sub_number AS projectSubNumber
pg.project_sub_number AS projectSubNumber
FROM
quality_zj_pg_master_line t
LEFT JOIN project_sale_order p ON t.project_id = p.id
quality_zj_bg_master_line t
left join quality_zj_pg_master_line pg on t.zj_mx_id=pg.id
LEFT JOIN project_sale_order p ON pg.project_id = p.id
LEFT JOIN base_customer c ON p.customer_id = c.id
LEFT JOIN system_users u1 ON t.detil_user = u1.id
LEFT JOIN system_users u1 ON pg.detil_user = u1.id
LEFT JOIN system_users u2 ON t.auditor = u2.id
WHERE
t.is_qua = 1
AND t.deleted = 0
group by t.id
) t
where 1=1
<if test="pageReqVO.projectCode!=null and pageReqVO.projectCode!=''">

View File

@ -663,7 +663,7 @@ const handlePay =async (row: any) => {
// router.push({ path: '/order/project', state: { idid: row.idid } });
}
if (row.type == '《物料需求计划》提交后') {
// await bdgzsomthingApi.deleteByIdNew(row.id);
await bdgzsomthingApi.deleteByIdNew(row.id);
if (row.attr14=='0'){
router.push({ path: '/purchase/buy', state: { idid: row.idid } });
@ -678,6 +678,9 @@ const handlePay =async (row: any) => {
if (row.type == 'BOM变更审核') {
// router.push({ path: '/processDesign/heli/processdesign/bomShenhe', state: { idid: row.idid } });
router.push({ path: '/processDesign/heli/processdesign/bomShenhe', state: { idid: row.idid } });
await bdgzsomthingApi.updatebdgzsomthingbyidoneandok(row.id) //
}
if (row.type == '《采购订单》到货时通知检验') {
await bdgzsomthingApi.updatebdgzsomthingbyidoneandok(row.id) //
}
if (row.type == 'BOM变更通知') {

View File

@ -75,6 +75,15 @@
</el-select>
</template>
</el-table-column>
<el-table-column prop="procedureId" min-width="200" label="工序" align="center" >
<template #default="scope">
<el-select v-model="scope.row.procedureId" element-loading-background="rgb(255, 255, 255)" filterable placeholder="请选择" >
<el-option
v-for="dict in procedureList" :key="dict.id"
:label="dict.name" :value="dict.id" />
</el-select>
</template>
</el-table-column>
<el-table-column prop="description" min-width="200" label="是否是负责人" align="center">
<template #default="scope">
<el-select v-model="scope.row.isRes" element-loading-background="rgb(255, 255, 255)" placeholder="请选择" >
@ -107,12 +116,12 @@
</template>
<script setup lang="ts">
import * as FpUserDetailApi from '@/api/heli/fpuserdetail'
import * as ProcedureApi from '@/api/heli/procedure'
import {ref} from "vue";
import * as UserApi from "@/api/system/user";
import { useTagsViewStore } from '@/store/modules/tagsView'
import router from "@/router";
import {handleTree} from "@/utils/tree";
import {DICT_TYPE, getStrDictOptions} from "@/utils/dict";
const { t } = useI18n() //
@ -136,6 +145,11 @@ const formData = ref({
})
const formRules = reactive({
})
const queryParams = {
pageNo: 1,
pageSize: 99,
status:1
}
const isResList = ref([
{ id: 'Y', name: '是' },
{ id: 'N', name: '否' }
@ -150,13 +164,17 @@ const typeList = ref([
{ id: 1, name: '任务单'},
{ id: 2, name: '其他' }
]);
const procedureList = ref()
const formRef = ref() // Ref
onMounted(async () => {
const data = await UserApi.getSimpleUserList()
userSelectList.value = data
console.log(formData.value)
const data1 = await ProcedureApi.getProcedurePage(queryParams)
procedureList.value=data1.list
formData.value.userList=await FpUserDetailApi.selectFpUserDetail(formData.value)
})
/** 打开弹窗 */
// const open = async (type: string, id?: number) => {
// dialogVisible.value = true

View File

@ -68,6 +68,7 @@
</el-table-column>
<el-table-column label="业务人名称" align="center" prop="nickName" />
<el-table-column label="岗位" align="center" prop="postId" />
<el-table-column label="工序" align="center" prop="procedureName" />
<el-table-column label="是否负责人" align="center" prop="isRes" >
<template #default="scope">
<el-tag v-if="scope.row.isRes == 'Y'" type="success"></el-tag>

View File

@ -46,7 +46,7 @@
<dict-tag :type="DICT_TYPE.HELI_MAT_TYPE" :value="scope.row.matType" />
</template>
</el-table-column>
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" min-width="180" fixed>
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" min-width="180" >
<template #default="scope">
<el-button text type="primary" @click="openForm('detail', scope.row.id)">
{{ scope.row.projectMaterialPlanNo }}

View File

@ -46,7 +46,7 @@
<dict-tag :type="DICT_TYPE.HELI_MAT_TYPE" :value="scope.row.matType" />
</template>
</el-table-column>
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" min-width="180" fixed>
<el-table-column label="物料需求计划单号" align="center" prop="projectMaterialPlanNo" min-width="180" >
<template #default="scope">
<el-button text type="primary" @click="openForm('detail', scope.row.id)">
{{ scope.row.projectMaterialPlanNo }}

View File

@ -118,7 +118,7 @@
<el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />
<el-table-column label="BOM清单号" align="center" prop="bomCode" width="180">
<template #default="scope">
{{'BOM-'+scope.row.projectSubCode}}
{{scope.row.projectSubCode}}
</template>
</el-table-column>
<el-table-column label="数量" align="center" prop="amount" width="160" />

View File

@ -940,7 +940,7 @@ const queryData = async (id?: number) => {
}
formData.value.taskDispatchDetails = await TaskDispatchApi.getTaskDispatchDetailListByDispatchIdNew(id,'ASSEMBLE');
formData.value.bomCode = 'BOM-' + formData.value.projectSubCode
formData.value.bomCode = formData.value.projectSubCode
if (formData.value.dispatchStatus == 2) {
detailDisabled.value = true
}

View File

@ -1312,7 +1312,7 @@ const queryData = async (id?: number) => {
}
}
formData.value.bomCode = 'BOM-' + formData.value.projectSubCode
formData.value.bomCode = formData.value.projectSubCode
if (formData.value.dispatchStatus == 2 ) {
detailDisabled.value = true
}else{

View File

@ -81,7 +81,7 @@
</template>
</el-table-column>
<el-table-column label="项目编号" align="center" prop="projectCode" width="220" />
<el-table-column label="子项目编号" align="center" prop="projectSubCode" width="260" />
<el-table-column label="子项目编号" align="center" prop="projectSubNumber" width="260" />
</el-table>
<!-- 分页 -->

View File

@ -35,7 +35,8 @@
<view v-if="item.unReadCount>=0" class="center-msg">
<!-- <span class="msg-text">消息通知</span> -->
<text class="unread-badge" v-if="item.unReadCount>0">{{ item.unReadCount }}</text>
<image class="icon" :src="item.imgUrl" mode="scaleToFill"></image>
<image v-if="item.auth" class="icon" :src="item.imgUrl" mode="scaleToFill"></image>
<image v-else class="icon" :src="item.defaultImgUrl" mode="scaleToFill"></image>
</view>
<view v-else>

View File

@ -63,14 +63,14 @@ const categoryList = ref([
name: "采购单审批",
auth: true,
imgUrl: "/static/images/pic_cgdsp.png",
defaultImgUrl: "/static/images/pic_cgdsp.png",
defaultImgUrl: "/static/images/assembleReport-default.png",
},
{
path: "messageNotification",
name: "消息通知",
auth: true,
imgUrl: "/static/images/pic_message.png",
defaultImgUrl: "",
defaultImgUrl: "/static/images/assembleReport-default.png",
unReadCount: 0, //
},
]);
@ -101,11 +101,14 @@ const getHomeCategory = async () => {
if (menus.length) {
const arr = [];
categoryList.value.forEach((e) => {
if (e.path === 'cgdsp') return;
// if (e.path === 'cgdsp') return;
const target = menus.find((q) => q.path == e.path);
e.auth = !!target;
});
}
categoryList.value = categoryList.value.filter(item => item.auth == true);
const unReadCount = await getUnreadMessage();
const count = await countReview();
//
@ -117,11 +120,11 @@ const getHomeCategory = async () => {
);
if (cgdsp){
cgdsp.unReadCount = count;
cgdsp.auth=true
// cgdsp.auth=true
}
if (msgItem) {
msgItem.unReadCount = unReadCount;
msgItem.auth=true
// msgItem.auth=true
}
if (loginStore.userInfo.userId) {
const obj = {