零件采购单审批

This commit is contained in:
zhy 2025-06-26 09:20:09 +08:00
parent 9284906254
commit ee8e60d024
5 changed files with 136 additions and 81 deletions

View File

@ -2,10 +2,14 @@ package com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake;
import java.util.*;
import cn.smallbun.screw.core.util.ArrayUtils;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.apache.ibatis.annotations.Mapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*;
@ -43,4 +47,50 @@ public interface PurchaseOrderMakeMapper extends BaseMapperX<PurchaseOrderMakeDO
.orderByDesc(PurchaseOrderMakeDO::getId));
}
default PageResult<PurchaseOrderMakeDO> selectJoinPage(PurchaseOrderMakePageReqVO reqVO) {
// 引入 MPJLambdaWrapperMyBatis-Plus-Join 提供
MPJLambdaWrapper<PurchaseOrderMakeDO> wrapper = new MPJLambdaWrapper<>();
// 构建查询条件
wrapper
.selectAll(PurchaseOrderMakeDO.class) // 查询主表所有字段
.leftJoin(PurchaseOrderMakeDetailDO.class, "a", PurchaseOrderMakeDetailDO::getPurchaseOrderId, PurchaseOrderMakeDO::getId)
.like(Objects.nonNull(reqVO.getProjectSubName()), PurchaseOrderMakeDetailDO::getName, reqVO.getProjectSubName())
.leftJoin(SupplierDO.class, "b", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId)
.like(Objects.nonNull(reqVO.getSupplierName()), SupplierDO::getName, reqVO.getSupplierName())
// eqIfPresent 替换为 eq 方法并结合 Objects.nonNull 判断
.eq(Objects.nonNull(reqVO.getPurchaseNo()), PurchaseOrderMakeDO::getPurchaseNo, reqVO.getPurchaseNo())
.eq(Objects.nonNull(reqVO.getContractNo()), PurchaseOrderMakeDO::getContractNo, reqVO.getContractNo())
.eq(Objects.nonNull(reqVO.getPurchaseType()), PurchaseOrderMakeDO::getPurchaseType, reqVO.getPurchaseType())
.eq(Objects.nonNull(reqVO.getGoodsType()), PurchaseOrderMakeDO::getGoodsType, reqVO.getGoodsType())
.eq(Objects.nonNull(reqVO.getCurrencyType()), PurchaseOrderMakeDO::getCurrencyType, reqVO.getCurrencyType())
.eq(Objects.nonNull(reqVO.getTaxRatio()), PurchaseOrderMakeDO::getTaxRatio, reqVO.getTaxRatio())
.eq(Objects.nonNull(reqVO.getEstimatedPrice()), PurchaseOrderMakeDO::getEstimatedPrice, reqVO.getEstimatedPrice())
.eq(Objects.nonNull(reqVO.getActualPrice()), PurchaseOrderMakeDO::getActualPrice, reqVO.getActualPrice())
.eq(Objects.nonNull(reqVO.getStatus()), PurchaseOrderMakeDO::getStatus, reqVO.getStatus())
.eq(Objects.nonNull(reqVO.getSubmitUserId()), PurchaseOrderMakeDO::getSubmitUserId, reqVO.getSubmitUserId())
.eq(Objects.nonNull(reqVO.getAuditor()), PurchaseOrderMakeDO::getAuditor, reqVO.getAuditor())
.eq(Objects.nonNull(reqVO.getDescription()), PurchaseOrderMakeDO::getDescription, reqVO.getDescription())
.eq(Objects.nonNull(reqVO.getProjectId()), PurchaseOrderMakeDO::getProjectId, reqVO.getProjectId())
.eq(Objects.nonNull(reqVO.getProjectPlanId()), PurchaseOrderMakeDO::getProjectPlanId, reqVO.getProjectPlanId())
.eq(Objects.nonNull(reqVO.getCustomerId()), PurchaseOrderMakeDO::getCustomerId, reqVO.getCustomerId())
.eq(Objects.nonNull(reqVO.getBrief()), PurchaseOrderMakeDO::getBrief, reqVO.getBrief())
// likeIfPresent 替换为 like
.like(Objects.nonNull(reqVO.getProjectName()), PurchaseOrderMakeDO::getProjectName, reqVO.getProjectName())
.eq(Objects.nonNull(reqVO.getProjectNameSim()), PurchaseOrderMakeDO::getProjectNameSim, reqVO.getProjectNameSim())
.orderByDesc(PurchaseOrderMakeDO::getId);
// 使用 selectJoinPage 进行分页查询
return selectJoinPage(reqVO, PurchaseOrderMakeDO.class, wrapper);
}
}

