零件采购单审批

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 java.util.*;
import cn.smallbun.screw.core.util.ArrayUtils;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult; 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.query.LambdaQueryWrapperX;
import com.chanko.yunxi.mes.framework.mybatis.core.mapper.BaseMapperX; 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.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 org.apache.ibatis.annotations.Mapper;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*; import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*;
@ -43,4 +47,50 @@ public interface PurchaseOrderMakeMapper extends BaseMapperX<PurchaseOrderMakeDO
.orderByDesc(PurchaseOrderMakeDO::getId)); .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<PurchaseOrderMakeDetailDO> list= purchaseOrderMakeDetailMapper.selectList("purchase_order_id", updateReqVO.getId());
list.forEach(detailDO -> { list.forEach(detailDO -> {
purchaseOrderNoDetailMapper.deleteById(detailDO.getId()); purchaseOrderNoDetailMapper.deleteById(detailDO);
}); });
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId()); 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; package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.*; import java.util.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*; 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.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult; 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.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils; import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermake.PurchaseOrderMakeMapper; 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.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*; import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
/** /**
* 采购单主 Service 实现类 * 采购单主 Service 实现类
* *
* @author 管理员 * @author 管理员
*/ */
@Service @Service
@Validated @Validated
public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService { public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService {
@Resource @Resource
private PurchaseOrderMakeMapper purchaseOrderMakeMapper; private PurchaseOrderMakeMapper purchaseOrderMakeMapper;
@Override @Override
public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) { public Long createPurchaseOrderMake(PurchaseOrderMakeSaveReqVO createReqVO) {
// 插入 // 插入
PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class); PurchaseOrderMakeDO purchaseOrderMake = BeanUtils.toBean(createReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.insert(purchaseOrderMake); purchaseOrderMakeMapper.insert(purchaseOrderMake);
// 返回 // 返回
return purchaseOrderMake.getId(); return purchaseOrderMake.getId();
} }
@Override @Override
public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) { public void updatePurchaseOrderMake(PurchaseOrderMakeSaveReqVO updateReqVO) {
// 校验存在 // 校验存在
validatePurchaseOrderMakeExists(updateReqVO.getId()); validatePurchaseOrderMakeExists(updateReqVO.getId());
// 更新 // 更新
PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class); PurchaseOrderMakeDO updateObj = BeanUtils.toBean(updateReqVO, PurchaseOrderMakeDO.class);
purchaseOrderMakeMapper.updateById(updateObj); purchaseOrderMakeMapper.updateById(updateObj);
} }
@Override @Override
public void deletePurchaseOrderMake(Long id) { public void deletePurchaseOrderMake(Long id) {
// 校验存在 // 校验存在
validatePurchaseOrderMakeExists(id); validatePurchaseOrderMakeExists(id);
// 删除 // 删除
purchaseOrderMakeMapper.deleteById(id); purchaseOrderMakeMapper.deleteById(id);
} }
private void validatePurchaseOrderMakeExists(Long id) { private void validatePurchaseOrderMakeExists(Long id) {
if (purchaseOrderMakeMapper.selectById(id) == null) { if (purchaseOrderMakeMapper.selectById(id) == null) {
throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS); throw exception(PURCHASE_ORDER_MAKE_NOT_EXISTS);
} }
} }
@Override @Override
public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) { public PurchaseOrderMakeDO getPurchaseOrderMake(Long id) {
return purchaseOrderMakeMapper.selectById(id); return purchaseOrderMakeMapper.selectById(id);
} }
@Override @Override
public PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) { public PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO) {
return purchaseOrderMakeMapper.selectPage(pageReqVO); return purchaseOrderMakeMapper.selectJoinPage(pageReqVO);
} }
} }

View File

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

View File

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