gongchunyi
6 天以前 9bff4644123830b7deda5674bf29254b940f536a
Merge remote-tracking branch 'origin/dev_New' into dev_New
已修改6个文件
124 ■■■■■ 文件已修改
src/main/java/com/ruoyi/home/controller/HomeController.java 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/stock/controller/StockInRecordController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/production/ProductionProductMainMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/home/controller/HomeController.java
@@ -36,6 +36,31 @@
    @Autowired
    private HomeService homeService;
    /********************************************************基础类*****************************************************/
    @GetMapping("/todos")
    @Log(title = "待办事项", businessType = BusinessType.OTHER)
    @ApiOperation("待办事项")
    public AjaxResult todos(ApproveProcess req) throws ParseException {
        List<ApproveProcess> approveProcessList = homeService.todos();
        return AjaxResult.success(approveProcessList);
    }
    @GetMapping("/approveAndDeviceTodos")
    @ApiOperation("审批协同,设备报修待办事项")
    public AjaxResult approveAndDeviceTodos(){
        Map<String, Object> map = homeService.approveAndDeviceTodos();
        return AjaxResult.success(map);
    }
    @GetMapping("/noticesCount")
    @ApiOperation("未过期的公告数量")
    public AjaxResult noticesCount(){
        Long count = homeService.noticesCount();
        return AjaxResult.success(count);
    }
    /********************************************************营销采购类**************************************************/
    @GetMapping("/business")
    @Log(title = "销售-采购-库存数据", businessType = BusinessType.OTHER)
    @ApiOperation("销售-采购-库存数据")
@@ -53,43 +78,8 @@
        return AjaxResult.success(analysisCustomerContractAmounts);
    }
    @GetMapping("/qualityStatistics")
    @Log(title = "质量分析", businessType = BusinessType.OTHER)
    @ApiOperation("质量分析")
    public AjaxResult qualityStatistics(QualityStatisticsDto req) {
        QualityStatisticsDto qualityStatisticsDto = homeService.qualityStatistics();
        return AjaxResult.success(qualityStatisticsDto);
    }
    @GetMapping("/todos")
    @Log(title = "待办事项", businessType = BusinessType.OTHER)
    @ApiOperation("待办事项")
    public AjaxResult todos(ApproveProcess req) throws ParseException {
        List<ApproveProcess> approveProcessList = homeService.todos();
        return AjaxResult.success(approveProcessList);
    }
    @GetMapping("/statisticsReceivablePayable")
    @Log(title = "应收应付统计", businessType = BusinessType.OTHER)
    @ApiOperation("应收应付统计")
    public AjaxResult statisticsReceivablePayable(StatisticsReceivablePayableDto req, @RequestParam(value = "type", defaultValue = "1") Integer type ) {
        StatisticsReceivablePayableDto statisticsReceivablePayable = homeService.statisticsReceivablePayable(type);
        return AjaxResult.success(statisticsReceivablePayable);
    }
    @GetMapping("/approveAndDeviceTodos")
    @ApiOperation("审批协同,设备报修待办事项")
    public AjaxResult approveAndDeviceTodos(){
        Map<String, Object> map = homeService.approveAndDeviceTodos();
        return AjaxResult.success(map);
    }
    @GetMapping("/noticesCount")
    @ApiOperation("未过期的公告数量")
    public AjaxResult noticesCount(){
        Long count = homeService.noticesCount();
        return AjaxResult.success(count);
    }
    /********************************************************生产类*****************************************************/
    @GetMapping("/progressStatistics")
    @ApiOperation("各生产订单的完成进度统计")
    public AjaxResult progressStatistics(){
@@ -102,4 +92,38 @@
        ProductionTurnoverDto productionTurnoverDto = homeService.workInProcessTurnover();
        return AjaxResult.success(productionTurnoverDto);
    }
    /********************************************************质量类*****************************************************/
    @GetMapping("/qualityStatistics")
    @Log(title = "质量分析", businessType = BusinessType.OTHER)
    @ApiOperation("质量分析")
    public AjaxResult qualityStatistics(QualityStatisticsDto req) {
        QualityStatisticsDto qualityStatisticsDto = homeService.qualityStatistics();
        return AjaxResult.success(qualityStatisticsDto);
    }
    /********************************************************财务类*****************************************************/
    @GetMapping("/statisticsReceivablePayable")
    @Log(title = "应收应付统计", businessType = BusinessType.OTHER)
    @ApiOperation("应收应付统计")
    public AjaxResult statisticsReceivablePayable(StatisticsReceivablePayableDto req, @RequestParam(value = "type", defaultValue = "1") Integer type ) {
        StatisticsReceivablePayableDto statisticsReceivablePayable = homeService.statisticsReceivablePayable(type);
        return AjaxResult.success(statisticsReceivablePayable);
    }
    /********************************************************仓储类*****************************************************/
}
src/main/java/com/ruoyi/production/dto/ProductionProductMainDto.java
@@ -27,6 +27,10 @@
    @Excel(name = "报工数量")
    private BigDecimal quantity;
    @ApiModelProperty(value = "报废数量")
    @Excel(name = "报废数量")
    private BigDecimal scrapQty;
    //产品名称
    @Excel(name = "产品名称")
    private String productName;