View File

@ -133,7 +133,7 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
List<PurchaseOrderMakeDetailDO> list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId());
list.forEach(detailDO -> {
purchaseOrderNoDetailMapper.deleteById(detailDO.getId());
purchaseOrderNoDetailMapper.deleteById(detailDO);
});
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId());

View File

@ -1,74 +1,74 @@
package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/**
* 采购单主 Service 实现类
*
* @author 管理员
*/
@Service
@Validated
public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService {
@Resource
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
@Override
public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) {
// 插入
PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.insert(purchaseOrderMake);
// 返回
return purchaseOrderMake.getId();
}
@Override
public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) {
// 校验存在
validatePurchaseOrderMakeExists(updateReqVO.getId());
// 更新
PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.updateById(updateObj);
}
@Override
public void deletePurchaseOrderMake(Long id) {
// 校验存在
validatePurchaseOrderMakeExists(id);
// 删除
purchaseOrderMakeMapper.deleteById(id);
}
private void validatePurchaseOrderMakeExists(Long id) {
if (purchaseOrderMakeMapper.selectById(id) == null) {
throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS);
}
}
@Override
public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) {
return purchaseOrderMakeMapper.selectById(id);
}
@Override
public PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) {
return purchaseOrderMakeMapper.selectPage(pageReqVO);
}
}
package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper;
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/**
* 采购单主 Service 实现类
*
* @author 管理员
*/
@Service
@Validated
public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService {
@Resource
private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
@Override
public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) {
// 插入
PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.insert(purchaseOrderMake);
// 返回
return purchaseOrderMake.getId();
}
@Override
public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) {
// 校验存在
validatePurchaseOrderMakeExists(updateReqVO.getId());
// 更新
PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.updateById(updateObj);
}
@Override
public void deletePurchaseOrderMake(Long id) {
// 校验存在
validatePurchaseOrderMakeExists(id);
// 删除
purchaseOrderMakeMapper.deleteById(id);
}
private void validatePurchaseOrderMakeExists(Long id) {
if (purchaseOrderMakeMapper.selectById(id) == null) {
throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS);
}
}
@Override
public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) {
return purchaseOrderMakeMapper.selectById(id);
}
@Override
public PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) {
return purchaseOrderMakeMapper.selectJoinPage(pageReqVO);
}
}

View File

@ -60,8 +60,10 @@
</el-card>
</el-form>
<div class="hl-footer text-center">
<el-button v-if="formData.type === 'check'" @click="approve" size="large"> </el-button>
<el-button v-if="formData.type === 'cehck'" @click="handleReject" size="large"> </el-button>
<template v-if="formData.type === 'check'">
<el-button @click="approve" size="large"> </el-button>
<el-button @click="handleReject" size="large"> </el-button>
</template>
</div>
</el-card>
@ -115,7 +117,7 @@ const formData = ref({
matBoomDOList: [],
matItemRemoveList: [],
attachments: [],
type: query.type
type: undefined,
})
const formRef = ref() // Ref
@ -131,7 +133,8 @@ const updateParams = reactive({
const approve = async () => {
await PartPurchaseOrderApi.updatePurchaseOrderMake(formData.value.id)
console.log("批准成功")
message.success("提交成功");
getList();
}
const handleReject = async () => {
@ -158,7 +161,8 @@ const reject = async(reason) => {
updateParams.reason = reason
//
await PartPurchaseOrderApi.updatePurchaseOrderMakeNo(updateParams)
console.log("驳回成功")
message.success("已驳回");
getList();
}
@ -177,6 +181,7 @@ const queryParams = reactive({
onMounted(async () => {
//
formData.value = await PartPurchaseOrderApi.getPurchaseOrderMake(query.id)
formData.value.type = query.type
getList();
})
const getList = async () => {

View File

@ -80,7 +80,7 @@
v-if="scope.row.status === 1"
link
type="primary"
@click="openForm('detail', scope.row.id)"
@click="openForm('check', scope.row.id)"
>
去审核
</el-button>