523096025 1 week ago
parent
commit
cab0fd1d20
31 changed files with 819 additions and 88 deletions
  1. 5 0
      ruoyi-admin/pom.xml
  2. 21 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLineController.java
  3. 7 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionPlanController.java
  4. 38 14
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionProductController.java
  5. 112 25
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionRegularController.java
  6. 9 9
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionShipmentNotificationController.java
  7. 8 4
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionSlaughterController.java
  8. 155 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionSlaughterGoodsController.java
  9. 28 10
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripPreCoolingController.java
  10. 32 14
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripRefinedController.java
  11. 114 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripRequisitionController.java
  12. 5 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLine.java
  13. 5 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionProduct.java
  14. 1 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionRecord.java
  15. 2 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionRegular.java
  16. 1 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionSlaughter.java
  17. 81 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionSlaughterGoods.java
  18. 1 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripPreCooling.java
  19. 3 1
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripRefined.java
  20. 5 2
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripRequisition.java
  21. 13 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/AddProductionWhiteStripRequisition.java
  22. 10 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/LineRequest.java
  23. 23 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionProductRequest.java
  24. 18 4
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionRegularPlanRequest.java
  25. 10 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionSlaughterGoodsRequest.java
  26. 12 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/WiteStripRequest.java
  27. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProductionSlaughterGoodsMapper.java
  28. 16 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IProductionSlaughterGoodsService.java
  29. 20 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/service/impl/ProductionSlaughterGoodsServiceImpl.java
  30. 17 0
      ruoyi-admin/src/main/java/com/ruoyi/web/base/util/NumUtils.java
  31. 31 0
      ruoyi-admin/src/main/resources/mapper/ProductionSlaughterGoodsMapper.xml

+ 5 - 0
ruoyi-admin/pom.xml

@@ -58,6 +58,11 @@
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-quartz</artifactId>
         </dependency>
+        <dependency>
+            <groupId>cn.hutool</groupId>
+            <artifactId>hutool-all</artifactId>
+            <version>5.8.26</version>
+        </dependency>
 
         <!-- 代码生成-->
         <dependency>

+ 21 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/BaseLineController.java

@@ -6,7 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.web.base.domain.BaseLine;
+import com.ruoyi.web.base.domain.BaseMarket;
+import com.ruoyi.web.base.domain.param.LineRequest;
+import com.ruoyi.web.base.domain.param.WiteStripRequest;
 import com.ruoyi.web.base.service.IBaseLineService;
+import com.ruoyi.web.base.service.IBaseMarketService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -32,6 +36,8 @@ public class BaseLineController {
     @Autowired
     private IBaseLineService baseLineService;
     @Autowired
+    private IBaseMarketService marketService;
+    @Autowired
     private TokenService tokenService;
 
     @ApiOperation("物流线管理添加")
@@ -80,6 +86,20 @@ public class BaseLineController {
     ) {
         return success(baseLineService.page(new Page<BaseLine>(pageNum,pageSize),new QueryWrapper<BaseLine>().eq("org_id",tokenService.getLoginOrgId(request))));
     }
+    @ApiOperation("物流线市场分页")
+    @GetMapping("/lineMarketPage")
+    public AjaxResult lineMarketPage(
+            @RequestBody LineRequest lineRequest,
+            HttpServletRequest request
+    ) {
+        QueryWrapper<BaseLine> wrapper = new QueryWrapper<BaseLine>().eq("org_id", tokenService.getLoginOrgId(request));
+        Page<BaseLine> page = baseLineService.page(new Page<BaseLine>(lineRequest.getPageNum(), lineRequest.getPageSize()),
+                wrapper);
+        for (BaseLine record : page.getRecords()) {
+            record.setGoods(marketService.list(new QueryWrapper<BaseMarket>().eq("line_num",record.getLineNum())));
+        }
+        return success(page );
+    }
 
     @ApiOperation("物流线管理详情")
     @PostMapping("/listById")
@@ -87,4 +107,5 @@ public class BaseLineController {
         String id = paramsMap.get("id");
         return success(baseLineService.getById(id));
     }
+
 }

+ 7 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionPlanController.java

@@ -125,8 +125,14 @@ public class ProductionPlanController {
     public AjaxResult listAll( HttpServletRequest request,
     @RequestBody Map<String,String> map ){
         String productionType = map.get("productionType");
+        String startDate = map.get("startDate");
+        String endDate = map.get("endDate");
         List<ProductionPlan> org_id = productionPlanService.list(new QueryWrapper<ProductionPlan>()
-                .eq(StringUtils.isNotEmpty(productionType),"production_type",productionType).eq("org_id", tokenService.getLoginOrgId(request)));
+                .eq(StringUtils.isNotEmpty(productionType),"production_type",productionType)
+                .eq("org_id", tokenService.getLoginOrgId(request))
+                .ge(StringUtils.isNotEmpty(startDate),"order_date",startDate)
+                .le(StringUtils.isNotEmpty(endDate),"order_date",endDate)
+        );
         for (ProductionPlan procureQuotation : org_id) {
             procureQuotation.setGoods(goodsService.list(new QueryWrapper<ProductionPlanGoods>().eq("order_num",procureQuotation.getOrderNum())));
         }

+ 38 - 14
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionProductController.java

@@ -1,11 +1,18 @@
 package com.ruoyi.web.base.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.web.base.domain.ProductionProduct;
+import com.ruoyi.web.base.domain.ProductionRecord;
+import com.ruoyi.web.base.domain.param.ProductionProductRequest;
+import com.ruoyi.web.base.domain.param.ProductionRegularPlanRequest;
 import com.ruoyi.web.base.service.IProductionProductService;
+import com.ruoyi.web.base.service.IProductionRecordService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
@@ -18,14 +25,17 @@ import static com.ruoyi.common.utils.SecurityUtils.getUsername;
 
 @RestController
 @RequestMapping("/production-product")
+@Api("分割品副产品")
 public class ProductionProductController {
 
     @Autowired
     private IProductionProductService productionProductService;
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private IProductionRecordService productionRecordService;
 
-    @ApiOperation("生产产品添加")
+    @ApiOperation("分割品副产品添加")
     @PostMapping("/add")
     public AjaxResult add(@RequestBody ProductionProduct product, HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
@@ -38,10 +48,15 @@ public class ProductionProductController {
         }
         product.setOrgId(loginOrgId);
         product.setCreateBy(getUsername());
+
+
+        ProductionRecord productionRecord = new ProductionRecord();
+        BeanUtil.copyProperties(product, productionRecord);
+        productionRecordService.save(productionRecord);
         return success(productionProductService.save(product));
     }
 
-    @ApiOperation("生产产品修改")
+    @ApiOperation("分割品副产品修改")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody ProductionProduct product, HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
@@ -57,7 +72,7 @@ public class ProductionProductController {
         return success(productionProductService.updateById(product));
     }
 
-    @ApiOperation("生产产品删除")
+    @ApiOperation("分割品副产品删除")
     @PostMapping("/delete")
     public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
         String ids = paramsMap.get("ids");
@@ -67,30 +82,39 @@ public class ProductionProductController {
         return success();
     }
 
-    @ApiOperation("生产产品列表")
+    @ApiOperation("分割品副产品列表")
     @PostMapping("/list")
-    public AjaxResult listAll(HttpServletRequest request) {
+    public AjaxResult listAll(   @RequestBody ProductionProductRequest planRequest,HttpServletRequest request) {
+        QueryWrapper<ProductionProduct> wrapper = new QueryWrapper<ProductionProduct>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionDate()),"production_date",planRequest.getProductionDate());
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber());
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionType()),"production_date",planRequest.getProductionDate());
         return success(productionProductService.list(
-                new QueryWrapper<ProductionProduct>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
+                wrapper
         ));
     }
 