src/main/java/com/ruoyi/production/pojo/ProductionProductOutput.java
@@ -20,7 +20,8 @@
    @ApiModelProperty(value = "产品id")
    private Long productModelId;
    @ApiModelProperty(value = "数量")
    //合格数量=报工数量-报废数量
    @ApiModelProperty(value = "报工数量")
    private BigDecimal quantity;
    @ApiModelProperty(value = "创建时间")
@@ -29,4 +30,7 @@
    @ApiModelProperty(value = "租户ID")
    @TableField(fill = FieldFill.INSERT)
    private Long tenantId;
    @ApiModelProperty(value = "报废数量")
    private BigDecimal scrapQty;
}
src/main/java/com/ruoyi/production/service/impl/ProductionProductMainServiceImpl.java
@@ -189,7 +189,12 @@
        productionProductOutput.setProductMainId(productionProductMain.getId());
        productionProductOutput.setProductModelId(productProcessRouteItem.getProductModelId());
        productionProductOutput.setQuantity(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO);
        productionProductOutput.setScrapQty(dto.getScrapQty() != null ? dto.getScrapQty() : BigDecimal.ZERO);
        productionProductOutputMapper.insert(productionProductOutput);
        //合格数量=报工数量-报废数量
        BigDecimal productQty = productionProductOutput.getQuantity().subtract(productionProductOutput.getScrapQty());
        //只有合格数量>0才能增加相应数据
        if (productQty.compareTo(BigDecimal.ZERO)>0) {
        /*新增质检*/
        //对应的过程检或者出厂检
        List<ProductProcessRouteItem> productProcessRouteItems = productProcessRouteItemMapper.selectList(Wrappers.<ProductProcessRouteItem>lambdaQuery().eq(ProductProcessRouteItem::getProductRouteId, productProcessRouteItem.getProductRouteId()));
@@ -206,7 +211,7 @@
        qualityInspect.setProductName(product.getProductName());
        qualityInspect.setModel(productModel.getModel());
        qualityInspect.setUnit(productModel.getUnit());
        qualityInspect.setQuantity(dto.getQuantity());
            qualityInspect.setQuantity(productQty);
        qualityInspect.setProcess(productProcess.getName());
        qualityInspect.setInspectState(0);
        qualityInspect.setInspectType(inspectType);
@@ -229,7 +234,7 @@
        }
        /*更新工单和生产订单*/
        ProductWorkOrder productWorkOrder = productWorkOrderMapper.selectById(dto.getWorkOrderId());
        productWorkOrder.setCompleteQuantity(productWorkOrder.getCompleteQuantity().add(dto.getQuantity()));
            productWorkOrder.setCompleteQuantity(productQty.add(dto.getQuantity()));
        if (ObjectUtils.isNull(productWorkOrder.getActualStartTime())){
            productWorkOrder.setActualStartTime(LocalDate.now());//实际开始时间
        }
@@ -244,7 +249,7 @@
        }
        if (productProcessRouteItem.getDragSort()==productProcessRouteItems.size()){
            //如果是最后一道工序报工之后生产订单完成数量+
            productOrder.setCompleteQuantity(productOrder.getCompleteQuantity().add(dto.getQuantity()));
                productOrder.setCompleteQuantity(productOrder.getCompleteQuantity().add(productQty));
            if (productOrder.getCompleteQuantity().compareTo(productOrder.getQuantity()) == 0){
                productOrder.setEndTime(LocalDateTime.now());//结束时间
            }
@@ -258,13 +263,15 @@
                .salesLedgerProductId(productOrder.getProductModelId())
                .schedulingUserId(user.getUserId())
                .schedulingUserName(user.getNickName())
                .finishedNum(dto.getQuantity() != null ? dto.getQuantity() : BigDecimal.ZERO)
                    .finishedNum(productQty)
                .workHours(productProcess.getSalaryQuota())
                .process(productProcess.getName())
                .schedulingDate(LocalDate.now())
                .tenantId(dto.getTenantId())
                .build();
        salesLedgerProductionAccountingMapper.insert(salesLedgerProductionAccounting);
        }
        //如果报废数量>0,需要进入报废的库存
        return true;
    }
src/main/java/com/ruoyi/stock/controller/StockInRecordController.java
@@ -16,7 +16,7 @@
import java.util.List;
@RestController
@Api(tags = "采购入库")
@Api(tags = "入库")
@RequestMapping("/stockInRecord")
public class StockInRecordController {
    @Autowired
src/main/resources/mapper/production/ProductionProductMainMapper.xml
@@ -20,6 +20,7 @@
               p.product_name as productName,
               pm.model as productModelName,
               ppo.quantity,
               ppo.scrap_qty,
               pm.unit,
               sl.sales_contract_no salesContractNo
        from