Merge branch 'master' of http://114.132.189.42:9002/r/zd-after
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.controller; |
| | | |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * <p> |
| | | * å·¡æ£ä»»å¡è¡¨ å端æ§å¶å¨ |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-14 |
| | | */ |
| | | |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("/inspectionTask") |
| | | public class InspectionTaskController { |
| | | |
| | | } |
| | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.business.dto.PendingInventoryDto; |
| | | import com.ruoyi.business.entity.PendingInventory; |
| | | import com.ruoyi.business.service.PendingInventoryService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | * å¾
å
¥åºè¡¨æ¥è¯¢ |
| | | */ |
| | | @GetMapping("/list") |
| | | public R<IPage<PendingInventory>> list(Page page, PendingInventoryDto pendingInventoryDto) { |
| | | IPage<PendingInventory> list = pendingInventoryService.selectPendingInventoryList(page, pendingInventoryDto); |
| | | public R<IPage<PendingInventoryDto>> list(Page page, PendingInventoryDto pendingInventoryDto) { |
| | | IPage<PendingInventoryDto> list = pendingInventoryService.selectPendingInventoryList(page, pendingInventoryDto); |
| | | return R.ok(list); |
| | | } |
| | | |
| | |
| | | private ProductionService productionService; |
| | | |
| | | /** |
| | | * æ¥è¯¢ |
| | | * ç产æç»è¡¨æ¥è¯¢ |
| | | */ |
| | | @GetMapping("/list") |
| | | public R<IPage<Production>> list(Page page, ProductionDto productionDto) { |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import com.ruoyi.business.service.ProductionInventoryService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.web.bind.annotation.GetMapping; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 å端æ§å¶å¨ |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-13 |
| | | */ |
| | | |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("/productionInventory") |
| | | public class ProductionInventoryController { |
| | | |
| | | private ProductionInventoryService productionInventoryService; |
| | | |
| | | |
| | | /** |
| | | * ç产åºåæç»è¡¨æ¥è¯¢ |
| | | */ |
| | | @GetMapping("/list") |
| | | public R<IPage<ProductionInventory>> list(Page page,ProductionInventory productionInventory) { |
| | | IPage<ProductionInventory> list = productionInventoryService.selectPIList(page,productionInventory); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.controller; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.business.dto.ProductionMasterDto; |
| | | import com.ruoyi.business.service.ProductionMasterService; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import lombok.AllArgsConstructor; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 å端æ§å¶å¨ |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-13 |
| | | */ |
| | | |
| | | @RestController |
| | | @AllArgsConstructor |
| | | @RequestMapping("/productionMaster") |
| | | public class ProductionMasterController { |
| | | |
| | | private ProductionMasterService productionMasterService; |
| | | |
| | | /** |
| | | * ç产主表æ¥è¯¢ |
| | | */ |
| | | @GetMapping("/list") |
| | | public R<IPage<ProductionMasterDto>> list(Page page, ProductionMasterDto productionMasterDto) { |
| | | IPage<ProductionMasterDto> list = productionMasterService.selectPMList(page,productionMasterDto); |
| | | return R.ok(list); |
| | | } |
| | | |
| | | /** |
| | | * ç产主表æ°å¢ä¿®æ¹ |
| | | */ |
| | | @PostMapping("/addOrEditPM") |
| | | public R addOrEditPM(@RequestBody ProductionMasterDto productionMasterDto) { |
| | | return R.ok(productionMasterService.addOrEditPM(productionMasterDto)); |
| | | } |
| | | |
| | | /** |
| | | * å é¤ |
| | | */ |
| | | @DeleteMapping("/delPM") |
| | | public R remove(@RequestBody Long[] ids) { |
| | | return R.ok(productionMasterService.delByIds(ids)); |
| | | } |
| | | |
| | | |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.dto; |
| | | |
| | | import com.ruoyi.business.entity.InspectionTask; |
| | | import lombok.Data; |
| | | |
| | | @Data |
| | | public class InspectionTaskDto extends InspectionTask { |
| | | } |
| | |
| | | @JsonProperty("pId") |
| | | private Long pId; |
| | | |
| | | /** |
| | | * æ£å¼åºid |
| | | */ |
| | | @JsonProperty("officialId") |
| | | private Long officialId; |
| | | |
| | | private List<Map<String, String>> fieldValue; |
| | | |
| | | /** |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.dto; |
| | | |
| | | import com.ruoyi.business.entity.Production; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import com.ruoyi.business.entity.ProductionMaster; |
| | | import lombok.Data; |
| | | |
| | | import java.util.List; |
| | | |
| | | @Data |
| | | public class ProductionMasterDto extends ProductionMaster { |
| | | |
| | | private List<Production> productionList; //ç产æç» |
| | | |
| | | private List<ProductionInventory> productionInventoryList; //使ç¨åºåæç» |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import lombok.Data; |
| | | import com.ruoyi.common.core.domain.MyBaseEntity; |
| | | |
| | | /** |
| | | * å·¡æ£ä»»å¡è¡¨ å®ä½ç±» |
| | | * |
| | | * @author ld |
| | | * @date 2025-06-14 |
| | | */ |
| | | @Data |
| | | @TableName("inspection_task") |
| | | public class InspectionTask extends MyBaseEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * å·¡æ£ä»»å¡å¯ä¸æ è¯ |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * å·¡æ£ä»»å¡åç§° |
| | | */ |
| | | @TableField(value = "task_name") |
| | | private String taskName; |
| | | /** |
| | | * |
| | | */ |
| | | @TableField(value = "inspector_id") |
| | | private Long inspectorId; |
| | | /** |
| | | * æ§è¡å·¡æ£ç人åå§å |
| | | */ |
| | | @TableField(value = "inspector") |
| | | private String inspector; |
| | | /** |
| | | * å·¡æ£å°ç¹è¯¦ç»æè¿° |
| | | */ |
| | | @TableField(value = "port") |
| | | private String port; |
| | | /** |
| | | * ä»»å¡éå 说ææç¹æ®æ
åµè®°å½ |
| | | */ |
| | | @TableField(value = "remarks") |
| | | private String remarks; |
| | | /** |
| | | * |
| | | */ |
| | | @TableField(value = "registrant_id") |
| | | private Long registrantId; |
| | | /** |
| | | * ä»»å¡ç»è®°äººå§å |
| | | */ |
| | | @TableField(value = "registrant") |
| | | private String registrant; |
| | | } |
| | |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * ç产主表ID |
| | | */ |
| | | @TableField(value = "production_master_id") |
| | | private Long productionMasterId; |
| | | /** |
| | | * ç
¤ç§ID |
| | | */ |
| | | @TableField(value = "coal_id") |
| | |
| | | */ |
| | | @TableField(value = "coal") |
| | | private String coal; |
| | | /** |
| | | * çå¼ |
| | | */ |
| | | @TableField(value = "calorific_value") |
| | | private Integer calorificValue; |
| | | /** |
| | | * ç产æ°é |
| | | */ |
| | |
| | | @TableField(value = "producer") |
| | | private String producer; |
| | | /** |
| | | * ç产人ID |
| | | */ |
| | | @TableField(value = "producer_id") |
| | | private String producerId; |
| | | /** |
| | | * çäº§æ¥æ |
| | | */ |
| | | @TableField(value = "production_date") |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.*; |
| | | import lombok.Data; |
| | | import com.ruoyi.common.core.domain.MyBaseEntity; |
| | | |
| | | /** |
| | | * ç产主表 å®ä½ç±» |
| | | * |
| | | * @author ruoyi |
| | | * @date 2025-06-13 |
| | | */ |
| | | @Data |
| | | @TableName("production_inventory") |
| | | public class ProductionInventory extends MyBaseEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主é®ID |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * ç产主表ID |
| | | */ |
| | | @TableField(value = "production_master_id") |
| | | private Long productionMasterId; |
| | | /** |
| | | * ç
¤ç§ID |
| | | */ |
| | | @TableField(value = "coal_id") |
| | | private Long coalId; |
| | | /** |
| | | * ç
¤ç§ |
| | | */ |
| | | @TableField(value = "coal") |
| | | private String coal; |
| | | /** |
| | | * åºåæ°é |
| | | */ |
| | | @TableField(value = "inventory_quantity") |
| | | private Integer inventoryQuantity; |
| | | /** |
| | | * ä½¿ç¨æ°é |
| | | */ |
| | | @TableField(value = "used_quantity") |
| | | private Integer usedQuantity; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.entity; |
| | | |
| | | import com.baomidou.mybatisplus.annotation.IdType; |
| | | import com.baomidou.mybatisplus.annotation.TableField; |
| | | import com.baomidou.mybatisplus.annotation.TableId; |
| | | import com.baomidou.mybatisplus.annotation.TableName; |
| | | import com.ruoyi.common.core.domain.MyBaseEntity; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | |
| | | /** |
| | | * ç产主表 å®ä½ç±» |
| | | * |
| | | * @author ruoyi |
| | | * @date 2025-06-13 |
| | | */ |
| | | @Data |
| | | @TableName("production_master") |
| | | public class ProductionMaster extends MyBaseEntity { |
| | | |
| | | private static final long serialVersionUID = 1L; |
| | | |
| | | /** |
| | | * 主é®ID |
| | | */ |
| | | @TableId(value = "id", type = IdType.AUTO) |
| | | private Long id; |
| | | /** |
| | | * ç
¤ç§ |
| | | */ |
| | | @TableField(value = "coal") |
| | | private String coal; |
| | | /** |
| | | * ç产æ°é |
| | | */ |
| | | @TableField(value = "production_quantity") |
| | | private Integer productionQuantity; |
| | | /** |
| | | * äººå·¥ææ¬ |
| | | */ |
| | | @TableField(value = "labor_cost") |
| | | private BigDecimal laborCost; |
| | | /** |
| | | * è½èææ¬ |
| | | */ |
| | | @TableField(value = "energy_consumption_cost") |
| | | private BigDecimal energyConsumptionCost; |
| | | /** |
| | | * è®¾å¤ææ§ |
| | | */ |
| | | @TableField(value = "equipment_depreciation") |
| | | private BigDecimal equipmentDepreciation; |
| | | /** |
| | | * æ»ææ¬ |
| | | */ |
| | | @TableField(value = "total_cost") |
| | | private BigDecimal totalCost; |
| | | /** |
| | | * |
| | | */ |
| | | @TableField(value = "producer_id") |
| | | private String producerId; |
| | | /** |
| | | * ç产人 |
| | | */ |
| | | @TableField(value = "producer") |
| | | private String producer; |
| | | /** |
| | | * çäº§æ¥æ |
| | | */ |
| | | @TableField(value = "production_date") |
| | | private LocalDate productionDate; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.business.entity.InspectionTask; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * å·¡æ£ä»»å¡è¡¨ Mapper æ¥å£ |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-14 |
| | | */ |
| | | @Mapper |
| | | public interface InspectionTaskMapper extends BaseMapper<InspectionTask> { |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 Mapper æ¥å£ |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | @Mapper |
| | | public interface ProductionInventoryMapper extends BaseMapper<ProductionInventory> { |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.mapper; |
| | | |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.ruoyi.business.entity.ProductionMaster; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 Mapper æ¥å£ |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | @Mapper |
| | | public interface ProductionMasterMapper extends BaseMapper<ProductionMaster> { |
| | | |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service; |
| | | |
| | | import com.ruoyi.business.entity.InspectionTask; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * å·¡æ£ä»»å¡è¡¨ æå¡ç±» |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-14 |
| | | */ |
| | | public interface InspectionTaskService extends IService<InspectionTask> { |
| | | |
| | | } |
| | |
| | | */ |
| | | public interface PendingInventoryService extends IService<PendingInventory> { |
| | | |
| | | IPage<PendingInventory> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto); |
| | | IPage<PendingInventoryDto> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto); |
| | | |
| | | int addOrEditPending(PendingInventoryDto pendingInventoryDto); |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 æå¡ç±» |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | public interface ProductionInventoryService extends IService<ProductionInventory> { |
| | | |
| | | IPage<ProductionInventory> selectPIList(Page page, ProductionInventory productionInventory); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service; |
| | | |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.business.dto.ProductionMasterDto; |
| | | import com.ruoyi.business.entity.ProductionMaster; |
| | | import com.baomidou.mybatisplus.extension.service.IService; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 æå¡ç±» |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | public interface ProductionMasterService extends IService<ProductionMaster> { |
| | | |
| | | IPage<ProductionMasterDto> selectPMList(Page page, ProductionMasterDto productionMasterDto); |
| | | |
| | | int addOrEditPM(ProductionMasterDto productionMasterDto); |
| | | |
| | | int delByIds(Long[] ids); |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service.impl; |
| | | |
| | | import com.ruoyi.business.entity.InspectionTask; |
| | | import com.ruoyi.business.mapper.InspectionTaskMapper; |
| | | import com.ruoyi.business.service.InspectionTaskService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import org.springframework.stereotype.Service; |
| | | import lombok.RequiredArgsConstructor; |
| | | |
| | | /** |
| | | * <p> |
| | | * å·¡æ£ä»»å¡è¡¨ æå¡å®ç°ç±» |
| | | * </p> |
| | | * |
| | | * @author ld |
| | | * @since 2025-06-14 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class InspectionTaskServiceImpl extends ServiceImpl<InspectionTaskMapper, InspectionTask> implements InspectionTaskService { |
| | | |
| | | } |
| | |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.Objects; |
| | | import java.util.Set; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | private final CoalFieldMapper coalFieldMapper; |
| | | |
| | | @Override |
| | | public IPage<PendingInventory> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto) { |
| | | public IPage<PendingInventoryDto> selectPendingInventoryList(Page page, PendingInventoryDto pendingInventoryDto) { |
| | | // 1. æå»ºä¸»æ¥è¯¢ |
| | | LambdaQueryWrapper<PendingInventory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.orderByDesc(PendingInventory::getCreateTime); |
| | | return pendingInventoryMapper.selectPage(page, queryWrapper); |
| | | |
| | | // 2. æ§è¡ä¸»è¡¨å页æ¥è¯¢ |
| | | IPage<PendingInventory> pendingInventoryPage = pendingInventoryMapper.selectPage(page, queryWrapper); |
| | | |
| | | // 3. æ æ°æ®å¿«éè¿å |
| | | if (CollectionUtils.isEmpty(pendingInventoryPage.getRecords())) { |
| | | return new Page<>(page.getCurrent(), page.getSize(), pendingInventoryPage.getTotal()); |
| | | } |
| | | |
| | | // 4. æåææå¾
å¤çåºåID |
| | | List<Long> pendingIds = pendingInventoryPage.getRecords().stream() |
| | | .map(PendingInventory::getId) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // 5. æ¹éæ¥è¯¢å
³èçæ£å¼åºåä¿¡æ¯ |
| | | Map<Long, Long> pendingToOfficialMap = getOfficialInventoryMap(pendingIds); |
| | | |
| | | // 6. 使ç¨MyBatis-Plusçconvertæ¹æ³è½¬æ¢DTO |
| | | return pendingInventoryPage.convert(record -> { |
| | | PendingInventoryDto dto = new PendingInventoryDto(); |
| | | BeanUtils.copyProperties(record, dto); |
| | | |
| | | // ä»é¢å è½½çMapä¸è·åofficialId |
| | | dto.setOfficialId(pendingToOfficialMap.getOrDefault(record.getId(), null)); |
| | | return dto; |
| | | }); |
| | | } |
| | | |
| | | // æ¹éè·åå¾
å¤çåºå䏿£å¼åºåçæ å°å
³ç³» |
| | | private Map<Long, Long> getOfficialInventoryMap(List<Long> pendingIds) { |
| | | if (CollectionUtils.isEmpty(pendingIds)) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | |
| | | // æ¥è¯¢å
³èçæ£å¼åºåæ°æ® |
| | | LambdaQueryWrapper<OfficialInventory> wrapper = new LambdaQueryWrapper<>(); |
| | | wrapper.select(OfficialInventory::getId, OfficialInventory::getPendingId) |
| | | .in(OfficialInventory::getPendingId, pendingIds); |
| | | |
| | | return officialInventoryMapper.selectList(wrapper) |
| | | .stream() |
| | | .collect(Collectors.toMap( |
| | | OfficialInventory::getPendingId, |
| | | OfficialInventory::getId, |
| | | (existing, replacement) -> existing // 妿æéå¤ï¼ä¿ç第ä¸ä¸ª |
| | | )); |
| | | } |
| | | |
| | | @Override |
| | |
| | | } else { |
| | | pendingInventoryMapper.deleteById(pendingInventoryDto.getPId()); |
| | | } |
| | | officialInventoryMapper.delete(new LambdaQueryWrapper<OfficialInventory>().eq(OfficialInventory::getPendingId, pendingInventoryDto.getPId())); |
| | | |
| | | |
| | | OfficialInventory officialInventory = new OfficialInventory(); |
| | | BeanUtils.copyProperties(pendingInventory, officialInventory); |
| | | officialInventory.setId(null); |
| | | officialInventory.setPendingId(pendingInventoryDto.getPId()); |
| | | officialInventory.setInventoryQuantity(quantity); |
| | | officialInventoryMapper.insert(officialInventory); |
| | | //æ£å¼åº |
| | | if (pendingInventoryDto.getOfficialId() == null) { |
| | | OfficialInventory officialInventory = new OfficialInventory(); |
| | | BeanUtils.copyProperties(pendingInventory, officialInventory); |
| | | officialInventory.setId(null); |
| | | officialInventory.setPendingId(pendingInventoryDto.getPId()); |
| | | officialInventory.setInventoryQuantity(quantity); |
| | | officialInventoryMapper.insert(officialInventory); |
| | | }else { |
| | | OfficialInventory officialInventory = officialInventoryMapper.selectById(pendingInventoryDto.getOfficialId()); |
| | | officialInventory.setInventoryQuantity(quantity.add(officialInventory.getInventoryQuantity())); |
| | | officialInventoryMapper.updateById(officialInventory); |
| | | } |
| | | } |
| | | return i; |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import com.ruoyi.business.mapper.ProductionInventoryMapper; |
| | | import com.ruoyi.business.service.ProductionInventoryService; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 æå¡å®ç°ç±» |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class ProductionInventoryServiceImpl extends ServiceImpl<ProductionInventoryMapper, ProductionInventory> implements ProductionInventoryService { |
| | | |
| | | private final ProductionInventoryMapper productionInventoryMapper; |
| | | |
| | | @Override |
| | | public IPage<ProductionInventory> selectPIList(Page page,ProductionInventory productionInventory) { |
| | | LambdaQueryWrapper<ProductionInventory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.orderByDesc(ProductionInventory::getCreateTime); |
| | | return productionInventoryMapper.selectPage(page, queryWrapper); |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | package com.ruoyi.business.service.impl; |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.business.dto.ProductionMasterDto; |
| | | import com.ruoyi.business.entity.Production; |
| | | import com.ruoyi.business.entity.ProductionInventory; |
| | | import com.ruoyi.business.entity.ProductionMaster; |
| | | import com.ruoyi.business.mapper.OfficialInventoryMapper; |
| | | import com.ruoyi.business.mapper.ProductionInventoryMapper; |
| | | import com.ruoyi.business.mapper.ProductionMapper; |
| | | import com.ruoyi.business.mapper.ProductionMasterMapper; |
| | | import com.ruoyi.business.service.ProductionMasterService; |
| | | import com.ruoyi.common.utils.bean.BeanUtils; |
| | | import lombok.RequiredArgsConstructor; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Collections; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | | * <p> |
| | | * ç产主表 æå¡å®ç°ç±» |
| | | * </p> |
| | | * |
| | | * @author ruoyi |
| | | * @since 2025-06-13 |
| | | */ |
| | | @Service |
| | | @RequiredArgsConstructor |
| | | public class ProductionMasterServiceImpl extends ServiceImpl<ProductionMasterMapper, ProductionMaster> implements ProductionMasterService { |
| | | |
| | | private final ProductionMasterMapper productionMasterMapper; |
| | | |
| | | private final ProductionInventoryMapper productionInventoryMapper; |
| | | |
| | | private final ProductionMapper productionMapper; |
| | | |
| | | private final OfficialInventoryMapper officialInventoryMapper; |
| | | |
| | | @Override |
| | | public IPage<ProductionMasterDto> selectPMList(Page page, ProductionMasterDto productionMasterDto) { |
| | | // 1. æå»ºä¸»è¡¨æ¥è¯¢æ¡ä»¶ |
| | | LambdaQueryWrapper<ProductionMaster> masterQueryWrapper = new LambdaQueryWrapper<>(); |
| | | |
| | | // 2. æ§è¡ä¸»è¡¨å页æ¥è¯¢ |
| | | IPage<ProductionMaster> entityPage = productionMasterMapper.selectPage(page, masterQueryWrapper); |
| | | |
| | | // 3. æå主表IDå表ç¨äºæ¹éæ¥è¯¢åè¡¨æ°æ® |
| | | List<Long> masterIds = entityPage.getRecords().stream() |
| | | .map(ProductionMaster::getId) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // 4. æ¹éæ¥è¯¢å
³èæ°æ®ï¼é¿å
N+1é®é¢ï¼ |
| | | Map<Long, List<Production>> productionMap = queryProductionByMasterIds(masterIds); |
| | | Map<Long, List<ProductionInventory>> inventoryMap = queryInventoryByMasterIds(masterIds); |
| | | |
| | | // 5. è½¬æ¢æ°æ®å¹¶ç»è£
ç»æ |
| | | List<ProductionMasterDto> dtoList = entityPage.getRecords().stream() |
| | | .map(record -> { |
| | | ProductionMasterDto dto = new ProductionMasterDto(); |
| | | BeanUtils.copyProperties(record, dto); |
| | | dto.setProductionList(productionMap.getOrDefault(record.getId(), Collections.emptyList())); |
| | | dto.setProductionInventoryList(inventoryMap.getOrDefault(record.getId(), Collections.emptyList())); |
| | | return dto; |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | |
| | | // 6. æå»ºè¿åç»æ |
| | | IPage<ProductionMasterDto> dtoPage = new Page<>(); |
| | | BeanUtils.copyProperties(entityPage, dtoPage, "records"); |
| | | dtoPage.setRecords(dtoList); |
| | | |
| | | return dtoPage; |
| | | } |
| | | |
| | | /** |
| | | * æ¹éæ¥è¯¢Productionæ°æ® |
| | | */ |
| | | private Map<Long, List<Production>> queryProductionByMasterIds(List<Long> masterIds) { |
| | | if (masterIds.isEmpty()) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | |
| | | LambdaQueryWrapper<Production> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.in(Production::getProductionMasterId, masterIds); |
| | | List<Production> productions = productionMapper.selectList(queryWrapper); |
| | | |
| | | return productions.stream() |
| | | .collect(Collectors.groupingBy(Production::getProductionMasterId)); |
| | | } |
| | | |
| | | /** |
| | | * æ¹éæ¥è¯¢ProductionInventoryæ°æ® |
| | | */ |
| | | private Map<Long, List<ProductionInventory>> queryInventoryByMasterIds(List<Long> masterIds) { |
| | | if (masterIds.isEmpty()) { |
| | | return Collections.emptyMap(); |
| | | } |
| | | |
| | | LambdaQueryWrapper<ProductionInventory> queryWrapper = new LambdaQueryWrapper<>(); |
| | | queryWrapper.in(ProductionInventory::getProductionMasterId, masterIds); |
| | | List<ProductionInventory> inventoryList = productionInventoryMapper.selectList(queryWrapper); |
| | | |
| | | return inventoryList.stream() |
| | | .collect(Collectors.groupingBy(ProductionInventory::getProductionMasterId)); |
| | | } |
| | | |
| | | @Override |
| | | @Transactional |
| | | public int addOrEditPM(ProductionMasterDto productionMasterDto) { |
| | | // 1. ç´æ¥è®¡ç®èåå¼ï¼é¿å
å建å¤ä½å表 |
| | | BigDecimal totalPurchasePrice = BigDecimal.ZERO; |
| | | BigDecimal totalLaborCost = BigDecimal.ZERO; |
| | | BigDecimal totalEnergyConsumptionCost = BigDecimal.ZERO; |
| | | BigDecimal totalTotalCost = BigDecimal.ZERO; |
| | | BigDecimal totalEquipmentDepreciation = BigDecimal.ZERO; |
| | | int totalProductionQuantity = 0; |
| | | StringBuilder coalBuilder = new StringBuilder("["); // ä¼ååç¬¦ä¸²æ¼æ¥ |
| | | |
| | | for (Production production : productionMasterDto.getProductionList()) { |
| | | totalPurchasePrice = totalPurchasePrice.add(production.getPurchasePrice()); |
| | | totalLaborCost = totalLaborCost.add(production.getLaborCost()); |
| | | totalEnergyConsumptionCost = totalEnergyConsumptionCost.add(production.getEnergyConsumptionCost()); |
| | | totalTotalCost = totalTotalCost.add(production.getTotalCost()); |
| | | totalEquipmentDepreciation = totalEquipmentDepreciation.add(production.getEquipmentDepreciation()); |
| | | totalProductionQuantity += production.getProductionQuantity(); |
| | | coalBuilder.append(production.getCoal()).append(","); |
| | | } |
| | | |
| | | // å¤çcoalåç¬¦ä¸²æ¼æ¥ |
| | | String coalStr = coalBuilder.length() > 1 ? |
| | | coalBuilder.deleteCharAt(coalBuilder.length()-1).append("]").toString() : "[]"; |
| | | |
| | | // 2. å建主表对象 |
| | | ProductionMaster productionMaster = new ProductionMaster(); |
| | | productionMaster.setProductionQuantity(totalProductionQuantity); |
| | | productionMaster.setTotalCost(totalTotalCost); |
| | | productionMaster.setEquipmentDepreciation(totalEquipmentDepreciation); |
| | | productionMaster.setEnergyConsumptionCost(totalEnergyConsumptionCost); |
| | | productionMaster.setLaborCost(totalLaborCost); |
| | | productionMaster.setCoal(coalStr); |
| | | |
| | | Long masterId = productionMasterDto.getId(); |
| | | productionMaster.setId(masterId); |
| | | |
| | | // 3. ç»ä¸å表å¤çé»è¾ |
| | | if (masterId == null) { |
| | | productionMasterMapper.insert(productionMaster); |
| | | masterId = productionMaster.getId(); // è·åæ°çæçID |
| | | } else { |
| | | // å é¤å
³èåè¡¨æ°æ®ï¼ä½¿ç¨æ´é«æçinå é¤ï¼ |
| | | productionMapper.delete(new LambdaQueryWrapper<Production>() |
| | | .eq(Production::getProductionMasterId, masterId)); |
| | | |
| | | productionInventoryMapper.delete(new LambdaQueryWrapper<ProductionInventory>() |
| | | .eq(ProductionInventory::getProductionMasterId, masterId)); |
| | | |
| | | productionMasterMapper.updateById(productionMaster); |
| | | } |
| | | |
| | | // 4. æ¹éæå
¥åè¡¨æ°æ® |
| | | batchInsertProductions(masterId, productionMasterDto.getProductionList()); |
| | | batchInsertInventories(masterId, productionMasterDto.getProductionInventoryList()); |
| | | |
| | | return 1; |
| | | } |
| | | |
| | | // æ¹éæå
¥çäº§æ°æ® |
| | | private void batchInsertProductions(Long masterId, List<Production> productions) { |
| | | List<Production> insertList = productions.stream() |
| | | .peek(p -> { |
| | | p.setId(null); |
| | | p.setProductionMasterId(masterId); |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (!insertList.isEmpty()) { |
| | | for (Production production : productions) { |
| | | production.setId(null); |
| | | production.setProductionMasterId(masterId); |
| | | productionMapper.insert(production); |
| | | } |
| | | } |
| | | } |
| | | |
| | | // æ¹éæå
¥åºåæ°æ® |
| | | private void batchInsertInventories(Long masterId, List<ProductionInventory> inventories) { |
| | | List<ProductionInventory> insertList = inventories.stream() |
| | | .peek(inv -> { |
| | | inv.setId(null); |
| | | inv.setProductionMasterId(masterId); |
| | | }) |
| | | .collect(Collectors.toList()); |
| | | |
| | | if (!insertList.isEmpty()) { |
| | | for (ProductionInventory inventory : inventories) { |
| | | inventory.setId(null); |
| | | inventory.setProductionMasterId(masterId); |
| | | productionInventoryMapper.insert(inventory); |
| | | } |
| | | } |
| | | } |
| | | |
| | | @Override |
| | | public int delByIds(Long[] ids) { |
| | | return 0; |
| | | } |
| | | } |
| | |
| | | -- å建ç产æç»è¡¨ |
| | | CREATE TABLE production |
| | | ( |
| | | id BIGSERIAL PRIMARY KEY, -- 主é®ID |
| | | coal_id BIGINT NOT NULL DEFAULT 0, -- ç
¤ç§ID |
| | | coal VARCHAR(50) NOT NULL, -- ç
¤ç§ |
| | | calorific_value INT NOT NULL, -- çå¼ |
| | | production_quantity INT NOT NULL, -- ç产æ°é |
| | | labor_cost DECIMAL(10, 2) NOT NULL, -- äººå·¥ææ¬ |
| | | energy_consumption_cost DECIMAL(10, 2) NOT NULL, -- è½èææ¬ |
| | | equipment_depreciation DECIMAL(10, 2) NOT NULL, -- è®¾å¤ææ§ |
| | | purchase_price DECIMAL(10, 2) NOT NULL, -- éè´åä»· |
| | | total_cost DECIMAL(10, 2) NOT NULL, -- æ»ææ¬ |
| | | producer VARCHAR(50), -- ç产人 |
| | | production_date DATE, -- çäº§æ¥æ |
| | | id BIGSERIAL PRIMARY KEY, -- 主é®ID |
| | | production_master_id BIGINT NOT NULL DEFAULT 0, -- ç产主表ID |
| | | coal_id BIGINT NOT NULL DEFAULT 0, -- ç
¤ç§ID |
| | | coal VARCHAR(50) NOT NULL, -- ç
¤ç§ |
| | | production_quantity INT NOT NULL, -- ç产æ°é |
| | | labor_cost DECIMAL(10, 2) NOT NULL, -- äººå·¥ææ¬ |
| | | energy_consumption_cost DECIMAL(10, 2) NOT NULL, -- è½èææ¬ |
| | | equipment_depreciation DECIMAL(10, 2) NOT NULL, -- è®¾å¤ææ§ |
| | | purchase_price DECIMAL(10, 2) NOT NULL, -- éè´åä»· |
| | | total_cost DECIMAL(10, 2) NOT NULL, -- æ»ææ¬ |
| | | producer_id VARCHAR(50), -- ç产人id |
| | | producer VARCHAR(50), -- ç产人 |
| | | production_date DATE, -- çäº§æ¥æ |
| | | |
| | | deleted INT NOT NULL DEFAULT 0, -- 软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤ |
| | | create_by VARCHAR(255), -- åå»ºäººç¨æ·å |
| | | create_time TIMESTAMP WITHOUT TIME ZONE, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | update_by VARCHAR(255), -- æåæ´æ°äººç¨æ·å |
| | | update_time TIMESTAMP WITHOUT TIME ZONE -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | deleted INT NOT NULL DEFAULT 0, -- 软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤ |
| | | create_by VARCHAR(255), -- åå»ºäººç¨æ·å |
| | | create_time TIMESTAMP WITHOUT TIME ZONE, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | update_by VARCHAR(255), -- æåæ´æ°äººç¨æ·å |
| | | update_time TIMESTAMP WITHOUT TIME ZONE -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | ); |
| | | |
| | | -- æ·»å 表注é |
| | |
| | | COMMENT ON COLUMN production.id IS '主é®ID'; |
| | | COMMENT ON COLUMN production.coal_id IS 'ç
¤ç§ID'; |
| | | COMMENT ON COLUMN production.coal IS 'ç
¤ç§'; |
| | | COMMENT ON COLUMN production.calorific_value IS 'çå¼'; |
| | | COMMENT ON COLUMN production.production_quantity IS 'ç产æ°é'; |
| | | COMMENT ON COLUMN production.labor_cost IS 'äººå·¥ææ¬'; |
| | | COMMENT ON COLUMN production.energy_consumption_cost IS 'è½èææ¬'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | -- å建ç产æç»è¡¨ |
| | | CREATE TABLE production_master |
| | | ( |
| | | id BIGSERIAL PRIMARY KEY, -- 主é®ID |
| | | coal VARCHAR(50) NOT NULL, -- ç
¤ç§ |
| | | production_quantity INT NOT NULL, -- ç产æ°é |
| | | labor_cost DECIMAL(10, 2) NOT NULL, -- äººå·¥ææ¬ |
| | | energy_consumption_cost DECIMAL(10, 2) NOT NULL, -- è½èææ¬ |
| | | equipment_depreciation DECIMAL(10, 2) NOT NULL, -- è®¾å¤ææ§ |
| | | total_cost DECIMAL(10, 2) NOT NULL, -- æ»ææ¬ |
| | | producer_id VARCHAR(50), -- ç产人id |
| | | producer VARCHAR(50), -- ç产人 |
| | | production_date DATE, -- çäº§æ¥æ |
| | | |
| | | deleted INT NOT NULL DEFAULT 0, -- 软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤ |
| | | create_by VARCHAR(255), -- åå»ºäººç¨æ·å |
| | | create_time TIMESTAMP WITHOUT TIME ZONE, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | update_by VARCHAR(255), -- æåæ´æ°äººç¨æ·å |
| | | update_time TIMESTAMP WITHOUT TIME ZONE -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | ); |
| | | |
| | | -- æ·»å 表注é |
| | | COMMENT ON TABLE production_master IS 'ç产主表'; |
| | | |
| | | -- æ·»å åæ®µæ³¨é |
| | | COMMENT ON COLUMN production_master.id IS '主é®ID'; |
| | | COMMENT ON COLUMN production_master.coal IS 'ç
¤ç§'; |
| | | COMMENT ON COLUMN production_master.production_quantity IS 'ç产æ°é'; |
| | | COMMENT ON COLUMN production_master.labor_cost IS 'äººå·¥ææ¬'; |
| | | COMMENT ON COLUMN production_master.energy_consumption_cost IS 'è½èææ¬'; |
| | | COMMENT ON COLUMN production_master.equipment_depreciation IS 'è®¾å¤ææ§'; |
| | | COMMENT ON COLUMN production_master.total_cost IS 'æ»ææ¬'; |
| | | COMMENT ON COLUMN production_master.producer IS 'ç产人'; |
| | | COMMENT ON COLUMN production_master.production_date IS 'çäº§æ¥æ'; |
| | | |
| | | COMMENT ON COLUMN production_master.deleted IS '软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤'; |
| | | COMMENT ON COLUMN production_master.create_by IS 'å建该记å½çç¨æ·'; |
| | | COMMENT ON COLUMN production_master.create_time IS 'è®°å½å建æ¶é´'; |
| | | COMMENT ON COLUMN production_master.update_by IS 'æåä¿®æ¹è¯¥è®°å½çç¨æ·'; |
| | | COMMENT ON COLUMN production_master.update_time IS 'è®°å½æåæ´æ°æ¶é´'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | -- å建ç产æç»è¡¨ |
| | | CREATE TABLE production_inventory |
| | | ( |
| | | id BIGSERIAL PRIMARY KEY, -- 主é®ID |
| | | production_master_id BIGINT NOT NULL DEFAULT 0, -- ç产主表ID |
| | | coal_id BIGINT NOT NULL DEFAULT 0, -- ç
¤ç§ID |
| | | coal VARCHAR(50) NOT NULL, -- ç
¤ç§ |
| | | inventory_quantity INT NOT NULL, -- åºåæ°é |
| | | used_quantity INT NOT NULL, -- ä½¿ç¨æ°é |
| | | |
| | | |
| | | deleted INT NOT NULL DEFAULT 0, -- 软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤ |
| | | create_by VARCHAR(255), -- åå»ºäººç¨æ·å |
| | | create_time TIMESTAMP WITHOUT TIME ZONE, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | update_by VARCHAR(255), -- æåæ´æ°äººç¨æ·å |
| | | update_time TIMESTAMP WITHOUT TIME ZONE -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | ); |
| | | |
| | | -- æ·»å 表注é |
| | | COMMENT ON TABLE production_inventory IS 'ç产主表'; |
| | | |
| | | -- æ·»å åæ®µæ³¨é |
| | | COMMENT ON COLUMN production_inventory.id IS '主é®ID'; |
| | | COMMENT ON COLUMN production_inventory.production_master_id IS 'ç产主表ID'; |
| | | COMMENT ON COLUMN production_inventory.coal_id IS 'ç
¤ç§ID'; |
| | | COMMENT ON COLUMN production_inventory.coal IS 'ç
¤ç§'; |
| | | COMMENT ON COLUMN production_inventory.inventory_quantity IS 'åºåæ°é'; |
| | | COMMENT ON COLUMN production_inventory.used_quantity IS 'ä½¿ç¨æ°é'; |
| | | |
| | | COMMENT ON COLUMN production_inventory.deleted IS '软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤'; |
| | | COMMENT ON COLUMN production_inventory.create_by IS 'å建该记å½çç¨æ·'; |
| | | COMMENT ON COLUMN production_inventory.create_time IS 'è®°å½å建æ¶é´'; |
| | | COMMENT ON COLUMN production_inventory.update_by IS 'æåä¿®æ¹è¯¥è®°å½çç¨æ·'; |
| | | COMMENT ON COLUMN production_inventory.update_time IS 'è®°å½æåæ´æ°æ¶é´'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | -- å建巡æ£ä»»å¡è¡¨ |
| | | CREATE TABLE inspection_task |
| | | ( |
| | | id BIGSERIAL PRIMARY KEY, -- ä»»å¡ID (主é®ï¼èªå¢é¿) |
| | | task_name VARCHAR(255), -- ä»»å¡åç§° |
| | | inspector_id BIGINT, -- å·¡æ£äººåid |
| | | inspector VARCHAR(100), -- å·¡æ£äººå |
| | | port TEXT, -- å·¡æ£å°ç¹ |
| | | remarks TEXT, -- 夿³¨è¯´æ |
| | | registrant_id BIGINT, -- ç»è®°äººåid |
| | | registrant VARCHAR(100), -- ç»è®°äººå |
| | | |
| | | deleted INT NOT NULL DEFAULT 0, -- 软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤ |
| | | create_by VARCHAR(255), -- åå»ºäººç¨æ·å |
| | | create_time TIMESTAMP WITHOUT TIME ZONE, -- å建æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | update_by VARCHAR(255), -- æåæ´æ°äººç¨æ·å |
| | | update_time TIMESTAMP WITHOUT TIME ZONE -- æåæ´æ°æ¶é´ï¼é»è®¤å½åæ¶é´ |
| | | ); |
| | | -- æ·»å 表注é |
| | | COMMENT ON TABLE inspection_task IS 'å·¡æ£ä»»å¡è¡¨'; |
| | | |
| | | -- æ·»å åæ®µæ³¨é |
| | | COMMENT ON COLUMN inspection_task.id IS 'å·¡æ£ä»»å¡å¯ä¸æ è¯'; |
| | | COMMENT ON COLUMN inspection_task.task_name IS 'å·¡æ£ä»»å¡åç§°'; |
| | | COMMENT ON COLUMN inspection_task.inspector IS 'æ§è¡å·¡æ£ç人åå§å'; |
| | | COMMENT ON COLUMN inspection_task.port IS 'å·¡æ£å°ç¹è¯¦ç»æè¿°'; |
| | | COMMENT ON COLUMN inspection_task.remarks IS 'ä»»å¡éå 说ææç¹æ®æ
åµè®°å½'; |
| | | COMMENT ON COLUMN inspection_task.registrant IS 'ä»»å¡ç»è®°äººå§å'; |
| | | |
| | | COMMENT ON COLUMN inspection_task.deleted IS '软å 餿 å¿ï¼0=æªå é¤ï¼1=å·²å é¤'; |
| | | COMMENT ON COLUMN inspection_task.create_by IS 'å建该记å½çç¨æ·'; |
| | | COMMENT ON COLUMN inspection_task.create_time IS 'è®°å½å建æ¶é´'; |
| | | COMMENT ON COLUMN inspection_task.update_by IS 'æåä¿®æ¹è¯¥è®°å½çç¨æ·'; |
| | | COMMENT ON COLUMN inspection_task.update_time IS 'è®°å½æåæ´æ°æ¶é´'; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.business.mapper.InspectionTaskMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.InspectionTask"> |
| | | <id column="id" property="id" /> |
| | | <result column="deleted" property="deleted" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="task_name" property="taskName" /> |
| | | <result column="inspector_id" property="inspectorId" /> |
| | | <result column="inspector" property="inspector" /> |
| | | <result column="port" property="port" /> |
| | | <result column="remarks" property="remarks" /> |
| | | <result column="registrant_id" property="registrantId" /> |
| | | <result column="registrant" property="registrant" /> |
| | | </resultMap> |
| | | |
| | | <!-- éç¨æ¥è¯¢ç»æå --> |
| | | <sql id="Base_Column_List"> |
| | | deleted, |
| | | create_by, |
| | | create_time, |
| | | update_by, |
| | | update_time, |
| | | id, task_name, inspector_id, inspector, port, remarks, registrant_id, registrant |
| | | </sql> |
| | | |
| | | </mapper> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.business.mapper.ProductionInventoryMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.ProductionInventory"> |
| | | <id column="id" property="id" /> |
| | | <result column="deleted" property="deleted" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="production_master_id" property="productionMasterId" /> |
| | | <result column="coal_id" property="coalId" /> |
| | | <result column="coal" property="coal" /> |
| | | <result column="inventory_quantity" property="inventoryQuantity" /> |
| | | <result column="used_quantity" property="usedQuantity" /> |
| | | </resultMap> |
| | | |
| | | <!-- éç¨æ¥è¯¢ç»æå --> |
| | | <sql id="Base_Column_List"> |
| | | deleted, |
| | | create_by, |
| | | create_time, |
| | | update_by, |
| | | update_time, |
| | | id, production_master_id, coal_id, coal, inventory_quantity, used_quantity |
| | | </sql> |
| | | |
| | | </mapper> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <?xml version="1.0" encoding="UTF-8"?> |
| | | <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> |
| | | <mapper namespace="com.ruoyi.business.mapper.ProductionMasterMapper"> |
| | | |
| | | <!-- éç¨æ¥è¯¢æ å°ç»æ --> |
| | | <resultMap id="BaseResultMap" type="com.ruoyi.business.entity.ProductionMaster"> |
| | | <id column="id" property="id" /> |
| | | <result column="deleted" property="deleted" /> |
| | | <result column="create_by" property="createBy" /> |
| | | <result column="create_time" property="createTime" /> |
| | | <result column="update_by" property="updateBy" /> |
| | | <result column="update_time" property="updateTime" /> |
| | | <result column="coal" property="coal" /> |
| | | <result column="production_quantity" property="productionQuantity" /> |
| | | <result column="labor_cost" property="laborCost" /> |
| | | <result column="energy_consumption_cost" property="energyConsumptionCost" /> |
| | | <result column="equipment_depreciation" property="equipmentDepreciation" /> |
| | | <result column="total_cost" property="totalCost" /> |
| | | <result column="producer_id" property="producerId" /> |
| | | <result column="producer" property="producer" /> |
| | | <result column="production_date" property="productionDate" /> |
| | | </resultMap> |
| | | |
| | | <!-- éç¨æ¥è¯¢ç»æå --> |
| | | <sql id="Base_Column_List"> |
| | | deleted, |
| | | create_by, |
| | | create_time, |
| | | update_by, |
| | | update_time, |
| | | id, coal, production_quantity, labor_cost, energy_consumption_cost, equipment_depreciation, total_cost, producer_id, producer, production_date |
| | | </sql> |
| | | |
| | | </mapper> |
| | |
| | | String projectPath = System.getProperty("user.dir"); // è·åé¡¹ç®æ ¹è·¯å¾ |
| | | String path = "main-business"; // 模ååç§° |
| | | String table = "input_inventory_record,output_inventory_record,inventory_summary"; // 表åï¼å¤ä¸ªè¡¨éå·éå¼ |
| | | String author = "chenhj"; |
| | | |
| | | // 代ç è¾åºè·¯å¾é
ç½® |
| | | String outputBasePath = Paths.get(projectPath, path, "src", "main", "java").toString(); |
| | |
| | | // 代ç çææ ¸å¿é
ç½® |
| | | FastAutoGenerator.create(DB_URL, DB_USERNAME, DB_PASSWORD) |
| | | .globalConfig(builder -> { |
| | | builder.author("chenhj") // ä½è
ä¿¡æ¯ |
| | | builder.author(author) // ä½è
ä¿¡æ¯ |
| | | .outputDir(outputBasePath) // 代ç è¾åºç®å½ |
| | | .dateType(DateType.ONLY_DATE) // æ¥æç±»å |
| | | .commentDate("yyyy-MM-dd") // æ³¨éæ¥ææ ¼å¼ |
| | |
| | | )); // åºç±»å段 |
| | | customMap.put("idType", "AUTO"); // 主é®ç±»å |
| | | customMap.put("superEntityClass", "com.ruoyi.common.core.domain.MyBaseEntity"); // åºç±»å
¨è·¯å¾ |
| | | customMap.put("author", "chenhj"); // ä½è
ä¿¡æ¯ |
| | | customMap.put("author", author); // ä½è
ä¿¡æ¯ |
| | | customMap.put("packageName", BASE_PACKAGE + "." + MODULE_NAME); // å
å |
| | | customMap.put("tableName", table); // 表å |
| | | |
| | |
| | | @Controller |
| | | </#if> |
| | | @AllArgsConstructor |
| | | @RequestMapping("<#if package.ModuleName?? && package.ModuleName != "">/${package.ModuleName}</#if>/<#if controllerMappingHyphenStyle>${controllerMappingHyphen}<#else>${table.entityPath}</#if>") |
| | | @RequestMapping("/<#if controllerMappingHyphenStyle>${controllerMappingHyphen}<#else>${table.entityPath}</#if>") |
| | | <#if kotlin> |
| | | class ${table.controllerName}<#if superControllerClass??> : ${superControllerClass}()</#if> |
| | | <#else> |