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 @@ -66,5 +69,21 @@ @GetMapping("/list") 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>