Compare commits

...

2 Commits

@ -77,13 +77,14 @@ public class ErpProductCategoryController {
return success(BeanUtils.toBean(list, ErpProductCategoryRespVO.class));
}
@GetMapping("/simple-list")
@Operation(summary = "获得产品分类精简列表", description = "只包含被开启的分类,主要用于前端的下拉选项")
public CommonResult<List<ErpProductCategoryRespVO>> getProductCategorySimpleList() {
List<ErpProductCategoryDO> list = productCategoryService.getProductCategoryList(
new ErpProductCategoryListReqVO().setStatus(CommonStatusEnum.ENABLE.getStatus()));
return success(convertList(list, category -> new ErpProductCategoryRespVO()
.setId(category.getId()).setName(category.getName()).setParentId(category.getParentId())));
.setId(category.getId()).setName(category.getName()).setParentId(category.getParentId()).setSort(category.getSort())));
}
@GetMapping("/export-excel")

@ -13,6 +13,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProduc
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ProductSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.dal.mysql.product.ErpProductMapper;
import cn.iocoder.yudao.module.erp.framework.bean.ProductTypeEnum;
import cn.iocoder.yudao.module.erp.service.product.ErpProductCategoryService;
import cn.iocoder.yudao.module.erp.service.product.ErpProductService;
@ -30,6 +31,7 @@ import java.util.ArrayList;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
@ -41,11 +43,23 @@ public class ErpProductController {
@Resource
private ErpProductService productService;
@Resource
private ErpProductMapper productMapper;
@PostMapping("/create")
@Operation(summary = "创建产品")
//@PreAuthorize("@ss.hasPermission('erp:product:create')")
public CommonResult<Long> createProduct(@Valid @RequestBody ProductSaveReqVO createReqVO) {
ErpProductPageReqVO productPageReqVO = new ErpProductPageReqVO();
productPageReqVO.setName(createReqVO.getName());
if (!productMapper.selectProductExist(productPageReqVO).getList().isEmpty()) {
return error(400,"名称不能重复");
}
productPageReqVO = new ErpProductPageReqVO();
productPageReqVO.setCode(createReqVO.getBarCode());
if (!productMapper.selectProductExist(productPageReqVO).getList().isEmpty()) {
return error(400,"编码不能重复");
}
return success(productService.createProduct(createReqVO));
}

@ -11,6 +11,7 @@ import cn.iocoder.yudao.module.erp.controller.admin.product.vo.unit.ErpProductUn
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.unit.ErpProductUnitRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.unit.ErpProductUnitSaveReqVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.dal.mysql.product.ErpProductUnitMapper;
import cn.iocoder.yudao.module.erp.service.product.ErpProductUnitService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -25,6 +26,7 @@ import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertList;
@ -36,11 +38,18 @@ public class ErpProductUnitController {
@Resource
private ErpProductUnitService productUnitService;
@Resource
private ErpProductUnitMapper productUnitMapper;
@PostMapping("/create")
@Operation(summary = "创建产品单位")
//@PreAuthorize("@ss.hasPermission('erp:product-unit:create')")
public CommonResult<Long> createProductUnit(@Valid @RequestBody ErpProductUnitSaveReqVO createReqVO) {
ErpProductUnitPageReqVO productUnitPageReqVO = new ErpProductUnitPageReqVO();
productUnitPageReqVO.setName(createReqVO.getName());
if (!productUnitMapper.selectProductUnitExist(productUnitPageReqVO).getList().isEmpty()) {
return error(400,"名称不能重复");
}
return success(productUnitService.createProductUnit(createReqVO));
}

@ -24,4 +24,7 @@ public class ErpProductPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "产品编号", example = "11161")
private String code;
}

@ -28,6 +28,13 @@ public interface ErpProductMapper extends BaseMapperX<ErpProductDO> {
.orderByDesc(ErpProductDO::getId));
}
default PageResult<ErpProductDO> selectProductExist(ErpProductPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpProductDO>()
.eqIfPresent(ErpProductDO::getName, reqVO.getName())
.eqIfPresent(ErpProductDO::getBarCode, reqVO.getCode())
.orderByAsc(ErpProductDO::getId));
}
default Long selectCountByCategoryId(Long categoryId) {
return selectCount(ErpProductDO::getCategoryId, categoryId);
}

@ -24,6 +24,12 @@ public interface ErpProductUnitMapper extends BaseMapperX<ErpProductUnitDO> {
.orderByDesc(ErpProductUnitDO::getId));
}
default PageResult<ErpProductUnitDO> selectProductUnitExist(ErpProductUnitPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ErpProductUnitDO>()
.eqIfPresent(ErpProductUnitDO::getName, reqVO.getName())
.orderByDesc(ErpProductUnitDO::getId));
}
default ErpProductUnitDO selectByName(String name) {
return selectOne(ErpProductUnitDO::getName, name);
}

