修改bug
This commit is contained in:
parent
773bed8910
commit
6a80317365
@ -151,7 +151,7 @@ public class bdgzsomthingController {
|
||||
BeanUtils.toBean(list, bdgzsomthingRespVO.class));
|
||||
}
|
||||
|
||||
@Scheduled(fixedRate = 10800000)
|
||||
// @Scheduled(fixedRate = 10800000)
|
||||
public void scheduledTask() {
|
||||
bdgzsomthingService.selectds();
|
||||
}
|
||||
@ -159,15 +159,15 @@ public class bdgzsomthingController {
|
||||
//@Scheduled(cron = "0 2 0 * * ?") //每天十天执行一次
|
||||
@PostConstruct
|
||||
public void init() {
|
||||
selectHasPrice();
|
||||
selectSafeStorageAndDeliverOneYear();
|
||||
// selectHasPrice();
|
||||
// selectSafeStorageAndDeliverOneYear();
|
||||
}
|
||||
@Scheduled(cron = "0 0 2 * * ?")
|
||||
// @Scheduled(cron = "0 0 2 * * ?")
|
||||
public void selectHasPrice(){
|
||||
bdgzsomthingService.selectHasPrice();
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 0 0 * * ?")
|
||||
// @Scheduled(cron = "0 0 0 * * ?")
|
||||
public void selectSafeStorageAndDeliverOneYear(){bdgzsomthingService.selectSafeStorageAndDeliverOneYear();}
|
||||
@PostMapping("/getMessage")
|
||||
@Operation(summary = "小程序消息")
|
||||
|
@ -115,12 +115,12 @@ public class PurchaseOrderMakeController {
|
||||
public CommonResult<Boolean> updatePartCheckNo(@Valid PurchaseOrderMakeSaveReqVO updateReqVO) {
|
||||
return success(partPurchaseOrderService.updatePartCheckStatusNo(updateReqVO));
|
||||
}
|
||||
@PutMapping("/reject")
|
||||
@GetMapping("/reject")
|
||||
@Operation(summary = "采购审批驳回")
|
||||
public CommonResult<Boolean> reject(@Valid PurchaseOrderMakeSaveReqVO updateReqVO) {
|
||||
return success(partPurchaseOrderService.reject(updateReqVO));
|
||||
public CommonResult<Boolean> reject(@RequestParam("id") Long id) {
|
||||
return success(partPurchaseOrderService.reject(id));
|
||||
}
|
||||
@PutMapping("/approval")
|
||||
@GetMapping("/approval")
|
||||
@Operation(summary = "采购单批准")
|
||||
public CommonResult<Boolean> approval(@RequestParam("id") Long id) {
|
||||
return success(partPurchaseOrderService.approval(id));
|
||||
@ -135,8 +135,20 @@ public class PurchaseOrderMakeController {
|
||||
|
||||
@PostMapping("/createPurchaseOrderMakeAndDetail")
|
||||
@Operation(summary = "零件采购单送审生成")
|
||||
// @PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
|
||||
@PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
|
||||
public CommonResult<Boolean> createPurchaseOrderMakeAndDetail(@Valid @RequestBody List<PurchaseOrderMakeSaveReqVO> saveReqVOs) {
|
||||
return success(partPurchaseOrderService.createPurchaseOrderMakeAndDetailBatch(saveReqVOs));
|
||||
}
|
||||
@GetMapping("/review")
|
||||
@Operation(summary = "小程序采购单审核分页")
|
||||
@PreAuthorize("@ss.hasPermission('heli:purchase-order-make:query')")
|
||||
public CommonResult<PageResult<PurchaseOrderMakeRespVO>> review(@Valid PurchaseOrderMakePageReqVO pageReqVO) {
|
||||
PageResult<PurchaseOrderMakeDO> pageResult = purchaseOrderMakeService.review(pageReqVO);
|
||||
return success(BeanUtils.toBean(pageResult, PurchaseOrderMakeRespVO.class));
|
||||
}
|
||||
@GetMapping("/obtainReviewDetails")
|
||||
@Operation(summary = "小程序采购单审核详情")
|
||||
public CommonResult<PurchaseOrderMakeDO> obtainReviewDetails(@RequestParam("id") Long id) {
|
||||
return partPurchaseOrderService.obtainReviewDetails(id);
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,13 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class Log {
|
||||
private String operation;
|
||||
private String operationName;
|
||||
private LocalDateTime operationTime;
|
||||
}
|
@ -1,5 +1,6 @@
|
||||
package com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
@ -101,5 +102,10 @@ public class PurchaseOrderMakeRespVO {
|
||||
@Schema(description = "项目名称简码")
|
||||
@ExcelProperty("项目名称简码")
|
||||
private String projectNameSim;
|
||||
|
||||
@Schema(description = "送审人姓名")
|
||||
@ExcelProperty("送审人姓名")
|
||||
private String submitUserName;
|
||||
@Schema(description = "采购单类型")
|
||||
@ExcelProperty("采购单类型")
|
||||
private String purchaseOrderType;
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.Log;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
||||
import lombok.*;
|
||||
import java.util.*;
|
||||
import java.math.BigDecimal;
|
||||
@ -111,5 +113,12 @@ public class PurchaseOrderMakeDO extends BaseDO {
|
||||
* 项目名称简码
|
||||
*/
|
||||
private String projectNameSim;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String submitUserName;
|
||||
@TableField(exist = false)
|
||||
private List<PurchaseOrderMakeDetailDO> purchaseOrderMakeDetailDOList;
|
||||
@TableField(exist = false)
|
||||
private List<Log> logList;
|
||||
@TableField(exist = false)
|
||||
private String purchaseOrderType;
|
||||
}
|
||||
|
@ -156,5 +156,10 @@ public class PurchaseOrderMakeDetailDO extends BaseDO {
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Long materialId;
|
||||
/**
|
||||
* 工序名称
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private Long procedureName;
|
||||
|
||||
}
|
||||
|
@ -9,6 +9,7 @@ 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.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.*;
|
||||
@ -88,10 +89,26 @@ public interface PurchaseOrderMakeMapper extends BaseMapperX<PurchaseOrderMakeDO
|
||||
.eq(Objects.nonNull(reqVO.getProjectNameSim()), PurchaseOrderMakeDO::getProjectNameSim, reqVO.getProjectNameSim())
|
||||
.groupBy(PurchaseOrderMakeDO::getId)
|
||||
.orderByDesc(PurchaseOrderMakeDO::getId);
|
||||
|
||||
// 使用 selectJoinPage 进行分页查询
|
||||
// 使用 selectJoinPage 进行分页查询
|
||||
return selectJoinPage(reqVO, PurchaseOrderMakeDO.class, wrapper);
|
||||
|
||||
}
|
||||
|
||||
default PageResult<PurchaseOrderMakeDO> review(PurchaseOrderMakePageReqVO pageReqVO){
|
||||
// 引入 MPJLambdaWrapper(MyBatis-Plus-Join 提供)
|
||||
MPJLambdaWrapper<PurchaseOrderMakeDO> wrapper = new MPJLambdaWrapper<>();
|
||||
// 构建查询条件
|
||||
wrapper.selectAll(PurchaseOrderMakeDO.class)
|
||||
.select(
|
||||
"CASE " +
|
||||
"WHEN a.goods_type = 1 THEN '物料' " +
|
||||
"WHEN a.goods_type = 2 THEN '加工件' " +
|
||||
"ELSE '其他' " +
|
||||
"END AS purchaseOrderType"
|
||||
)
|
||||
.select("u.nickname as submitUserName")// 查询主表所有字段
|
||||
.leftJoin(AdminUserDO.class,"u", AdminUserDO::getId, PurchaseOrderMakeDO::getSubmitUserId);
|
||||
wrapper.eq(PurchaseOrderMakeDO::getStatus, pageReqVO.getStatus())
|
||||
.eq(PurchaseOrderMakeDO::getSubmitUserId,pageReqVO.getSubmitUserId() );
|
||||
return selectPage(pageReqVO, wrapper);
|
||||
}
|
||||
}
|
@ -22,6 +22,7 @@ import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.Purchas
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermakedetail.PurchaseOrderMakeDetailDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.supplier.SupplierDO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.taskdispatch.TaskDispatchDetailDO;
|
||||
import com.chanko.yunxi.mes.module.heli.service.purchaseordermakedetail.PurchaseOrderMakeDetailService;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
@ -143,4 +144,14 @@ public interface PurchaseOrderMakeDetailMapper extends BaseMapperX<PurchaseOrder
|
||||
PageResult<PartPurchaseOrderPageRespVO> pageResult = selectJoinPage(partPurchaseOrderPageReqVO, PartPurchaseOrderPageRespVO.class, query);
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
default List<PurchaseOrderMakeDetailDO> getByPurchaseOrderId(Long id){
|
||||
MPJLambdaWrapper<PurchaseOrderMakeDetailDO> query = new MPJLambdaWrapper<>();
|
||||
query.selectAll(PurchaseOrderMakeDetailDO.class)
|
||||
.select("p.name as procedureName,s.name as supplierName")
|
||||
.leftJoin(ProcedureDO.class,"p", ProcedureDO::getId, PurchaseOrderMakeDetailDO::getProcedureId)
|
||||
.leftJoin(SupplierDO.class,"s", SupplierDO::getId, PurchaseOrderMakeDetailDO::getSupplierId);
|
||||
query.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId,id);
|
||||
return selectJoinList(PurchaseOrderMakeDetailDO.class, query);
|
||||
}
|
||||
}
|
||||
|
@ -1,9 +1,11 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.partpurchaseorder;
|
||||
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.purchaseordermake.PurchaseOrderMakeDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -53,11 +55,13 @@ public interface PartPurchaseOrderService {
|
||||
*/
|
||||
boolean updatePartCheckStatusNo(PurchaseOrderMakeSaveReqVO updateReqVO);
|
||||
|
||||
Boolean reject(PurchaseOrderMakeSaveReqVO updateReqVO);
|
||||
Boolean reject(Long id);
|
||||
|
||||
Boolean approval(Long id);
|
||||
|
||||
PageResult<PartPurchaseOrderPageRespVO> getDetail(PartPurchaseOrderPageReqVO partPurchaseOrderPageReqVO);
|
||||
|
||||
Boolean createPurchaseOrderMakeAndDetailBatch(List<PurchaseOrderMakeSaveReqVO> updateReqVOs);
|
||||
|
||||
CommonResult<PurchaseOrderMakeDO> obtainReviewDetails(Long id);
|
||||
}
|
||||
|
@ -1,12 +1,16 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.partpurchaseorder;
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
|
||||
import com.chanko.yunxi.mes.framework.mybatis.core.query.QueryWrapperX;
|
||||
import com.chanko.yunxi.mes.framework.security.core.util.SecurityFrameworkUtils;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.Log;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageReqVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PartPurchaseOrderPageRespVO;
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.purchaseordermake.vo.PurchaseOrderMakeSaveReqVO;
|
||||
@ -27,6 +31,8 @@ import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordermakedetail.Purcha
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseorderno.PurchaseOrderNoMapper;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.mysql.purchaseordernodetail.PurchaseOrderNoDetailMapper;
|
||||
import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService;
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -37,6 +43,7 @@ import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
@ -64,6 +71,8 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
private PlanMapper planMapper;
|
||||
@Autowired
|
||||
private PlanSubMapper planSubMapper;
|
||||
@Autowired
|
||||
private AdminUserService adminUserService;
|
||||
|
||||
@Override
|
||||
public PageResult<PartPurchaseOrderPageRespVO> getPartPurchaseOrderPage(PartPurchaseOrderPageReqVO pageReqVO) {
|
||||
@ -171,19 +180,19 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean reject(PurchaseOrderMakeSaveReqVO updateReqVO) {
|
||||
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(updateReqVO.getId());
|
||||
public Boolean reject(Long id) {
|
||||
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(id);
|
||||
if (orderMakeDO.getStatus() != 1) throw exception(new ErrorCode(400,"该单据状态非待审核,请刷新界面!"));
|
||||
|
||||
PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO();
|
||||
purchaseOrderMakeDO.setId(updateReqVO.getId());
|
||||
purchaseOrderMakeDO.setId(id);
|
||||
purchaseOrderMakeDO.setStatus(3);
|
||||
purchaseOrderMakeMapper.updateById(purchaseOrderMakeDO);
|
||||
purchaseOrderMakeMapper.deleteById(purchaseOrderMakeDO);
|
||||
LambdaUpdateWrapper<PurchaseOrderMakeDetailDO> wrapper = new LambdaUpdateWrapper<>();
|
||||
wrapper.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId, updateReqVO.getId());
|
||||
wrapper.eq(PurchaseOrderMakeDetailDO::getPurchaseOrderId, id);
|
||||
purchaseOrderMakeDetailMapper.delete(wrapper);
|
||||
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", updateReqVO.getId());
|
||||
List<MaterialPlanBoomDO> materialPlanBoomDOs= materialPlanBoomMapper.selectList("project_purchase_order_make_id", id);
|
||||
materialPlanBoomDOs.forEach(materialPlanBoom -> {
|
||||
UpdateWrapper<MaterialPlanBoomDO> updateWrapper = new UpdateWrapper<>();
|
||||
updateWrapper.eq("id", materialPlanBoom.getId())
|
||||
@ -236,6 +245,38 @@ public class PartPurchaseOrderServiceImpl implements PartPurchaseOrderService{
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<PurchaseOrderMakeDO> obtainReviewDetails(Long id) {
|
||||
PurchaseOrderMakeDO orderMakeDO = purchaseOrderMakeMapper.selectById(id);
|
||||
orderMakeDO.setPurchaseOrderType(orderMakeDO.getGoodsType()==1?"物料":"加工件");
|
||||
List<PurchaseOrderMakeDetailDO> purchaseOrderMakeDetail = purchaseOrderMakeDetailMapper.getByPurchaseOrderId(orderMakeDO.getId());
|
||||
orderMakeDO.setPurchaseOrderMakeDetailDOList(purchaseOrderMakeDetail);
|
||||
List<Log> logList=new ArrayList<>();
|
||||
if (ObjectUtil.isNotEmpty(orderMakeDO.getSubmitUserId())){
|
||||
AdminUserDO user = adminUserService.getUser(orderMakeDO.getSubmitUserId());
|
||||
if (ObjectUtil.isNotEmpty(user)){
|
||||
Log log = new Log();
|
||||
log.setOperation("送审");
|
||||
log.setOperationName(user.getNickname());
|
||||
log.setOperationTime(orderMakeDO.getSubmitTime());
|
||||
logList.add(log);
|
||||
orderMakeDO.setSubmitUserName(user.getNickname());
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtil.isNotEmpty(orderMakeDO.getAuditor())){
|
||||
AdminUserDO user = adminUserService.getUser(orderMakeDO.getAuditor());
|
||||
if (ObjectUtil.isNotEmpty(user)){
|
||||
Log log = new Log();
|
||||
log.setOperation("审批");
|
||||
log.setOperationName(user.getNickname());
|
||||
log.setOperationTime(orderMakeDO.getSubmitTime());
|
||||
logList.add(log);
|
||||
}
|
||||
}
|
||||
return CommonResult.success(orderMakeDO);
|
||||
}
|
||||
|
||||
public Boolean createPurchaseOrderMakeAndDetail(PurchaseOrderMakeSaveReqVO updateReqVO) {
|
||||
PurchaseOrderMakeDO purchaseOrderMakeDO = new PurchaseOrderMakeDO();
|
||||
// 返回
|
||||
|
@ -1,55 +1,56 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 采购单主 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface PurchaseOrderMakeService {
|
||||
|
||||
/**
|
||||
* 创建采购单主
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createPurchaseOrderMake(@Valid PurchaseOrderMakeSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新采购单主
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updatePurchaseOrderMake(@Valid PurchaseOrderMakeSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除采购单主
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deletePurchaseOrderMake(Long id);
|
||||
|
||||
/**
|
||||
* 获得采购单主
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 采购单主
|
||||
*/
|
||||
PurchaseOrderMakeDO getPurchaseOrderMake(Long id);
|
||||
|
||||
/**
|
||||
* 获得采购单主分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 采购单主分页
|
||||
*/
|
||||
PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO);
|
||||
|
||||
}
|
||||
package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
|
||||
|
||||
import java.util.*;
|
||||
import javax.validation.*;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 采购单主 Service 接口
|
||||
*
|
||||
* @author 管理员
|
||||
*/
|
||||
public interface PurchaseOrderMakeService {
|
||||
|
||||
/**
|
||||
* 创建采购单主
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createPurchaseOrderMake(@Valid PurchaseOrderMakeSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新采购单主
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updatePurchaseOrderMake(@Valid PurchaseOrderMakeSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除采购单主
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deletePurchaseOrderMake(Long id);
|
||||
|
||||
/**
|
||||
* 获得采购单主
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 采购单主
|
||||
*/
|
||||
PurchaseOrderMakeDO getPurchaseOrderMake(Long id);
|
||||
|
||||
/**
|
||||
* 获得采购单主分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 采购单主分页
|
||||
*/
|
||||
PageResult<PurchaseOrderMakeDO> getPurchaseOrderMakePage(PurchaseOrderMakePageReqVO pageReqVO);
|
||||
|
||||
PageResult<PurchaseOrderMakeDO> review(PurchaseOrderMakePageReqVO pageReqVO);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.purchaseordermake;
|
||||
|
||||
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import org.springframework.stereotype.Service;
|
||||
import javax.annotation.Resource;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
@ -15,6 +16,7 @@ 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.framework.security.core.util.SecurityFrameworkUtils.getLoginUser;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
/**
|
||||
@ -71,4 +73,10 @@ public class PurchaseOrderMakeServiceImpl implements PurchaseOrderMakeService {
|
||||
return purchaseOrderMakeMapper.selectJoinPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public PageResult<PurchaseOrderMakeDO> review(PurchaseOrderMakePageReqVO pageReqVO) {
|
||||
pageReqVO.setSubmitUserId(getLoginUser().getId());
|
||||
return purchaseOrderMakeMapper.review(pageReqVO);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -20,6 +20,7 @@ import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@ -165,16 +166,20 @@ public class StorageInServiceImpl implements StorageInService {
|
||||
wrapper.eq(StorageInDetailDO::getPurchaseOrderNoDetailId,purchaseOrderNoDetailDO.getId());
|
||||
wrapper.eq(StorageInDetailDO::getDeleted,0);
|
||||
List<StorageInDetailDO> storageInDetailDOS = storageInDetailMapper.selectList(wrapper);
|
||||
BigDecimal sum=BigDecimal.ZERO;
|
||||
BigDecimal StorageAmount=BigDecimal.ZERO;
|
||||
if (ObjectUtil.isNotEmpty(storageInDetailDOS)){
|
||||
BigDecimal StorageAmount = storageInDetailDOS.stream()
|
||||
StorageAmount = storageInDetailDOS.stream()
|
||||
.filter(Objects::nonNull) // 过滤掉空对象
|
||||
.map(StorageInDetailDO::getStorageAmount)
|
||||
.filter(Objects::nonNull) // 过滤掉空值
|
||||
.reduce(BigDecimal.ZERO, BigDecimal::add); // 累加求和
|
||||
BigDecimal sum = StorageAmount.add(amount);
|
||||
if (sum.compareTo(purchaseOrderNoDetailDO.getBoomAmount())>0){
|
||||
return CommonResult.error(400,"标准件名称"+purchaseOrderNoDetailDO.getBoomName()+"入库数量"+sum+"+本次入库数量"+amount+"大于需求数量"+purchaseOrderNoDetailDO.getBoomAmount()+"请确认!");
|
||||
}
|
||||
sum = StorageAmount.add(amount);
|
||||
}else{
|
||||
sum = amount;
|
||||
}
|
||||
if (sum.compareTo(purchaseOrderNoDetailDO.getBoomAmount())>0){
|
||||
return CommonResult.error(400,"标准件名称"+purchaseOrderNoDetailDO.getBoomName()+"入库数量"+StorageAmount+"+本次入库数量"+amount+"大于需求数量"+purchaseOrderNoDetailDO.getBoomAmount()+"请确认!");
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -201,7 +206,17 @@ public class StorageInServiceImpl implements StorageInService {
|
||||
storageInDetailDO.setBoomUnit(orderNoDetailDO.getBoomUnit());
|
||||
storageInDetailDO.setComposition(orderNoDetailDO.getComposition());
|
||||
storageInDetailDO.setPurchaseAmount(orderNoDetailDO.getPurchaseAmount());
|
||||
storageInDetailDO.setEstimatedPrice(orderNoDetailDO.getEstimatedPrice());
|
||||
BigDecimal result = BigDecimal.ZERO;
|
||||
BigDecimal estimatedPrice = orderNoDetailDO.getEstimatedPrice();
|
||||
BigDecimal purchaseAmount = orderNoDetailDO.getPurchaseAmount();
|
||||
// 检查两个值是否为null或0
|
||||
if (estimatedPrice != null &&
|
||||
purchaseAmount != null &&
|
||||
purchaseAmount.compareTo(BigDecimal.ZERO) != 0) {
|
||||
// 当两个值非空且除数非零时才进行计算
|
||||
result = estimatedPrice.divide(purchaseAmount, 1, RoundingMode.HALF_UP);
|
||||
}
|
||||
storageInDetailDO.setEstimatedPrice(orderNoDetailDO.getPurchaseRemAmounts().multiply( result));
|
||||
storageInDetailDO.setActualPrice(orderNoDetailDO.getActualPrice());
|
||||
storageInDetailDO.setBoomAmount(orderNoDetailDO.getBoomAmount());
|
||||
storageInDetailDO.setRequireTime(orderNoDetailDO.getRequireTime());
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.chanko.yunxi.mes.module.heli.service.taskdispatch;
|
||||
|
||||
import cn.hutool.core.bean.copier.BeanCopier;
|
||||
import cn.hutool.core.bean.copier.CopyOptions;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
@ -52,6 +54,7 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.math.BigDecimal;
|
||||
@ -61,7 +64,6 @@ import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.chanko.yunxi.mes.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||
import static com.chanko.yunxi.mes.module.heli.enums.ErrorCodeConstants.*;
|
||||
|
||||
@ -130,6 +132,32 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
// 返回
|
||||
return taskDispatch.getId();
|
||||
}
|
||||
public static boolean isDetailChanged(TaskDispatchDetailDO newDetail, TaskDispatchDetailDO oldDetail) {
|
||||
String[] DETAIL_FIELDS = {
|
||||
"owner", "workTime", "amount", "beforeAmount","summary","status","dispatchId","deviceModel","bomDetailId","startTime","detailOwnerId","testYn","checkYn","endTime"
|
||||
,"dispatchType","postId","isOutsourcing","projectMaterialPlanNo","projectMaterialPlanDetailId","planStatus"
|
||||
};
|
||||
|
||||
if (newDetail == null || oldDetail == null) return true;
|
||||
|
||||
for (String field : DETAIL_FIELDS) {
|
||||
Object v1 = BeanUtil.getFieldValue(newDetail, field);
|
||||
Object v2 = BeanUtil.getFieldValue(oldDetail, field);
|
||||
if ("isOutsourcing".equals(field)){
|
||||
if ("true".equals(v2)){
|
||||
v2="Y";
|
||||
}else {
|
||||
v2="N";
|
||||
}
|
||||
}
|
||||
if (!ObjectUtil.equal(v1, v2)) {
|
||||
System.out.println(v1);
|
||||
System.out.println(v2);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@ -149,23 +177,24 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
||||
throw exception(INVALID_OPERATE);
|
||||
}
|
||||
if (updateReqVO.getDispatchType() != null && updateReqVO.getDispatchType().equals("PRODUCTION")){
|
||||
List<Long> idList = updateReqVO.getTaskDispatchDetails().stream()
|
||||
List<TaskDispatchDetailDO> list = updateReqVO.getTaskDispatchDetails().stream()
|
||||
.filter(o -> o.getId() != null)
|
||||
.map(TaskDispatchDetailDO::getId)
|
||||
.collect(Collectors.toList());
|
||||
if (ObjectUtil.isNotEmpty(idList)){
|
||||
LambdaQueryWrapper<TaskDispatchDetailDO> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.in(TaskDispatchDetailDO::getId, idList);
|
||||
wrapper.eq(TaskDispatchDetailDO::getDeleted, 0);
|
||||
List<TaskDispatchDetailDO> detailDOS = taskDispatchDetailMapper.selectList(wrapper);
|
||||
if (ObjectUtil.isNotEmpty(list)){
|
||||
TaskDispatchDO taskDispatchDO = taskDispatchMapper.selectById(updateObj.getId());
|
||||
for (TaskDispatchDetailDO dispatchDetailDO : detailDOS) {
|
||||
if (dispatchDetailDO.getPlanStatus()==1){
|
||||
ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(taskDispatchDO.getBomDetailId());
|
||||
ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId());
|
||||
if (ObjectUtil.isNotEmpty(bomDetailDO)&&ObjectUtil.isNotEmpty(procedureDO)){
|
||||
throw exception(new ErrorCode(400,bomDetailDO.getMaterialName()+" "+procedureDO.getName()+"已做物料需求计划,不能更改,请确认"));
|
||||
for (TaskDispatchDetailDO dispatchDetailDO : list) {
|
||||
TaskDispatchDetailDO taskDispatchDetailDO = taskDispatchDetailMapper.selectById(dispatchDetailDO.getId());
|
||||
if (ObjectUtil.isNotEmpty(taskDispatchDetailDO)){
|
||||
if (isDetailChanged(taskDispatchDetailDO, dispatchDetailDO)) {
|
||||
if (taskDispatchDetailDO.getPlanStatus()==1){
|
||||
ProcessBomDetailDO bomDetailDO = processBomDetailMapper.selectById(taskDispatchDO.getBomDetailId());
|
||||
ProcedureDO procedureDO = procedureMapper.selectById(dispatchDetailDO.getProcedureId());
|
||||
if (ObjectUtil.isNotEmpty(bomDetailDO)&&ObjectUtil.isNotEmpty(procedureDO)){
|
||||
throw exception(new ErrorCode(400,bomDetailDO.getMaterialName()+" "+procedureDO.getName()+"已做物料需求计划,不能更改,请确认"));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -45,11 +45,11 @@ export const updatePurchaseOrderMakeNo = async (params) => {
|
||||
return await request.put({ url: `/heli/purchase-order-make/updatePartCheckNo`, params })
|
||||
}
|
||||
|
||||
export const reject = async (params) => {
|
||||
return await request.put({ url: `/heli/purchase-order-make/reject`, params })
|
||||
export const reject = async (id:number) => {
|
||||
return await request.get({ url: `/heli/purchase-order-make/reject?id=` +id })
|
||||
}
|
||||
export const approval = async (id: number) => {
|
||||
return await request.put({ url: `/heli/purchase-order-make/approval?id=` + id })
|
||||
return await request.get({ url: `/heli/purchase-order-make/approval?id=` + id })
|
||||
}
|
||||
// 获取零件采购订单生成分页
|
||||
export const getDetail = async (params) => {
|
||||
|
Binary file not shown.
Before Width: | Height: | Size: 2.9 MiB |
Binary file not shown.
Before Width: | Height: | Size: 2.5 MiB |
@ -29,7 +29,7 @@
|
||||
<el-form-item label="子项目名称" prop="projectSubName">
|
||||
<el-input
|
||||
v-model="queryParams.projectSubName"
|
||||
placeholder="请输入项目名称"
|
||||
placeholder="请输入子项目名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
@ -38,7 +38,7 @@
|
||||
<el-form-item label="物料名称" prop="materialName">
|
||||
<el-input
|
||||
v-model="queryParams.materialName"
|
||||
placeholder="请输入项目名称"
|
||||
placeholder="请输入物料名称"
|
||||
clearable
|
||||
@keyup.enter="handleQuery"
|
||||
class="!w-240px"
|
||||
@ -47,23 +47,6 @@
|
||||
<el-form-item>
|
||||
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
||||
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
||||
<!-- <el-button-->
|
||||
<!-- type="primary"-->
|
||||
<!-- plain-->
|
||||
<!-- @click="openForm('create')"-->
|
||||
<!-- v-hasPermi="['heli:mat-req:create']"-->
|
||||
<!-- >-->
|
||||
<!-- <Icon icon="ep:plus" class="mr-5px" /> 新增-->
|
||||
<!-- </el-button>-->
|
||||
<!-- <el-button-->
|
||||
<!-- type="success"-->
|
||||
<!-- plain-->
|
||||
<!-- @click="handleExport"-->
|
||||
<!-- :loading="exportLoading"-->
|
||||
<!-- v-hasPermi="['heli:mat-req:export']"-->
|
||||
<!-- >-->
|
||||
<!-- <Icon icon="ep:download" class="mr-5px" /> 导出-->
|
||||
<!-- </el-button>-->
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
</ContentWrap>
|
||||
|
@ -327,7 +327,7 @@ const submitForm = async () => {
|
||||
|
||||
// 4. 添加加载状态(Element Plus 兼容处理)
|
||||
formLoading.value = true;
|
||||
|
||||
console.log(list)
|
||||
// 5. 提交数据(添加超时处理)
|
||||
const res = await Promise.race([
|
||||
PartPurchaseOrderApi.createPurchaseOrderMakeAndDetail(list),
|
||||
|
@ -151,7 +151,7 @@ const handleReject = async () => {
|
||||
const reject = async() => {
|
||||
// updateParams.reason = reason
|
||||
// 这里可以执行提交驳回逻辑
|
||||
await PartPurchaseOrderApi.reject(updateParams)
|
||||
await PartPurchaseOrderApi.reject(formData.value.id)
|
||||
message.success("驳回成功");
|
||||
router.push({ path: '/purchase/PurchaseOrderMake'});
|
||||
tagsViewStore.delVisitedView(router.currentRoute.value)
|
||||
|
@ -132,17 +132,12 @@ v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true" cl
|
||||
<script setup lang="ts">
|
||||
import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
|
||||
import download from '@/utils/download'
|
||||
import * as PurchaseOrderApi from '@/api/heli/purchaseorder'
|
||||
import * as PurchaseOrderNoDetailApi from '@/api/heli/purchaseordernodetail'
|
||||
import * as StorageinApi from '@/api/heli/storagein'
|
||||
import { ElTable } from 'element-plus'
|
||||
import {useUserStore} from "@/store/modules/user";
|
||||
import {ref} from "vue";
|
||||
import {dateFormatter2} from "@/utils/formatTime";
|
||||
import {PurchaseOrderNoDetailVO} from "@/api/heli/purchaseordernodetail";
|
||||
import * as ProcessBomApi from "@/api/heli/processbom";
|
||||
const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
|
||||
|
||||
defineOptions({ name: 'PurchaseOrder' })
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n() // 国际化
|
||||
@ -173,7 +168,7 @@ const queryParams = reactive({
|
||||
description: undefined,
|
||||
creator: undefined,
|
||||
createTime: undefined,
|
||||
receivingStatus:undefined,
|
||||
receivingStatus:1,
|
||||
projectName:undefined,
|
||||
projectSubName:undefined,
|
||||
supplierName:undefined,
|
||||
|
@ -69,6 +69,7 @@
|
||||
</el-card>
|
||||
</el-form>
|
||||
<div class="hl-footer text-center">
|
||||
<el-button @click="cancel" size="large">取 消</el-button>
|
||||
<el-button @click="isPrint()" type="primary" size="large" >打印</el-button>
|
||||
<el-button @click="deleteForm()" type="danger" size="large" >删除</el-button>
|
||||
</div>
|
||||
@ -134,7 +135,7 @@ const userList = ref<UserApi.UserVO[]>([]) // 用户列表
|
||||
const queryParams = reactive({
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
storageId: query.id
|
||||
storageNoId: query.id
|
||||
})
|
||||
// 页面数据加载初始化
|
||||
onMounted(async () => {
|
||||
@ -142,6 +143,11 @@ onMounted(async () => {
|
||||
formData.value = await StorageinApi.getStorageIn(query.id)
|
||||
getList();
|
||||
})
|
||||
const cancel = async () => {
|
||||
router.push({ path: '/inventory/storagein' })
|
||||
tagsViewStore.delVisitedView(router.currentRoute.value)
|
||||
}
|
||||
|
||||
const isPrint = async () => {
|
||||
var newVar = await StorageinApi.isPrint(query.id);
|
||||
console.log(newVar)
|
||||
|
Loading…
Reference in New Issue
Block a user