-    @ApiOperation("生产产品分页")
+    @ApiOperation("分割品副产品分页")
     @GetMapping("/page")
     public AjaxResult page(
-            @RequestParam("pageNum") Integer pageNum,
-            @RequestParam("pageSize") Integer pageSize,
+            @RequestBody ProductionProductRequest planRequest,
             HttpServletRequest request
     ) {
+        QueryWrapper<ProductionProduct> wrapper = new QueryWrapper<ProductionProduct>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionDate()),"production_date",planRequest.getProductionDate());
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber());
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionType()),"production_date",planRequest.getProductionDate());
         return success(productionProductService.page(
-                new Page<ProductionProduct>(pageNum, pageSize),
-                new QueryWrapper<ProductionProduct>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
+                new Page<ProductionProduct>(planRequest.getPageNum(), planRequest.getPageSize()),
+                wrapper
         ));
     }
 
-    @ApiOperation("生产产品详情")
+    @ApiOperation("分割品副产品详情")
     @PostMapping("/listById")
     public AjaxResult listById(@RequestBody Map<String, String> paramsMap) {
         String id = paramsMap.get("id");

+ 112 - 25
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionRegularController.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.base.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -9,9 +10,12 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.web.base.domain.ProductionPlan;
 import com.ruoyi.web.base.domain.ProductionPlanGoods;
+import com.ruoyi.web.base.domain.ProductionRecord;
 import com.ruoyi.web.base.domain.ProductionRegular;
 import com.ruoyi.web.base.domain.param.ProductionRegularPlanRequest;
 import com.ruoyi.web.base.service.IProductionPlanGoodsService;
+import com.ruoyi.web.base.service.IProductionPlanService;
+import com.ruoyi.web.base.service.IProductionRecordService;
 import com.ruoyi.web.base.service.IProductionRegularService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -21,6 +25,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletRequest;
 import java.util.Map;
 
+import static com.ruoyi.common.core.domain.AjaxResult.error;
 import static com.ruoyi.common.core.domain.AjaxResult.success;
 import static com.ruoyi.common.utils.SecurityUtils.getUsername;
 import static com.ruoyi.web.base.util.NumUtils.*;
@@ -35,21 +40,40 @@ public class ProductionRegularController {
     private IProductionPlanGoodsService planGoodsService;
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private IProductionPlanService planService;
+    @Autowired
+    private IProductionRecordService productionRecordService;
 
+    @ApiOperation("批量修改加工类型")
+    @PostMapping("/updateBatchType")
+    @Transactional
+    public AjaxResult updateBatch(@RequestBody Map<String, String> paramsMap,
+    HttpServletRequest request) throws Exception {
+         String ids = paramsMap.get("ids");
+         String processingType = paramsMap.get("processingType");
+        for (String id : ids.split(",")) {
+            ProductionRegular productionRegular = new ProductionRegular();
+            productionRegular.setId(Integer.parseInt(id));
+            productionRegular.setProcessingType(processingType);
+            productionRegularService.updateById(productionRegular);
+        }
+        return success();
+    }
 
     @ApiOperation("获取常规生产单编号")
     @PostMapping("/getProductionNum")
     public AjaxResult getQuotaNum(HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
 
-        ProductionRegular one = productionRegularService.getOne(new QueryWrapper<ProductionRegular>().eq("org_id", loginOrgId).orderByDesc("id").last("limit 1"));
-        if (ObjectUtils.isEmpty(one)){
+        ProductionRecord one = productionRecordService.getOne(new QueryWrapper<ProductionRecord>().eq("org_id", loginOrgId).orderByDesc("id").last("limit 1"));
+        if (ObjectUtils.isEmpty(one)) {
 
-            return success(generateString2("JL",1));
+            return success(generateString2("JL", 1));
         }
         String quotationNum = one.getProductionRecordNumber();
 
-        return success(generateString2("JL",substringToInt2(quotationNum)));
+        return success(generateString2("JL", substringToInt2(quotationNum)));
 
     }
 
@@ -57,29 +81,26 @@ public class ProductionRegularController {
     @PostMapping("/add")
     @Transactional
     public AjaxResult add(@RequestBody ProductionRegular regular, HttpServletRequest request) throws Exception {
-        if (regular.getProductionStatus() == 1){
+        if ("1".equals(regular.getQuarantineInspection()) ) {
             String pigBatch = regular.getPigBatch();
             ProductionPlanGoods productionPlanGoods = new ProductionPlanGoods();
             productionPlanGoods.setProductionStatus(1);
-            planGoodsService.update( productionPlanGoods,new UpdateWrapper<ProductionPlanGoods>().eq("batch",pigBatch));
+            planGoodsService.update(productionPlanGoods, new UpdateWrapper<ProductionPlanGoods>().eq("batch", pigBatch));
         }
         String loginOrgId = tokenService.getLoginOrgId(request);
+
         if (productionRegularService.count(
                 new QueryWrapper<ProductionRegular>()
-                        .eq("org_id", loginOrgId)
-                        .eq("production_record_number", regular.getProductionRecordNumber())
-        ) > 0) {
-            throw new Exception("该常规编号已存在");
-        }
-        if (productionRegularService.count(
-                new QueryWrapper<ProductionRegular>()
-                        .eq("org_id", loginOrgId)
+                        .eq("org_id", loginOrgId).eq("production_record_number", regular.getProductionRecordNumber())
                         .eq("white_strip_number", regular.getWhiteStripNumber())
         ) > 0) {
             throw new Exception("该白条已存在");
         }
         regular.setOrgId(loginOrgId);
         regular.setCreateBy(getUsername());
+        ProductionRecord productionRecord = new ProductionRecord();
+        BeanUtil.copyProperties(regular, productionRecord);
+        productionRecordService.save(productionRecord);
         return success(productionRegularService.save(regular));
     }
 
@@ -91,7 +112,7 @@ public class ProductionRegularController {
                 new QueryWrapper<ProductionRegular>()
                         .ne("id", regular.getId())
                         .eq("org_id", loginOrgId)
-                        .eq("production_record_number", regular.getProductionRecordNumber())
+                        .eq("production_record_number", regular.getProductionRecordNumber()).eq("white_strip_number", regular.getWhiteStripNumber())
         ) > 0) {
             throw new Exception("该常规编号已存在");
         }
@@ -112,16 +133,16 @@ public class ProductionRegularController {
     @ApiOperation("生产常规列表")
     @PostMapping("/list")
     public AjaxResult listAll(
-            @RequestBody ProductionRegularPlanRequest planRequest,HttpServletRequest request) {
+            @RequestBody ProductionRegularPlanRequest planRequest, HttpServletRequest request) {
 
         return success(productionRegularService.list(
                 new QueryWrapper<ProductionRegular>()
                         .eq("org_id", tokenService.getLoginOrgId(request)).
-        eq(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
-                .eq(StringUtils.isNotEmpty(planRequest.getPigBatch()),"pig_batch",planRequest.getPigBatch())
-                .eq(StringUtils.isNotEmpty(planRequest.getProductionDate()),"production_date",planRequest.getProductionDate())
-                .eq(StringUtils.isNotEmpty(planRequest.getProductionType()),"production_type",planRequest.getProductionType())
-                .eq(StringUtils.isNotEmpty(planRequest.getProductionWorkshop()),"production_workshop",planRequest.getProductionWorkshop())
+                        eq(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()), "production_plan_number", planRequest.getProductionPlanNumber())
+                        .eq(StringUtils.isNotEmpty(planRequest.getPigBatch()), "pig_batch", planRequest.getPigBatch())
+                        .eq(StringUtils.isNotEmpty(planRequest.getProductionDate()), "production_date", planRequest.getProductionDate())
+                        .eq(StringUtils.isNotEmpty(planRequest.getProductionType()), "production_type", planRequest.getProductionType())
+                        .eq(StringUtils.isNotEmpty(planRequest.getProductionWorkshop()), "productionorkshop", planRequest.getProductionWorkshop())
                 )
         );
     }
@@ -134,11 +155,17 @@ public class ProductionRegularController {
 
         QueryWrapper<ProductionRegular> wrapper = new QueryWrapper<ProductionRegular>()
                 .eq("org_id", tokenService.getLoginOrgId(request));
-        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
-        .eq(StringUtils.isNotEmpty(planRequest.getPigBatch()),"pig_batch",planRequest.getPigBatch());
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()), "production_plan_number", planRequest.getProductionPlanNumber())
+                .eq(StringUtils.isNotEmpty(planRequest.getProductionDate()), "production_date", planRequest.getProductionDate())
+                .eq(StringUtils.isNotEmpty(planRequest.getGradel()), "grade", planRequest.getGradel())
+                .eq(StringUtils.isNotEmpty(planRequest.getVariety()), "variety", planRequest.getVariety())
+                .eq(StringUtils.isNotEmpty(planRequest.getAnimalIdentification()), "animal_identification", planRequest.getAnimalIdentification())
+                .eq(StringUtils.isNotEmpty(planRequest.getProcessingType()), "processing_type", planRequest.getProcessingType())
+                .eq(StringUtils.isNotEmpty(planRequest.getProductionType()), "production_type", planRequest.getProductionType())
+        ;
         return success(productionRegularService.page(
-                new Page<ProductionRegular>(planRequest.getPageNum(), planRequest.getPageSize()),wrapper
-               )
+                new Page<ProductionRegular>(planRequest.getPageNum(), planRequest.getPageSize()), wrapper
+                )
         );
     }
 
@@ -148,4 +175,64 @@ public class ProductionRegularController {
         String id = paramsMap.get("id");
         return success(productionRegularService.getById(id));
     }
+
+    @ApiOperation("获取今日白条精修")
+    @PostMapping("/listWhite")
+    public AjaxResult listWhite(@RequestBody ProductionRegularPlanRequest planRequest,
+                                HttpServletRequest request
+    ) {
+        long planCount = planService.count(new QueryWrapper<ProductionPlan>()
+                .eq(StringUtils.isNotEmpty(planRequest.getProductionType()), "production_type", planRequest.getProductionType())
+                .eq("org_id", tokenService.getLoginOrgId(request)));
+        if (planCount < 1) {
+            return error("今日暂无生产计划");
+        }
+
+        QueryWrapper<ProductionRegular> wrapper = new QueryWrapper<ProductionRegular>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.eq(StringUtils.isNotEmpty(planRequest.getWhiteStripDate()), "production_date", planRequest.getWhiteStripDate())
+                .eq(StringUtils.isNotEmpty(planRequest.getWhiteStripNum()), "white_strip_number", planRequest.getWhiteStripNum())
+                .eq(StringUtils.isNotEmpty(planRequest.getProcessingType()), "processing_type", planRequest.getProcessingType())
+                .ge(StringUtils.isNotEmpty(planRequest.getStartDate()), "production_date", planRequest.getStartDate())
+                .le(StringUtils.isNotEmpty(planRequest.getEndDate()), "production_date", planRequest.getEndDate())
+                .eq(StringUtils.isNotEmpty(planRequest.getStartGrade()), "grade", planRequest.getStartGrade())
+                .eq(StringUtils.isNotEmpty(planRequest.getEndGrade()), "grade", planRequest.getEndGrade())
+                .eq(StringUtils.isNotEmpty(planRequest.getVariety()), "variety", planRequest.getVariety())
+                .eq(StringUtils.isNotEmpty(planRequest.getAnimalIdentification()), "animal_identification", planRequest.getAnimalIdentification())
+                .ge(StringUtils.isNotEmpty(planRequest.getStartWhiteStripNum()), "white_strip_number", planRequest.getStartWhiteStripNum())
+                .le(StringUtils.isNotEmpty(planRequest.getEndWhiteStripNum()), "white_strip_number", planRequest.getEndWhiteStripNum())
+        ;
+
+        ProductionRegular one = productionRegularService.getOne(wrapper);
+        if (ObjectUtils.isEmpty(one)) {
+            return error("今日暂无该白条编号");
+        }
+        return success(one);
+    }
+    @ApiOperation("获取今日白条分割")
+    @PostMapping("/listWhiteFenGe")
+    public AjaxResult listWhiteFenGe(@RequestBody ProductionRegularPlanRequest planRequest,
+                                HttpServletRequest request
+    ) {
+
+
+        QueryWrapper<ProductionRegular> wrapper = new QueryWrapper<ProductionRegular>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.
+             eq(StringUtils.isNotEmpty(planRequest.getProcessingType()), "processing_type", planRequest.getProcessingType())
+             .eq("is_fenge", 0)
+                .ge(StringUtils.isNotEmpty(planRequest.getStartDate()), "production_date", planRequest.getStartDate())
+                .le(StringUtils.isNotEmpty(planRequest.getEndDate()), "production_date", planRequest.getEndDate())
+                .eq(StringUtils.isNotEmpty(planRequest.getStartGrade()), "grade", planRequest.getStartGrade())
+                .eq(StringUtils.isNotEmpty(planRequest.getEndGrade()), "grade", planRequest.getEndGrade())
+                .eq(StringUtils.isNotEmpty(planRequest.getVariety()), "variety", planRequest.getVariety())
+                .eq(StringUtils.isNotEmpty(planRequest.getAnimalIdentification()), "animal_identification", planRequest.getAnimalIdentification())
+                .ge(StringUtils.isNotEmpty(planRequest.getStartWhiteStripNum()), "white_strip_number", planRequest.getStartWhiteStripNum())
+                .le(StringUtils.isNotEmpty(planRequest.getEndWhiteStripNum()), "white_strip_number", planRequest.getEndWhiteStripNum())
+                .ge(StringUtils.isNotEmpty(planRequest.getQualityInspectionResult()), "quality_inspection_result", planRequest.getQualityInspectionResult())
+        ;
+
+
+        return success( productionRegularService.list(wrapper));
+    }
 }

+ 9 - 9
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionShipmentNotificationController.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.web.base.domain.ProductionShipmentNotification;
+import com.ruoyi.web.base.domain.param.ProductionRegularPlanRequest;
 import com.ruoyi.web.base.service.IProductionShipmentNotificationService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,7 +26,7 @@ public class ProductionShipmentNotificationController {
     @Autowired
     private TokenService tokenService;
 
-    @ApiOperation("生产发货通知添加")
+    @ApiOperation("货通知添加")
     @PostMapping("/add")
     public AjaxResult add(@RequestBody ProductionShipmentNotification notification, HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
@@ -35,7 +36,7 @@ public class ProductionShipmentNotificationController {
         return success(productionShipmentNotificationService.save(notification));
     }
 
-    @ApiOperation("生产发货通知修改")
+    @ApiOperation("货通知修改")
     @PostMapping("/edit")
     public AjaxResult edit(@RequestBody ProductionShipmentNotification notification, HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
@@ -44,7 +45,7 @@ public class ProductionShipmentNotificationController {
         return success(productionShipmentNotificationService.updateById(notification));
     }
 
-    @ApiOperation("生产发货通知删除")
+    @ApiOperation("货通知删除")
     @PostMapping("/delete")
     public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
         String ids = paramsMap.get("ids");
@@ -54,7 +55,7 @@ public class ProductionShipmentNotificationController {
         return success();
     }
 
-    @ApiOperation("生产发货通知列表")
+    @ApiOperation("货通知列表")
     @PostMapping("/list")
     public AjaxResult listAll(HttpServletRequest request) {
         return success(productionShipmentNotificationService.list(
@@ -63,21 +64,20 @@ public class ProductionShipmentNotificationController {
         ));
     }
 
-    @ApiOperation("生产发货通知分页")
+    @ApiOperation("货通知分页")
     @GetMapping("/page")
     public AjaxResult page(
-            @RequestParam("pageNum") Integer pageNum,
-            @RequestParam("pageSize") Integer pageSize,
+            @RequestBody ProductionRegularPlanRequest planRequest,
             HttpServletRequest request
     ) {
         return success(productionShipmentNotificationService.page(
-                new Page<ProductionShipmentNotification>(pageNum, pageSize),
+                new Page<ProductionShipmentNotification>(planRequest.getPageNum(), planRequest.getPageSize()),
                 new QueryWrapper<ProductionShipmentNotification>()
                         .eq("org_id", tokenService.getLoginOrgId(request))
         ));
     }
 
-    @ApiOperation("生产发货通知详情")
+    @ApiOperation("货通知详情")
     @PostMapping("/listById")
     public AjaxResult listById(@RequestBody Map<String, String> paramsMap) {
         String id = paramsMap.get("id");

+ 8 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionSlaughterController.java

@@ -5,12 +5,14 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.framework.web.service.TokenService;
 import com.ruoyi.web.base.domain.ProductionSlaughter;
+import com.ruoyi.web.base.domain.param.WiteStripRequest;
 import com.ruoyi.web.base.service.IProductionSlaughterService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
 import java.util.Map;
 
 import static com.ruoyi.common.core.domain.AjaxResult.success;
@@ -32,6 +34,8 @@ public class ProductionSlaughterController {
 
         slaughter.setOrgId(loginOrgId);
         slaughter.setCreateBy(getUsername());
+        slaughter.setCreateTime(new Date());
+
         return success(productionSlaughterService.save(slaughter));
     }
 
@@ -40,6 +44,7 @@ public class ProductionSlaughterController {
     public AjaxResult edit(@RequestBody ProductionSlaughter slaughter, HttpServletRequest request) throws Exception {
         String loginOrgId = tokenService.getLoginOrgId(request);
         slaughter.setUpdateBy(getUsername());
+        slaughter.setUpdateTime(new Date());
         return success(productionSlaughterService.updateById(slaughter));
     }
 
@@ -63,14 +68,13 @@ public class ProductionSlaughterController {
     }
 
     @ApiOperation("生产屠宰分页")
-    @GetMapping("/page")
+    @PostMapping("/page")
     public AjaxResult page(
-            @RequestParam("pageNum") Integer pageNum,
-            @RequestParam("pageSize") Integer pageSize,
+            @RequestBody WiteStripRequest planRequest,
             HttpServletRequest request
     ) {
         return success(productionSlaughterService.page(
-                new Page<ProductionSlaughter>(pageNum, pageSize),
+                new Page<ProductionSlaughter>(planRequest.getPageNum(), planRequest.getPageSize()),
                 new QueryWrapper<ProductionSlaughter>()
                         .eq("org_id", tokenService.getLoginOrgId(request))
         ));

+ 155 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionSlaughterGoodsController.java

@@ -0,0 +1,155 @@
+package com.ruoyi.web.base.controller;
+
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProductionProduct;
+import com.ruoyi.web.base.domain.ProductionSlaughter;
+import com.ruoyi.web.base.domain.ProductionSlaughterGoods;
+import com.ruoyi.web.base.domain.param.ProductionSlaughterGoodsRequest;
+import com.ruoyi.web.base.service.IProductionSlaughterGoodsService;
+import com.ruoyi.web.base.service.IProductionSlaughterGoodsService;
+import com.ruoyi.web.base.service.IProductionSlaughterService;
+import com.ruoyi.web.base.util.NumUtils;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+import static com.ruoyi.web.base.util.NumUtils.generateString;
+import static com.ruoyi.web.base.util.NumUtils.substringToInt;
+
+/**
+ * <p>
+ * 代宰信息表,存储代宰相关的详细信息 前端控制器
+ * </p>
+ *
+ * @author author
+ * @since 2026-03-31
+ */
+@RestController
+@RequestMapping("/production-slaughter-goods")
+public class ProductionSlaughterGoodsController {
+
+    @Autowired
+    private IProductionSlaughterService slaughterService;
+    @Autowired
+    private IProductionSlaughterGoodsService goodsService;
+    @Autowired
+    private TokenService tokenService;
+
+
+
+    @ApiOperation("生产计划单添加")
+    @PostMapping("/add")
+    @Transactional
+    public AjaxResult add(@RequestBody ProductionSlaughterGoods productionSlaughterGoods, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+
+        String username = getUsername();
+        productionSlaughterGoods.setOrgId(loginOrgId);
+        productionSlaughterGoods.setCreateBy(username);
+        productionSlaughterGoods.setJingZhong(productionSlaughterGoods.getDzcWeight());
+
+
+        if (goodsService.count(
+                new QueryWrapper<ProductionSlaughterGoods>()
+                        .eq("org_id", loginOrgId)
+                        .eq("document_number", productionSlaughterGoods.getDocumentNumber())
+                        .eq("white_strip_number", productionSlaughterGoods.getWhiteStripNumber())
+        ) > 0) {
+            throw new Exception("该白条已存在");
+        }
+
+        ProductionSlaughter productionSlaughter = slaughterService.getOne(new QueryWrapper<ProductionSlaughter>().eq("document_number", productionSlaughterGoods.getDocumentNumber()));
+        productionSlaughter.setCreateTime(new Date());
+        productionSlaughter.setActualSlaughterQuantity(
+                NumUtils.addStringToDouble(productionSlaughter.getActualSlaughterQuantity(),"0.5"));
+
+        productionSlaughter.setActualSlaughterAmount(
+                NumUtils.addStringToDouble( productionSlaughter.getActualSlaughterAmount(),
+      String.valueOf( 0.5 *Double.parseDouble(productionSlaughter.getUnitPrice())) )
+                );
+        productionSlaughter.setUpdateTime(new Date());
+        slaughterService.updateById(productionSlaughter);
+
+        return success(goodsService.save(productionSlaughterGoods));
+    }
+
+    @ApiOperation("生产计划单修改")
+    @PostMapping("/edit")
+    @Transactional
+    public AjaxResult edit(@RequestBody ProductionSlaughterGoods productionSlaughterGoods, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+
+        String username = getUsername();
+        productionSlaughterGoods.setOrgId(loginOrgId);
+        productionSlaughterGoods.setCreateBy(username);
+
+        productionSlaughterGoods.setUpdateBy(username);
+        productionSlaughterGoods.setUpdateTime(new Date());
+        productionSlaughterGoods.setJingZhong(productionSlaughterGoods.getDzcWeight());
+        return success(goodsService.updateById(productionSlaughterGoods));
+    }
+
+    @ApiOperation("生产计划单删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String s : ids.split(",")) {
+            goodsService.removeById(s);
+        }
+        return success();
+    }
+
+    @ApiOperation("生产计划单列表")
+    @PostMapping("/list")
+    public AjaxResult listAll( HttpServletRequest request,
+                               @RequestBody Map<String,String> map ){
+
+        List<ProductionSlaughterGoods> org_id = goodsService.list(new QueryWrapper<ProductionSlaughterGoods>()
+                .eq("org_id", tokenService.getLoginOrgId(request)));
+
+
+        return success(org_id);
+    }
+
+    @ApiOperation("生产计划单分页")
+    @PostMapping("/page")
+    public AjaxResult page(
+            @RequestBody ProductionSlaughterGoodsRequest productionSlaughterGoodsParam, HttpServletRequest request) {
+
+
+        QueryWrapper<ProductionSlaughterGoods> wrapper = new QueryWrapper<ProductionSlaughterGoods>().eq("org_id", tokenService.getLoginOrgId(request));
+
+        Page<ProductionSlaughterGoods> org_id =
+                goodsService.page(new Page<ProductionSlaughterGoods>(productionSlaughterGoodsParam.getPageNum(), productionSlaughterGoodsParam.getPageSize()),wrapper);
+
+
+        return success(org_id);
+    }
+
+    @ApiOperation("生产计划单详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap){
+        String id = paramsMap.get("id");
+        ProductionSlaughterGoods byId = goodsService.getById(id);
+        return success(byId);
+    }
+
+}

+ 28 - 10
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripPreCoolingController.java

@@ -1,10 +1,16 @@
 package com.ruoyi.web.base.controller;
 
+import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProductionRecord;
 import com.ruoyi.web.base.domain.ProductionWhiteStripPreCooling;
+import com.ruoyi.web.base.domain.ProductionWhiteStripRefined;
+import com.ruoyi.web.base.domain.param.WiteStripRequest;
+import com.ruoyi.web.base.service.IProductionRecordService;
 import com.ruoyi.web.base.service.IProductionWhiteStripPreCoolingService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -24,6 +30,9 @@ public class ProductionWhiteStripPreCoolingController {
     private IProductionWhiteStripPreCoolingService productionWhiteStripPreCoolingService;
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private IProductionRecordService productionRecordService;
+
 
     @ApiOperation("白条预冷添加")
     @PostMapping("/add")
@@ -38,6 +47,9 @@ public class ProductionWhiteStripPreCoolingController {
         }
         preCooling.setOrgId(loginOrgId);
         preCooling.setCreateBy(getUsername());
+        ProductionRecord productionRecord = new ProductionRecord();
+        BeanUtil.copyProperties(preCooling,productionRecord);
+        productionRecordService.save(productionRecord);
         return success(productionWhiteStripPreCoolingService.save(preCooling));
     }
 
@@ -69,24 +81,30 @@ public class ProductionWhiteStripPreCoolingController {
 
     @ApiOperation("白条预冷列表")
     @PostMapping("/list")
-    public AjaxResult listAll(HttpServletRequest request) {
+    public AjaxResult listAll(   @RequestBody WiteStripRequest planRequest,
+                                 HttpServletRequest request) {
+        QueryWrapper<ProductionWhiteStripPreCooling> wrapper = new QueryWrapper<ProductionWhiteStripPreCooling>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
+
         return success(productionWhiteStripPreCoolingService.list(
-                new QueryWrapper<ProductionWhiteStripPreCooling>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
-        ));
+                wrapper));
     }
 
     @ApiOperation("白条预冷分页")
-    @GetMapping("/page")
+    @PostMapping("/page")
     public AjaxResult page(
-            @RequestParam("pageNum") Integer pageNum,
-            @RequestParam("pageSize") Integer pageSize,
+            @RequestBody WiteStripRequest planRequest,
             HttpServletRequest request
     ) {
+        QueryWrapper<ProductionWhiteStripPreCooling> wrapper = new QueryWrapper<ProductionWhiteStripPreCooling>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
         return success(productionWhiteStripPreCoolingService.page(
-                new Page<ProductionWhiteStripPreCooling>(pageNum, pageSize),
-                new QueryWrapper<ProductionWhiteStripPreCooling>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
+                new Page<ProductionWhiteStripPreCooling>(planRequest.getPageNum(), planRequest.getPageSize()),
+                wrapper
         ));
     }
 

+ 32 - 14
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripRefinedController.java

@@ -3,8 +3,12 @@ package com.ruoyi.web.base.controller;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProductionRegular;
 import com.ruoyi.web.base.domain.ProductionWhiteStripRefined;
+import com.ruoyi.web.base.domain.param.ProductionRegularPlanRequest;
+import com.ruoyi.web.base.domain.param.WiteStripRequest;
 import com.ruoyi.web.base.service.IProductionWhiteStripRefinedService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +29,9 @@ public class ProductionWhiteStripRefinedController {
     @Autowired
     private TokenService tokenService;
 
+
+
+
     @ApiOperation("白条精加工添加")
     @PostMapping("/add")
     public AjaxResult add(@RequestBody ProductionWhiteStripRefined refined, HttpServletRequest request) throws Exception {
@@ -32,7 +39,8 @@ public class ProductionWhiteStripRefinedController {
         if (productionWhiteStripRefinedService.count(
                 new QueryWrapper<ProductionWhiteStripRefined>()
                         .eq("org_id", loginOrgId)
-                        .eq("production_record_number", refined.getProductionRecordNumber())
+                        .eq("production_plan_number", refined.getProductionPlanNumber())
+                        .eq("white_strip_number", refined.getWhiteStripNumber())
         ) > 0) {
             throw new Exception("该精加工编号已存在");
         }
@@ -49,7 +57,9 @@ public class ProductionWhiteStripRefinedController {
                 new QueryWrapper<ProductionWhiteStripRefined>()
                         .ne("id", refined.getId())
                         .eq("org_id", loginOrgId)
-                        .eq("production_record_number", refined.getProductionRecordNumber())
+
+                        .eq("production_plan_number", refined.getProductionPlanNumber())
+                        .eq("white_strip_number", refined.getWhiteStripNumber())
         ) > 0) {
             throw new Exception("该精加工编号已存在");
         }
@@ -62,31 +72,39 @@ public class ProductionWhiteStripRefinedController {
     public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
         String ids = paramsMap.get("ids");
         for (String id : ids.split(",")) {
-            productionWhiteStripRefinedService.removeById(id);
-        }
-        return success();
+        productionWhiteStripRefinedService.removeById(id);
     }
+        return success();
+}
 
     @ApiOperation("白条精加工列表")
     @PostMapping("/list")
-    public AjaxResult listAll(HttpServletRequest request) {
+    public AjaxResult listAll(@RequestBody WiteStripRequest planRequest, HttpServletRequest request) {
+        QueryWrapper<ProductionWhiteStripRefined> wrapper = new QueryWrapper<ProductionWhiteStripRefined>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
         return success(productionWhiteStripRefinedService.list(
-                new QueryWrapper<ProductionWhiteStripRefined>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
+                wrapper
         ));
     }
 
+
+
     @ApiOperation("白条精加工分页")
-    @GetMapping("/page")
+    @PostMapping("/page")
     public AjaxResult page(
-            @RequestParam("pageNum") Integer pageNum,
-            @RequestParam("pageSize") Integer pageSize,
+            @RequestBody WiteStripRequest planRequest,
             HttpServletRequest request
+
     ) {
+        QueryWrapper<ProductionWhiteStripRefined> wrapper = new QueryWrapper<ProductionWhiteStripRefined>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
         return success(productionWhiteStripRefinedService.page(
-                new Page<ProductionWhiteStripRefined>(pageNum, pageSize),
-                new QueryWrapper<ProductionWhiteStripRefined>()
-                        .eq("org_id", tokenService.getLoginOrgId(request))
+                new Page<ProductionWhiteStripRefined>(planRequest.getPageNum(), planRequest.getPageSize()),
+                wrapper
         ));
     }
 

+ 114 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/controller/ProductionWhiteStripRequisitionController.java

@@ -1,10 +1,38 @@
 package com.ruoyi.web.base.controller;
 
 
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.service.TokenService;
+import com.ruoyi.web.base.domain.ProductionRecord;
+import com.ruoyi.web.base.domain.ProductionRegular;
+import com.ruoyi.web.base.domain.ProductionWhiteStripRequisition;
+import com.ruoyi.web.base.domain.param.AddProductionWhiteStripRequisition;
+import com.ruoyi.web.base.domain.param.WiteStripRequest;
+import com.ruoyi.web.base.service.IProductionRecordService;
+import com.ruoyi.web.base.service.IProductionRegularService;
+import com.ruoyi.web.base.service.IProductionWhiteStripRequisitionService;
+import com.ruoyi.web.base.service.IProductionWhiteStripRequisitionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 import org.springframework.web.bind.annotation.RestController;
 
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+import java.util.Map;
+
+import static com.ruoyi.common.core.domain.AjaxResult.success;
+import static com.ruoyi.common.utils.SecurityUtils.getUsername;
+
 /**
  * <p>
  * 分割生产白条领料表,存储分割生产白条领料的相关数据 前端控制器
@@ -15,6 +43,92 @@ import org.springframework.web.bind.annotation.RestController;
  */
 @RestController
 @RequestMapping("/production-white-strip-requisition")
+@Api("分割白条")
 public class ProductionWhiteStripRequisitionController {
 
+    @Autowired
+    private IProductionWhiteStripRequisitionService productionWhiteStripRequisitionService;
+    @Autowired
+    private TokenService tokenService;
+    @Autowired
+    private IProductionRegularService regularService;
+  
+
+
+    @ApiOperation("分割白条添加")
+    @PostMapping("/add")
+    public AjaxResult add(@RequestBody AddProductionWhiteStripRequisition productionWhiteStripRequisition, HttpServletRequest request) throws Exception {
+        String loginOrgId = tokenService.getLoginOrgId(request);
+        List<ProductionWhiteStripRequisition> goods = productionWhiteStripRequisition.getGoods();
+        for (ProductionWhiteStripRequisition good : goods) {
+            good.setOrgId(loginOrgId);
+            good.setCreateBy(getUsername());
+            good.setProductionPlanNum(productionWhiteStripRequisition.getProductionPlanNum());
+            ProductionRegular productionRegular = new ProductionRegular();
+            productionRegular.setIsFenge(1);
+            productionRegular.setId(good.getId());
+            regularService.updateById(productionRegular );
+        }
+        
+        return success(productionWhiteStripRequisitionService.saveBatch(productionWhiteStripRequisition.getGoods()));
+    }
+
+    @ApiOperation("分割白条修改")
+    @PostMapping("/edit")
+    public AjaxResult edit(@RequestBody AddProductionWhiteStripRequisition productionWhiteStripRequisition, HttpServletRequest request) throws Exception {
+  
+        
+        List<ProductionWhiteStripRequisition> goods = productionWhiteStripRequisition.getGoods();
+        for (ProductionWhiteStripRequisition good : goods) {
+            good.setUpdateBy(getUsername());
+            productionWhiteStripRequisitionService.updateById(good);
+        }
+        return success();
+    }
+
+    @ApiOperation("分割白条删除")
+    @PostMapping("/delete")
+    public AjaxResult delete(@RequestBody Map<String, String> paramsMap) {
+        String ids = paramsMap.get("ids");
+        for (String id : ids.split(",")) {
+            productionWhiteStripRequisitionService.removeById(id);
+        }
+        return success();
+    }
+
+    @ApiOperation("分割白条列表")
+    @PostMapping("/list")
+    public AjaxResult listAll(   @RequestBody WiteStripRequest planRequest,
+                                 HttpServletRequest request) {
+        QueryWrapper<ProductionWhiteStripRequisition> wrapper = new QueryWrapper<ProductionWhiteStripRequisition>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+//        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+//                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
+
+        return success(productionWhiteStripRequisitionService.list(
+                wrapper));
+    }
+
+    @ApiOperation("分割白条分页")
+    @PostMapping("/page")
+    public AjaxResult page(
+            @RequestBody WiteStripRequest planRequest,
+            HttpServletRequest request
+    ) {
+        QueryWrapper<ProductionWhiteStripRequisition> wrapper = new QueryWrapper<ProductionWhiteStripRequisition>()
+                .eq("org_id", tokenService.getLoginOrgId(request));
+//        wrapper.like(StringUtils.isNotEmpty(planRequest.getProductionPlanNumber()),"production_plan_number",planRequest.getProductionPlanNumber())
+//                .like(StringUtils.isNotEmpty(planRequest.getProductionRecordNumber()),"production_record_number",planRequest.getProductionRecordNumber());
+        return success(productionWhiteStripRequisitionService.page(
+                new Page<ProductionWhiteStripRequisition>(planRequest.getPageNum(), planRequest.getPageSize()),
+                wrapper
+        ));
+    }
+
+    @ApiOperation("分割白条详情")
+    @PostMapping("/listById")
+    public AjaxResult listById(@RequestBody Map<String, String> paramsMap) {
+        String id = paramsMap.get("id");
+        return success(productionWhiteStripRequisitionService.getById(id));
+    }
 }

+ 5 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/BaseLine.java

@@ -1,5 +1,6 @@
 package com.ruoyi.web.base.domain;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 
 import com.ruoyi.web.base.domain.base.Base;
@@ -9,6 +10,8 @@ import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
 
+import java.util.List;
+
 /**
  * <p>
  * 物流线
@@ -27,7 +30,6 @@ public class BaseLine extends Base {
     private static final long serialVersionUID = 1L;
 
 
-
     @ApiModelProperty(value = "序号")
     private String lineNum;
 
@@ -66,6 +68,8 @@ public class BaseLine extends Base {
 
     @ApiModelProperty(value = "状态")
     private Integer lineStatus;
+    @TableField(exist =  false)
+    private List<BaseMarket> goods;
 
 
 

+ 5 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionProduct.java

@@ -2,6 +2,8 @@ package com.ruoyi.web.base.domain;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.baomidou.mybatisplus.annotation.IdType;
+
+import java.sql.Date;
 import java.time.LocalDate;
 import com.baomidou.mybatisplus.annotation.TableId;
 import java.time.LocalDateTime;
@@ -9,6 +11,7 @@ import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.web.base.domain.base.Base;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
@@ -44,7 +47,8 @@ public class ProductionProduct  extends Base {
     private String productionWorkshop;
 
     @ApiModelProperty(value = "生产日期")
-    private LocalDate productionDate;
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    private Date productionDate;
 
     @ApiModelProperty(value = "生产计划单号")
     private String productionPlanNumber;

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionRecord.java

@@ -40,6 +40,7 @@ public class ProductionRecord  extends Base {
     @ApiModelProperty(value = "生产记录单日期")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date productionRecordDate;
+    private String productionRecordNumber;
 
     @ApiModelProperty(value = "至(日期范围结束)")
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")

+ 2 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionRegular.java

@@ -106,7 +106,8 @@ public class ProductionRegular  extends Base {
     @ApiModelProperty(value = "扣重比例")
     private String deductionRatio;
    @TableField(exist =  false)
-    private int productionStatus;
+    private int qualityInspectionResult;
+    private int isFenge;
 
 
 }

+ 1 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionSlaughter.java

@@ -58,7 +58,7 @@ public class ProductionSlaughter  extends Base {
     private Integer plannedSlaughterQuantity;
 
     @ApiModelProperty(value = "已代宰数量")
-    private Integer actualSlaughterQuantity;
+    private String actualSlaughterQuantity;
 
     @ApiModelProperty(value = "单价")
     private String unitPrice;

+ 81 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionSlaughterGoods.java

@@ -0,0 +1,81 @@
+package com.ruoyi.web.base.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.IdType;
+import java.time.LocalDate;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import java.io.Serializable;
+import java.util.Date;
+
+import com.ruoyi.web.base.domain.base.Base;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 代宰信息表,存储代宰相关的详细信息
+ * </p>
+ *
+ * @author author
+ * @since 2026-03-31
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("production_slaughter_goods")
+@ApiModel(value="ProductionSlaughterGoods对象", description="代宰信息表,存储代宰相关的详细信息")
+public class ProductionSlaughterGoods extends Base {
+
+    private static final long serialVersionUID = 1L;
+
+
+    @ApiModelProperty(value = "代宰日期")
+    private LocalDate slaughterAgencyDate;
+
+    @ApiModelProperty(value = "白条编号")
+    private String whiteStripNumber;
+
+    @ApiModelProperty(value = "单据编号")
+    private String documentNumber;
+
+    @ApiModelProperty(value = "产品")
+    private String product;
+
+    @ApiModelProperty(value = "待宰日期")
+    private String grade;
+
+    @ApiModelProperty(value = "供应商编号")
+    private String supplierNumber;
+
+    @ApiModelProperty(value = "供应商名称")
+    private String supplierName;
+
+    @ApiModelProperty(value = "电子秤重量")
+    private String dzcWeight;
+
+    @ApiModelProperty(value = "钩重")
+    private String hookWeight;
+
+    @ApiModelProperty(value = "扣重")
+    private String deductionRatio;
+
+    @ApiModelProperty(value = "净重")
+    private String jingZhong;
+
+    @ApiModelProperty(value = "客户名称")
+    private String customerName;
+
+    @ApiModelProperty(value = "编号")
+    private String customerNumber;
+
+    private Date jiLiangDate;
+
+
+
+}

+ 1 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripPreCooling.java

@@ -119,6 +119,7 @@ public class ProductionWhiteStripPreCooling  extends Base {
 
     @ApiModelProperty(value = "扣重比例")
     private String deductionRatio;
+    private String goodsNum;
 
 
 

+ 3 - 1
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripRefined.java

@@ -119,6 +119,8 @@ public class ProductionWhiteStripRefined  extends Base {
     private String preDeductionWeight;
 
     @ApiModelProperty(value = "扣重比例")
-    private BigDecimal deductionRatio;
+    private String deductionRatio;
+    private String coatColor;
+    private String goodsNum;
 
 }

+ 5 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/ProductionWhiteStripRequisition.java

@@ -8,6 +8,7 @@ import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.FieldFill;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+import java.util.Date;
 
 import com.ruoyi.web.base.domain.base.Base;
 import io.swagger.annotations.ApiModel;
@@ -34,10 +35,12 @@ public class ProductionWhiteStripRequisition  extends Base {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty(value = "生产记录单日期")
-    private LocalDate productionRecordDate;
+    private Date productionRecordDate;
 
     @ApiModelProperty(value = "生产计划单日期")
-    private LocalDate productionPlanDate;
+    private Date productionPlanDate;
+    @ApiModelProperty(value = "生产计划单号")
+    private String productionPlanNum;
 
     @ApiModelProperty(value = "生产类型")
     private String productionType;

+ 13 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/AddProductionWhiteStripRequisition.java

@@ -0,0 +1,13 @@
+package com.ruoyi.web.base.domain.param;
+
+import com.ruoyi.web.base.domain.ProductionWhiteStripRequisition;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AddProductionWhiteStripRequisition{
+
+    private String productionPlanNum;
+    private List<ProductionWhiteStripRequisition> goods;
+}

+ 10 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/LineRequest.java

@@ -0,0 +1,10 @@
+package com.ruoyi.web.base.domain.param;
+
+import lombok.Data;
+
+@Data
+public class LineRequest extends  PageRequest{
+
+
+
+}

+ 23 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionProductRequest.java

@@ -0,0 +1,23 @@
+package com.ruoyi.web.base.domain.param;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.sql.Date;
+
+@Data
+public class ProductionProductRequest extends  PageRequest{
+
+
+    private String productionDate;
+
+    @ApiModelProperty(value = "生产记录单号")
+    private String productionRecordNumber;
+
+    @ApiModelProperty(value = "生产类型")
+    private String productionType;
+
+    @ApiModelProperty(value = "生产计划单号")
+    private String productionPlanNumber;
+
+}

+ 18 - 4
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionRegularPlanRequest.java

@@ -5,14 +5,28 @@ import lombok.Data;
 @Data
 public class ProductionRegularPlanRequest extends  PageRequest{
 
-    private  String startTime;
-    private  String endTime;
+    private  String  productionWorkshop;
     private  String productionPlanNumber;
     private  String pigBatch;
-
     private  String productionDate;
+
+
+    private  String   gradel;
+
+    private  String processingType;
+    private  String startDate;
+    private  String endDate;
     private  String productionType;
-    private  String  productionWorkshop;
+    private  String  whiteStripDate;
+    private  String   whiteStripNum;
+    private  String   variety;
+    private  String   animalIdentification;
+    private  String   startGrade;
+    private  String   endGrade;
+    private  String   startWhiteStripNum;
+    private  String   endWhiteStripNum;
+    private  String   qualityInspectionResult;
+
 
 
 }

+ 10 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/ProductionSlaughterGoodsRequest.java

@@ -0,0 +1,10 @@
+package com.ruoyi.web.base.domain.param;
+
+import lombok.Data;
+
+@Data
+public class ProductionSlaughterGoodsRequest extends  PageRequest{
+
+
+
+}

+ 12 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/domain/param/WiteStripRequest.java

@@ -0,0 +1,12 @@
+package com.ruoyi.web.base.domain.param;
+
+import lombok.Data;
+
+@Data
+public class WiteStripRequest extends  PageRequest{
+
+    private  String productionRecordNumber;
+    private  String productionPlanNumber;
+
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/mapper/ProductionSlaughterGoodsMapper.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.mapper;
+
+import com.ruoyi.web.base.domain.ProductionSlaughterGoods;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 代宰信息表,存储代宰相关的详细信息 Mapper 接口
+ * </p>
+ *
+ * @author author
+ * @since 2026-03-31
+ */
+public interface ProductionSlaughterGoodsMapper extends BaseMapper<ProductionSlaughterGoods> {
+
+}

+ 16 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/IProductionSlaughterGoodsService.java

@@ -0,0 +1,16 @@
+package com.ruoyi.web.base.service;
+
+import com.ruoyi.web.base.domain.ProductionSlaughterGoods;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 代宰信息表,存储代宰相关的详细信息 服务类
+ * </p>
+ *
+ * @author author
+ * @since 2026-03-31
+ */
+public interface IProductionSlaughterGoodsService extends IService<ProductionSlaughterGoods> {
+
+}

+ 20 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/service/impl/ProductionSlaughterGoodsServiceImpl.java

@@ -0,0 +1,20 @@
+package com.ruoyi.web.base.service.impl;
+
+import com.ruoyi.web.base.domain.ProductionSlaughterGoods;
+import com.ruoyi.web.base.mapper.ProductionSlaughterGoodsMapper;
+import com.ruoyi.web.base.service.IProductionSlaughterGoodsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 代宰信息表,存储代宰相关的详细信息 服务实现类
+ * </p>
+ *
+ * @author author
+ * @since 2026-03-31
+ */
+@Service
+public class ProductionSlaughterGoodsServiceImpl extends ServiceImpl<ProductionSlaughterGoodsMapper, ProductionSlaughterGoods> implements IProductionSlaughterGoodsService {
+
+}

+ 17 - 0
ruoyi-admin/src/main/java/com/ruoyi/web/base/util/NumUtils.java

@@ -1,5 +1,7 @@
 package com.ruoyi.web.base.util;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 import java.time.LocalDate;
 import java.time.format.DateTimeFormatter;
 
@@ -78,5 +80,20 @@ public  class  NumUtils {
             throw new IllegalArgumentException("后三位'" + lastThree + "'不是有效的数字");
         }
     }
+    public static String addStringToDouble(String num1,String num2) {
+        // 将字符串转换为 BigDecimal(避免浮点数精度问题)
+        BigDecimal a = new BigDecimal(num1);
+        BigDecimal b = new BigDecimal(num2);
+
+        // 执行加法运算
+        BigDecimal sum = a.add(b);
+
+        // 设置保留两位小数,使用四舍五入模式
+        BigDecimal roundedSum = sum.setScale(2, RoundingMode.HALF_UP);
+
+        // 返回字符串形式(确保格式为两位小数,如 "5.00")
+        return roundedSum.toString();
+
+    }
 
 }

+ 31 - 0
ruoyi-admin/src/main/resources/mapper/ProductionSlaughterGoodsMapper.xml

@@ -0,0 +1,31 @@
+<?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.web.base.mapper.ProductionSlaughterGoodsMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="BaseResultMap" type="com.ruoyi.web.base.domain.ProductionSlaughterGoods">
+        <id column="id" property="id" />
+        <result column="slaughter_agency_date" property="slaughterAgencyDate" />
+        <result column="white_strip_number" property="whiteStripNumber" />
+        <result column="document_number" property="documentNumber" />
+        <result column="product" property="product" />
+        <result column="grade" property="grade" />
+        <result column="supplier_number" property="supplierNumber" />
+        <result column="supplier_name" property="supplierName" />
+        <result column="dzc_weight" property="dzcWeight" />
+        <result column="hook_weight" property="hookWeight" />
+        <result column="deduction_ratio" property="deductionRatio" />
+        <result column="jing_zhong" property="jingZhong" />
+        <result column="customer_name" property="customerName" />
+        <result column="customer_number" property="customerNumber" />
+        <result column="ji_liang_date" property="jiLiangDate" />
+        <result column="remark" property="remark" />
+        <result column="del_flag" property="delFlag" />
+        <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="org_id" property="orgId" />
+    </resultMap>
+
+</mapper>