@ -35,6 +35,7 @@ import java.util.*;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
@ -294,12 +295,12 @@ public class MoldBrandServiceImpl implements MoldBrandService {
@Override
public List<MoldDO> getAllList() {
return Collections.emptyList();
return moldMapper.selectList();
}
@Override
public List<MoldBrandDO> getMoldBrandList(Collection<Long> ids) {
return Collections.emptyList();
return moldBrandMapper.selectBatchIds(ids);
}
private void validateMoldBrandProductExists(Long id) {

@ -1,6 +1,13 @@
package cn.iocoder.yudao.module.erp.service.mold;
import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.dal.dataobject.mold.MoldBrandDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductCategoryDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.product.ErpProductUnitDO;
import cn.iocoder.yudao.module.erp.dal.dataobject.stock.ErpWarehouseDO;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
@ -17,6 +24,7 @@ import cn.iocoder.yudao.module.erp.dal.mysql.mold.MoldMapper;
import javax.annotation.Resource;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
import static cn.iocoder.yudao.module.erp.enums.ErrorCodeConstants.*;
/**
@ -79,16 +87,26 @@ public class MoldServiceImpl implements MoldService {
@Override
public List<MoldDO> validMoldList(Collection<Long> ids) {
return Collections.emptyList();
if (CollUtil.isEmpty(ids)) {
return Collections.emptyList();
}
return moldMapper.selectBatchIds(ids);
}
@Override
public List<MoldRespVO> getMoldVOList(Collection<Long> ids) {
return Collections.emptyList();
if (CollUtil.isEmpty(ids)) {
return Collections.emptyList();
}
List<MoldDO> list = moldMapper.selectBatchIds(ids);
return buildMoldVOList(list);
}
@Override
public List<MoldRespVO> buildMoldVOList(List<MoldDO> list) {
return Collections.emptyList();
if (CollUtil.isEmpty(list)) {
return Collections.emptyList();
}
return BeanUtils.toBean(list, MoldRespVO.class);
}
}

@ -6,11 +6,13 @@ import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomDetailRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomPageReqVO;
import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomRespVO;
import cn.iocoder.yudao.module.mes.controller.admin.bom.vo.BomSaveReqVO;
import cn.iocoder.yudao.module.mes.dal.dataobject.bom.BomDO;
import cn.iocoder.yudao.module.mes.dal.mysql.bom.BomMapper;
import cn.iocoder.yudao.module.mes.service.bom.BomService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -26,6 +28,7 @@ import java.io.IOException;
import java.util.List;
import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.error;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@Tag(name = "管理后台 - 产品BOM")
@ -36,11 +39,18 @@ public class BomController {
@Resource
private BomService bomService;
@Resource
private BomMapper bomMapper;
@PostMapping("/create")
@Operation(summary = "创建产品BOM")
@PreAuthorize("@ss.hasPermission('mes:bom:create')")
public CommonResult<Long> createBom(@Valid @RequestBody BomSaveReqVO createReqVO) {
BomPageReqVO bomPageReqVO = new BomPageReqVO();
bomPageReqVO.setCode(createReqVO.getCode());
if (!bomMapper.selectBomExist(bomPageReqVO).getList().isEmpty()) {
return error(400,"编码不能重复");
}
return success(bomService.createBom(createReqVO));
}

@ -30,6 +30,7 @@ import cn.iocoder.yudao.module.mes.service.zjproductrecord.ZjProductRecordServic
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@ -14,6 +14,7 @@ import cn.iocoder.yudao.module.mes.service.task.TaskService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.apache.commons.lang3.StringUtils;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;

@ -28,6 +28,12 @@ public interface BomMapper extends BaseMapperX<BomDO> {
.orderByDesc(BomDO::getId));
}
default PageResult<BomDO> selectBomExist(BomPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BomDO>()
.eqIfPresent(BomDO::getCode, reqVO.getCode())
.orderByDesc(BomDO::getId));
}
default BomDO selectByNo(String no) {
return selectOne(BomDO::getCode, no);
}

@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.erp.controller.admin.autocode.util.AutoCodeUtil;
import cn.iocoder.yudao.module.erp.controller.admin.product.vo.product.ErpProductRespVO;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.in.ErpStockInSaveReqVO;
import cn.iocoder.yudao.module.erp.controller.admin.stock.vo.out.ErpStockOutSaveReqVO;
@ -34,6 +35,7 @@ import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
@ -74,6 +76,9 @@ public class PlanServiceImpl implements PlanService {
@Resource
private ErpStockInService stockInService;
@Autowired
private AutoCodeUtil autoCodeUtil;
@Override
@Transactional(rollbackFor = Exception.class)
public Long createPlan(PlanSaveReqVO createReqVO) {
@ -81,11 +86,12 @@ public class PlanServiceImpl implements PlanService {
PlanDO plan = BeanUtils.toBean(createReqVO, PlanDO.class);
if (StringUtils.isEmpty(plan.getCode())) {
// 1.4 生成订单号,并校验唯一性
String no = noRedisDAO.generate3(MesNoRedisDAO.PLAN_NO_PREFIX);
if (planMapper.selectByNo(no) != null) {
throw exception(PLAN_NOT_EXISTS);
}
plan.setCode(no);
// String no = noRedisDAO.generate3(MesNoRedisDAO.PLAN_NO_PREFIX);
// if (planMapper.selectByNo(no) != null) {
// throw exception(PLAN_NOT_EXISTS);
// }
// plan.setCode(no);
plan.setCode(autoCodeUtil.genSerialCode("PLAN_CODE",null));
}
if(plan.getProductId()==null && plan.getTaskDetailId()!=null){
TaskDetailDO taskDetailDO = taskService.getTaskDetail(plan.getTaskDetailId());

Loading…
Cancel
Save