zss
2 天以前 e73e0a6944e8f23193ff84a7242e41d2dc09a55b
生产模块的工序调整
已修改10个文件
96 ■■■■ 文件已修改
src/main/java/com/ruoyi/basic/pojo/ProductModel.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductProcessController.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/controller/ProductStructureController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductProcess.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductStructure.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/ProductProcessService.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductProcessMapper.xml 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/basic/pojo/ProductModel.java
@@ -29,9 +29,6 @@
    @Excel(name = "产品名称")
    private String productName;
    @Excel(name = "产品编码")
    private String productCode;
    /**
     * 规格型号
     */
src/main/java/com/ruoyi/basic/service/impl/ProductModelServiceImpl.java
@@ -48,14 +48,7 @@
        if (productModelDto.getId() == null) {
            ProductModel productModel = new ProductModel();
            BeanUtils.copyProperties(productModelDto,productModel);
            productModelMapper.insert(productModel);
            String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
            String idStr = String.format("%06d", productModel.getId()); // 六位补0
            String newProductCode = "BM" + dateStr + idStr;
            // 更新数据库中的productCode
            productModel.setProductCode(newProductCode);
            return productModelMapper.updateById(productModel);
            return productModelMapper.insert(productModel);
        } else {
            return productModelMapper.updateById(productModelDto);
        }
src/main/java/com/ruoyi/production/controller/ProductProcessController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.device.pojo.DeviceRepair;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
@@ -18,7 +19,9 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@RestController
@@ -67,4 +70,20 @@
    public AjaxResult list() {
        return AjaxResult.success(productProcessService.list());
    }
    /**
     * 导入工序
     */
    @Log(title = "工序", businessType = BusinessType.IMPORT)
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file) throws Exception {
        return productProcessService.importData(file);
    }
    @PostMapping("/downloadTemplate")
    @Log(title = "工序-下载模板", businessType = BusinessType.EXPORT)
    public void downloadTemplate(HttpServletResponse response) {
        ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class);
        util.importTemplateExcel(response, "工序模板");
    }
}
src/main/java/com/ruoyi/production/controller/ProductStructureController.java
@@ -1,7 +1,12 @@
package com.ruoyi.production.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.framework.aspectj.lang.annotation.Log;
import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProductProcessDto;
import com.ruoyi.production.dto.ProductStructureDto;
import com.ruoyi.production.pojo.ProductStructure;
import com.ruoyi.production.service.ProductStructureService;
@@ -15,7 +20,7 @@
@RequestMapping("productStructure")
@RestController
@Api(tags = "产品结构")
@Api(tags = "BOM")
public class ProductStructureController {
    @Autowired
    private ProductStructureService productStructureService;
@@ -27,7 +32,7 @@
        return R.ok(productStructureService.listByproductModelId( productModelId));
    }
    @ApiOperation("新增产品结构")
    @ApiOperation("新增BOM")
    @PostMapping()
    public R addOrUpdate(@RequestBody ProductStructureDto productStructureDto){
        return R.ok(productStructureService.addProductStructureDto(productStructureDto));
src/main/java/com/ruoyi/production/mapper/ProductProcessMapper.java
@@ -5,8 +5,10 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.production.dto.ProductProcessDto;
import com.ruoyi.production.pojo.ProductProcess;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface ProductProcessMapper extends BaseMapper<ProductProcess> {
    IPage<ProductProcessDto> listPage(Page page,@Param("productProcessDto") ProductProcessDto productProcessDto);
}
src/main/java/com/ruoyi/production/pojo/ProductProcess.java
@@ -1,7 +1,11 @@
package com.ruoyi.production.pojo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.math.BigDecimal;
@@ -9,6 +13,7 @@
@TableName("product_process")
@Data
@ExcelIgnoreUnannotated
public class ProductProcess implements Serializable {
    private static final long serialVersionUID = 1L;
@@ -19,34 +24,42 @@
    /**
     * 工序名称
     */
    @Excel(name = "工序名称")
    private String name;
    /**
     * 工序编号
     */
    @Excel(name = "工序编号")
    private String no;
    /**
     * 备注
     */
    @Excel(name = "备注")
    private String remark;
    /**
     * 工资定额
     */
    @Excel(name = "工资定额")
    private BigDecimal salaryQuota;
    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    /**
     * 修改时间
     */
    @TableField(fill = FieldFill.UPDATE)
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    /**
src/main/java/com/ruoyi/production/pojo/ProductStructure.java
@@ -55,5 +55,10 @@
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    /**
     * 关联BOMid
     */
    private Long bomId;
}
src/main/java/com/ruoyi/production/service/ProductProcessService.java
@@ -8,6 +8,7 @@
import com.ruoyi.production.dto.*;
import com.ruoyi.production.pojo.ProductProcess;
import com.ruoyi.production.pojo.SalesLedgerScheduling;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
@@ -20,4 +21,6 @@
    IPage<ProductProcessDto> listPage(Page page, ProductProcessDto productProcessDto);
    AjaxResult add(ProductProcessDto productProcessDto);
    AjaxResult importData(MultipartFile file);
}
src/main/java/com/ruoyi/production/service/impl/ProductProcessServiceImpl.java
@@ -1,8 +1,11 @@
package com.ruoyi.production.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.basic.pojo.Customer;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.production.dto.ProductProcessDto;
import com.ruoyi.production.mapper.ProductProcessMapper;
@@ -11,6 +14,10 @@
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import org.springframework.web.multipart.MultipartFile;
import java.util.List;
@Service
public class ProductProcessServiceImpl extends ServiceImpl<ProductProcessMapper, ProductProcess> implements ProductProcessService {
@@ -27,7 +34,7 @@
        ProductProcess productProcess = new ProductProcess();
        BeanUtils.copyProperties(productProcessDto,productProcess);
        boolean save = productProcessMapper.insert(productProcess) > 0;
        if (save) {
        if (save && ObjectUtils.isNotNull(productProcessDto.getNo())) {
            // 根据id生成no字段:GX + 8位数字(不足8位前面补0)
            String no = "GX" + String.format("%08d", productProcess.getId());
            productProcess.setNo(no);
@@ -37,4 +44,20 @@
        }
        return AjaxResult.error();
    }
    @Override
    public AjaxResult importData(MultipartFile file) {
        try {
            ExcelUtil<ProductProcess> util = new ExcelUtil<ProductProcess>(ProductProcess.class);
            List<ProductProcess> productProcessList = util.importExcel(file.getInputStream());
            if(CollectionUtils.isEmpty(productProcessList)){
                return AjaxResult.warn("模板错误或导入数据为空");
            }
            this.saveOrUpdateBatch(productProcessList);
            return AjaxResult.success(true);
        }catch (Exception e){
            e.printStackTrace();
            return AjaxResult.error("导入失败");
        }
    }
}
src/main/resources/mapper/production/ProductProcessMapper.xml
@@ -4,11 +4,7 @@
    <select id="listPage" resultType="com.ruoyi.production.dto.ProductProcessDto">
        SELECT
        p.id,
        p.name,
        p.no,
        p.remark,
        p.salary_quota
        *
        FROM
        product_process p
        <where>