Quellcode durchsuchen

Merge branch '250109-回收单提交后打印,首序外协一箱多批,快速报工选择设备等'

ezhizao_zx vor 5 Monaten
Ursprung
Commit
d11c1061b8
18 geänderte Dateien mit 1284 neuen und 10 gelöschten Zeilen
  1. 46 1
      src/main/java/cn/ezhizao/project/business/controller/BizOutsourcedOrderController.java
  2. 37 6
      src/main/java/cn/ezhizao/project/business/controller/BizReturnReceiptController.java
  3. 58 0
      src/main/java/cn/ezhizao/project/business/domain/BizCarrierCategory.java
  4. 213 0
      src/main/java/cn/ezhizao/project/business/domain/BizDaywork.java
  5. 279 0
      src/main/java/cn/ezhizao/project/business/domain/BizDayworkItem.java
  6. 3 0
      src/main/java/cn/ezhizao/project/business/domain/BizOutsourcedOrderDetail.java
  7. 2 0
      src/main/java/cn/ezhizao/project/business/domain/BizReturnReceipt.java
  8. 24 0
      src/main/java/cn/ezhizao/project/business/domain/CarrierCategoryOptions.java
  9. 21 0
      src/main/java/cn/ezhizao/project/business/mapper/BizCarrierCategoryMapper.java
  10. 79 0
      src/main/java/cn/ezhizao/project/business/mapper/BizDayworkItemMapper.java
  11. 55 0
      src/main/java/cn/ezhizao/project/business/mapper/BizDayworkMapper.java
  12. 37 0
      src/main/java/cn/ezhizao/project/business/service/IBizCarrierCategoryService.java
  13. 69 0
      src/main/java/cn/ezhizao/project/business/service/IBizDayworkItemService.java
  14. 51 0
      src/main/java/cn/ezhizao/project/business/service/IBizDayworkService.java
  15. 86 0
      src/main/java/cn/ezhizao/project/business/service/impl/BizCarrierCategoryServiceImpl.java
  16. 142 0
      src/main/java/cn/ezhizao/project/business/service/impl/BizDayworkItemServiceImpl.java
  17. 79 0
      src/main/java/cn/ezhizao/project/business/service/impl/BizDayworkServiceImpl.java
  18. 3 3
      src/main/resources/mybatis/business/BizCarrierMapper.xml

+ 46 - 1
src/main/java/cn/ezhizao/project/business/controller/BizOutsourcedOrderController.java

@@ -49,6 +49,12 @@ public class BizOutsourcedOrderController extends BaseController
     @Resource
     private IBizFurnaceNoInfoService bizFurnaceNoInfoService;
     @Resource
+    private IBizCarrierCategoryService bizCarrierCategoryService;
+    @Resource
+private IBizDayworkService bizDayworkService;
+    @Resource
+    private IBizDayworkItemService bizDayworkItemService;
+    @Resource
     HttpServletRequest request;
     /**
      * 查询外协单主
@@ -161,16 +167,55 @@ public class BizOutsourcedOrderController extends BaseController
     public TableDataInfo carrierForOutsource(BizCarrier carrier) {
 
         carrier.setNotInUse(1);
-        carrier.setIsAllowMore(0);
+//        carrier.setIsAllowMore(0);
         List<BizCarrier> list = bizCarrierService.getListFromOutsource(carrier);
         return getDataTable(list);
     }
     @Log(title = "外协保存箱号", businessType = BusinessType.EXPORT)
     @PostMapping("/saveCarriers")
     public AjaxResult saveCarriers(@RequestBody BizOutsourcedOrderDetail bizOutsourcedOrderDetail) {
+        // 保存时校验一箱多批。
         BizOutsourcedOrderDetail detail = bizOutsourcedOrderDetailService.getById(bizOutsourcedOrderDetail.getDetailId());
         detail.setNewCarrierCount(bizOutsourcedOrderDetail.getCarrierIds().size());
         List<BizCarrier> carriers = bizCarrierService.query().in("id", bizOutsourcedOrderDetail.getCarrierIds()).list();
+        // 获取箱类型盘点是否有一箱多批的箱子
+        List<BizCarrierCategory> bizCarrierCategories = bizCarrierCategoryService.query().in( "id", carriers.isEmpty() ? Collections.singletonList(0L): carriers.stream().map(BizCarrier::getCategoryId).collect(Collectors.toList())).list();
+        if (bizCarrierCategories.stream().anyMatch(v -> v.getIsAllowMore().equals(1)) && bizCarrierCategories.stream().anyMatch(v -> v.getIsAllowMore().equals(0))) {
+            return AjaxResult.error("周转箱既有铁箱又有蓝箱,请选择正确载具。");
+        }
+
+        // 判断箱子类型,假设是可以装多批,且箱子有多个 报错
+        if (bizCarrierCategories.stream().allMatch(v -> v.getIsAllowMore().equals(1)) && carriers.size() > 1) {
+            return AjaxResult.error("该批次关联多个铁箱,请选择正确的载具。");
+        }
+        // 获取这些箱对应的所有批次
+        List<BizDayworkCarrier> carrierDaywork = bizDayworkCarrierService.query().eq("is_changed", 0).eq("process_inspection_id", 0L).in("carrier_id",carriers.isEmpty() ? Collections.singletonList(0L) : carriers.stream().map(BizCarrier::getId).collect(Collectors.toList())).list();
+        // 获取所有批次的报工状态
+        List<BizDaywork> bizDayworks = bizDayworkService.query().in("id",carrierDaywork.isEmpty() ? Collections.singletonList(0L) : carrierDaywork.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
+        List<BizDayworkItem> bizDayworkItems = bizDayworkItemService.query().in("daywork_id",bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).list();
+        // 判断箱子类型,假设是不可装多批则只能有一个批次,假设有多个 报错
+        if (bizCarrierCategories.stream().allMatch(v -> v.getIsAllowMore().equals(0)) && bizDayworks.size() > 1) {
+            return AjaxResult.error("存在蓝箱关联多个批次,请选择正确箱号");
+        }
+        // 获取批次绑定的外协单工序和批号
+//        BizOutsourcedOrder order = bizOutsourcedOrderService.getById(bizOutsourcedOrderDetail.getMasterId());
+        List<BizOutsourcedOrderDetail> allDetail = bizOutsourcedOrderDetailService.query().eq("master_id", bizOutsourcedOrderDetail.getMasterId()).in("daywork_id", bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).list();
+        List<BizOutsourcedOrderDetailProcess> processes = bizOutsourcedOrderDetailProcessService.query().eq("master_id", bizOutsourcedOrderDetail.getMasterId()).list();
+        allDetail.add(detail);
+        allDetail.forEach(l -> {
+            l.setProcesses(processes.stream().filter(v -> v.getDetailId().equals(l.getId())).collect(Collectors.toList()));
+        });
+        List<BizReturnReceiptDetail> bizReturnReceiptDetails = bizReturnReceiptDetailService.query().in("outsource_detail_id", allDetail.isEmpty() ? Collections.singletonList(0L) : allDetail.stream().map(BizOutsourcedOrderDetail::getId).collect(Collectors.toList())).list();
+        if (bizDayworks.stream().anyMatch(t -> allDetail.stream().noneMatch(v -> v.getDayworkId().equals(t.getId())))) {
+            return error("当前载具绑定批次不在当前外协单中,请重新选择");
+        }
+        if (bizReturnReceiptDetails.stream().anyMatch(v -> bizDayworks.stream().anyMatch(t -> t.getId().equals(v.getDayworkId())))) {
+            return error("当前载具绑定批次已收回,请重新选择");
+        }
+        if(allDetail.stream().anyMatch(v -> !allDetail.get(0).getProductionPlanDetailId().equals(v.getProductionPlanDetailId()) || allDetail.get(0).getProcesses().stream().anyMatch(t -> v.getProcesses().stream().noneMatch(e -> e.getTechnologicalProcessDetailId().equals(t.getTechnologicalProcessDetailId()))) || v.getProcesses().stream().anyMatch(t -> allDetail.get(0).getProcesses().stream().noneMatch(e -> t.getTechnologicalProcessDetailId().equals(e.getTechnologicalProcessDetailId()))))) {
+            return error("当前载具已绑定其他计划单/工序,请重新选择");
+        }
+
         detail.setNewCarrier(carriers.stream().map(v -> v.getId() + "|" + v.getCode()).collect(Collectors.joining(",")));
         detail.setNewCarrierName(carriers.stream().map(BizCarrier::getCode).collect(Collectors.joining(",")));
         bizOutsourcedOrderDetailService.updateById(detail);

+ 37 - 6
src/main/java/cn/ezhizao/project/business/controller/BizReturnReceiptController.java

@@ -50,6 +50,12 @@ public class BizReturnReceiptController extends BaseController {
     @Resource
     private IBizSupplierService bizSupplierService;
     @Resource
+    private IBizCarrierService bizCarrierService;
+    @Resource
+    private IBizCarrierCategoryService bizCarrierCategoryService;
+    @Resource
+    private IBizDayworkService bizDayworkService;
+    @Resource
     private RedisCache redisCache;
     @Resource
     HttpServletRequest request;
@@ -123,6 +129,7 @@ public class BizReturnReceiptController extends BaseController {
         bizReturnReceipt.setDetails(details);
         bizReturnReceiptService.exportTemplateProvinceAreaData(response, bizReturnReceipt);
     }
+
     @Log(title = "修改外协收回单提交状态", businessType = BusinessType.UPDATE)
     @PutMapping("/updateReceiptSubmitStatus")
     public AjaxResult updateReceiptSubmitStatus(@RequestBody BizReturnReceipt bizReturnReceipt) {
@@ -168,14 +175,14 @@ public class BizReturnReceiptController extends BaseController {
                 }
             } else {
                 codeValue = previous;
-                String codeYear=codeValue.substring(3, 5);//取出当前外协单号年份
+                String codeYear = codeValue.substring(3, 5);//取出当前外协单号年份
                 //如果年份一致表示是当前年的发出单,如果不一致则表示已经进入了新的一年则重置发出单号
-                if(codeYear.equals(formattedDate)){
+                if (codeYear.equals(formattedDate)) {
                     int lastFourDigits = Integer.parseInt(codeValue.substring(5, 10));
                     lastFourDigits += 1; // 加1
                     codeValue = codeValue.substring(0, 5) + String.format("%05d", lastFourDigits);
-                    previous=codeValue;
-                }else{
+                    previous = codeValue;
+                } else {
                     previous = ("SHD" + formattedDate + "00001");
                 }
             }
@@ -441,7 +448,7 @@ public class BizReturnReceiptController extends BaseController {
         List<List<BizReturnReceiptDetail>> list = new ArrayList<>();
 
         // 使用 for-each 循环遍历 groupedByProductDescription
-        for ( Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByProductDescription.entrySet()) {
+        for (Map.Entry<String, List<BizReturnReceiptDetail>> entry : groupedByProductDescription.entrySet()) {
             List<BizReturnReceiptDetail> details = entry.getValue(); // 获取对应的 List,即 Map 的值
             // 用于临时存储每组数据的列表
             List<BizReturnReceiptDetail> group = new ArrayList<>();
@@ -476,7 +483,6 @@ public class BizReturnReceiptController extends BaseController {
             }
 
 
-
         }
 //         2024-11-22注释  修改为同发出单一致的逻辑
 //        //查询外协厂code
@@ -605,6 +611,31 @@ public class BizReturnReceiptController extends BaseController {
         }
     }
 
+    @Log(title = "判断是否一箱多批", businessType = BusinessType.SELECT)
+    @PostMapping("/checkAllowMore")
+    public AjaxResult checkAllowMore(@RequestBody List<BizReturnReceiptDetail> details) {
+        // 获取所有箱
+        List<String> carrierCodes = new ArrayList<>();
+        details.forEach(l -> {
+            carrierCodes.addAll(Arrays.stream(l.getNewCarrier().split(",")).collect(Collectors.toList()));
+        });
+        List<BizCarrier> carriers = bizCarrierService.query().in("code", carrierCodes).list();
+        List<BizCarrierCategory> bizCarrierCategories = bizCarrierCategoryService.query().in("id", carriers.isEmpty() ? Collections.singletonList(0L) : carriers.stream().map(BizCarrier::getCategoryId).collect(Collectors.toList())).list();
+        // 没有一箱多批的箱子
+        if (bizCarrierCategories.stream().noneMatch(v -> v.getIsAllowMore().equals(1))) {
+            return success(true);
+        }
+        // 假设有一箱多批的箱子获取该箱子的所有报工
+        List<BizDayworkCarrier> bizDayworkCarriers = bizDayworkCarrierService.query().in("carrier_id", carriers.stream().filter(e -> bizCarrierCategories.stream().filter(v -> v.getIsAllowMore().equals(1)).anyMatch(v -> v.getId().equals(e.getCategoryId()))).map(BizCarrier::getId).collect(Collectors.toList())).eq("is_changed", 0).list();
+        List<BizDayworkCarrier> unreturn = bizDayworkCarriers.stream().filter(v -> details.stream().noneMatch(t -> t.getDayworkId().equals(v.getDayworkId()))).collect(Collectors.toList());
+        List<BizDaywork> bizDayworks = bizDayworkService.query().in("id", unreturn.isEmpty() ? Collections.singletonList(0L): unreturn.stream().map(BizDayworkCarrier::getDayworkId).collect(Collectors.toList())).list();
+        if (unreturn.size() > 0) {
+            String msg = "周转箱" + unreturn.stream().map(BizDayworkCarrier::getCarrierCode).distinct().collect(Collectors.joining(",")) + "中批次" + bizDayworks.stream().map(BizDaywork::getLotCode).distinct().collect(Collectors.joining(",")) + "未收回";
+            return AjaxResult.success(msg, false);
+        }
+        return success(true);
+    }
+
     @Log(title = "获取内部外协详情")
     @PreAuthorize("@ss.hasPermi('business:returnReceipt:query')")
     @GetMapping(value = "/interReceipt/{id}")

+ 58 - 0
src/main/java/cn/ezhizao/project/business/domain/BizCarrierCategory.java

@@ -0,0 +1,58 @@
+package cn.ezhizao.project.business.domain;
+
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * 企业租户对象 biz_carrier_category
+ *
+ * @author ezhizao
+ * @date 2024-03-18
+ */
+@Data
+@TableName(value = "biz_carrier_category")
+public class BizCarrierCategory extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 租户id */
+    @ApiModelProperty(value = "${comment}")
+    private Long tenantId;
+
+    /** 父级类别id */
+    @ApiModelProperty(value = "${comment}")
+    private Long parentId;
+
+    /** 设备类别编号 */
+    @Excel(name = "设备类别编号")
+    @ApiModelProperty(value = "设备类别编号")
+    private String code;
+
+    /** 设备类别名称 */
+    @Excel(name = "设备类别名称")
+    @ApiModelProperty(value = "设备类别名称")
+    private String name;
+
+    /** 设备类别排序 */
+    @Excel(name = "设备类别排序")
+    @ApiModelProperty(value = "设备类别排序")
+    private Integer sort;
+
+    /** 是否允许多批(0:默认不允许,1:允许) */
+    @Excel(name = "是否允许多批", readConverterExp = "0=:默认不允许,1:允许")
+    @ApiModelProperty(value = "是否允许多批")
+    private Integer isAllowMore;
+
+    /* ********************************************* 虚字段 ********************************************* */
+
+    /** 子类别 */
+    @TableField(exist = false)
+    private List<BizCarrierCategory> children;
+
+}

+ 213 - 0
src/main/java/cn/ezhizao/project/business/domain/BizDaywork.java

@@ -0,0 +1,213 @@
+package cn.ezhizao.project.business.domain;
+
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+
+/**
+ * 报工对象 biz_daywork
+ *
+ * @author ezhizao
+ * @date 2023-11-29
+ */
+@Data
+@TableName(value = "biz_daywork")
+public class BizDaywork extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 租户(厂别)id */
+    @ApiModelProperty(value = "${comment}")
+    private Long tenantId;
+    /** 批次号id */
+    @ApiModelProperty(value = "${comment}")
+    private Long lotId;
+    /** 批次号 */
+    @ApiModelProperty(value = "${comment}")
+    private String lotCode;
+
+    /** 单批数 */
+//    private Integer oneLotQuantity;
+    /** 计划单id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanId;
+
+    /** 子计划id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailSubDetailId;
+
+    /** 计划单明细id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailId;
+
+    /** 子计划工序对应的设备id */
+//    @ApiModelProperty(value = "${comment}")
+//    private Long productionPlanDetailSubDetailEquipmentId;
+
+    /** 产品id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productId;
+
+    /** 工艺id(通过工艺id,获取版本号) */
+    @ApiModelProperty(value = "${comment}")
+    private Long technologicalProcessId;
+
+    /** 是否是废品回用(0:否;1:是) */
+    @ApiModelProperty(value = "${comment}")
+    private Integer isWasteRecycling;
+
+    /** 是否修改(0 否 ,1 是)单批单改;多批单改;回退 */
+    @ApiModelProperty(value = "${comment}")
+    private Integer isAmend;
+
+    /** 用户id */
+    @ApiModelProperty(value = "用户id")
+    private Long userId;
+
+    /** 员工编码 */
+    @Excel(name = "员工编码")
+    @ApiModelProperty(value = "员工编码")
+    private String userName;
+
+    /** 员工姓名 */
+    @Excel(name = "员工姓名")
+    @ApiModelProperty(value = "员工姓名")
+    private String nickName;
+
+    /** 开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+
+    /** 结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+    /** 载具 */
+    @TableField(exist = false)
+    private String carrierName;
+    /** 周转中控制状态 */
+    @TableField(exist = false)
+    private Integer currentStatus;
+
+    private Integer status;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "生产数量")
+    private Integer productionQuantity;
+
+    @TableField(exist = false)
+    private List<BizDayworkCarrier> dayworkCarriers;
+    /** 炉号 */
+    @TableField(exist = false)
+    private String furnaceNumber;
+
+
+
+    @TableField(exist = false)
+    private List<BizDayworkItem> dayworkItemList;
+
+    private Integer processQualifiedNum;
+    /**
+     * 临时合格数
+     */
+    private Integer temporaryProcessQualifiedNum;
+
+    private Integer isLast;
+
+    private Integer isCertificate;
+
+    /** 单批量 */
+    @TableField(exist = false)
+    private Integer oneLotQuantity;
+
+    @TableField(exist = false)
+    private Integer lastLotQuantity;
+
+    /** 工段id*/
+    private Long deptId;
+
+    @TableField(exist = false)
+    private Long processId;
+
+    @TableField(exist = false)
+    private Long technologicalProcessDetailId;
+
+
+    @TableField(exist = false)
+    private String deptName;
+
+    @TableField(exist = false)
+    private String place;
+
+    @TableField(exist = false)
+    private String keywords;
+
+    @TableField(exist = false)
+    private String nextDeptProcess;
+
+    @TableField(exist = false)
+    private BizFurnaceNoInfo furnaceNoInfo;
+
+    @TableField(exist = false)
+    private Long protemProcessId;
+
+    @TableField(exist = false)
+    private Long newCarrierId;
+
+    @TableField(exist = false)
+    private String newCarrierCode;
+
+    @TableField(exist = false)
+    private String processStepNumber;
+
+    @TableField(exist = false)
+    private Boolean isNormalLot;
+
+    @TableField(exist = false)
+    private Integer isWaste;
+    @TableField(exist = false)
+    private Long fromId;
+    @TableField(exist = false)
+    private String carrierCode;
+    @TableField(exist = false)
+    private String allCarrierName;
+    @TableField(exist = false)
+    private String productDescription;
+    @TableField(exist = false)
+    private String drawingNumber;
+    @TableField(exist = false)
+    private String technologyVersion;
+    @TableField(exist = false)
+    private String currentNickName;
+    @TableField(exist = false)
+    private String currentEquipmentCode;
+    @TableField(exist = false)
+    private Integer totalQuantityNum;
+    @TableField(exist = false)
+    private String creatorName;
+    @TableField(exist = false)
+    private String protemProcessStepNumber;
+    @TableField(exist = false)
+    private Integer prodNum;
+    private Integer isSuperaddition;
+    private Long packageResourceGroupId;
+    @TableField(exist = false)
+    private List<Long> productionPlanDetailIds;
+    @TableField(exist = false)
+    private String workshopName;
+    @TableField(exist = false)
+    private Long workshopId;
+    @TableField(exist =false)
+    private Boolean hasFinishOutsource;
+}

+ 279 - 0
src/main/java/cn/ezhizao/project/business/domain/BizDayworkItem.java

@@ -0,0 +1,279 @@
+package cn.ezhizao.project.business.domain;
+
+import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
+import cn.ezhizao.framework.web.domain.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 报工记录对象 biz_daywork_item
+ *
+ * @author ezhizao
+ * @date 2023-12-04
+ */
+@Data
+@TableName(value = "biz_daywork_item")
+public class BizDayworkItem extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 租户(厂别)id */
+    @ApiModelProperty(value = "${comment}")
+    private Long tenantId;
+
+    /** daywork的id */
+    @ApiModelProperty(value = "${comment}")
+    private Long dayworkId;
+
+    /** 计划单id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanId;
+
+    /** 计划单明细id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailId;
+
+    /** 子计划id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailSubDetailId;
+
+    /** 子计划工序对应的设备id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailSubDetailEquipmentId;
+
+    /** 箱数 */
+    @Excel(name = "箱数")
+    private Integer carrierNum;
+
+    /** 批次号 */
+    @ApiModelProperty(value = "${comment}")
+    private Long lotId;
+
+    /** 载具id */
+    @ApiModelProperty(value = "${comment}")
+    private Long vehicleId;
+
+    /** 投产数 */
+    @Excel(name = "投产数")
+    @ApiModelProperty(value = "投产数")
+    private Integer prodNum;
+
+    /** 合格数 */
+    @Excel(name = "合格数")
+    @ApiModelProperty(value = "合格数")
+    private Integer qualifiedNum;
+
+    /** 工艺id(通过工艺id,获取版本号) */
+    @ApiModelProperty(value = "合格数")
+    private Long technologicalProcessId;
+
+    /** 工序id */
+    @ApiModelProperty(value = "合格数")
+    private Long processId;
+
+    /** 设备id */
+    @ApiModelProperty(value = "合格数")
+    private Long equipmentDetailId;
+
+    /** 设备编码 */
+    @Excel(name = "设备编码")
+    @ApiModelProperty(value = "设备编码")
+    private String equipmentDetailCode;
+
+    /** 生产状态0:未开始, 1:生产中 ,2:已完成 */
+    @Excel(name = "生产状态 0:未开始, 1: 生产中, 2: 报工结束 ,3: 工序已完成, 4: 待周转,5: 周转中,6: 已送达,7:已接收")
+    @ApiModelProperty(value = "生产状态 0:未开始, 1: 生产中, 2: 报工结束 ,3: 工序已完成, 4: 待周转,5: 周转中,6: 已送达,7:已接收")
+    private String status;
+
+    /** 是否有特殊报工 */
+    @Excel(name = "是否特殊报工")
+    @ApiModelProperty(value = "是否特殊报工")
+    private Integer isSpecial;
+
+    @Excel(name = "特殊报工是否首序")
+    @ApiModelProperty(value = "特殊报工是否首序")
+    private Integer  specialIsFirst;
+
+    /** 用户id */
+    private Long userId;
+    /** 接收人id */
+    @ApiModelProperty(value = "接收人id")
+    private Long recipientId;
+
+    private Long deptId;
+
+    private String deptName;
+
+    @TableField(exist = false)
+    private String deptCode;
+    @TableField(exist = false)
+    private String processCode;
+    @TableField(exist = false)
+    private String drawingNumber;
+
+    @TableField(exist = false)
+    private Long carrierId;
+
+    @TableField(exist = false)
+    private String carrierCode;
+    /** 员工编码 */
+    @Excel(name = "员工编码")
+    @ApiModelProperty(value = "员工编码")
+    private String userName;
+
+    /** 员工姓名 */
+    @Excel(name = "员工姓名")
+    @ApiModelProperty(value = "员工姓名")
+    private String nickName;
+
+    /** 开始时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "开始时间")
+    private Date startTime;
+    /** 批次号 */
+    @TableField(exist = false)
+    @ApiModelProperty(value = "${comment}")
+    private String lotCode;
+    /** 结束时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
+    @ApiModelProperty(value = "结束时间")
+    private Date endTime;
+
+    //是否序检
+    private Integer isProcessInspection;
+
+    @ApiModelProperty(value = "来源")
+    private Long formDayworkItemId;
+
+    @ApiModelProperty(value = "报公工时")
+    private Long workingHours;
+
+    private Integer rejectNum;
+
+    @TableField(exist = false)
+    private Integer isAmend;
+
+    private String reason;
+    /** 前端传来的下一道工序Id */
+    @TableField(exist = false)
+    private Long processDemoId;
+
+    /** 周转区 */
+    private String turnoverArea;
+    private String turnoverId;
+    /** 周转类型 */
+    private String turnoverType;
+
+    private Long updaterId;
+
+    @TableField(exist = false)
+    private BizDaywork daywork;
+
+    /** 载具 */
+    @TableField(exist = false)
+    private String carrierName;
+
+    /** 产品描述 */
+    @TableField(exist = false)
+    private String productDescription;
+
+    /** 查询非周转页面状态 */
+    @TableField(exist = false)
+    private String userStatus;
+
+    /** 周转区字典*/
+    @TableField(exist = false)
+    private String dictDataLabel;
+
+    /** 控制周转显示 */
+    @TableField(exist = false)
+    private String type;
+
+    /** 上一部门 */
+    @TableField(exist = false)
+    private String preDeptName;
+    /** 废品数*/
+    @TableField(exist = false)
+    private Integer rejectSum;
+
+//    private Integer productionNum;
+
+    private String placeId;
+
+    private String place;
+
+    @TableField(exist = false)
+    private String nextDeptProcess;
+
+    // 是否是首序
+    @TableField(exist = false)
+    private Boolean isPreProcess;
+
+    @ApiModelProperty("工序外键")
+    private Long technologicalProcessDetailId;
+
+
+    @ApiModelProperty("是否快速报工")
+    private Integer isQuick;
+
+    @TableField(exist = false)
+    private List<BizDayworkCarrier> dayworkCarriers;
+    @TableField(exist = false)
+    private List<Long> ids;
+    @TableField(exist = false)
+    private String productionPlanNo;
+
+    @TableField(exist = false)
+    private Long workshopId;
+
+    private String processStepNumber;
+
+    @TableField(exist = false)
+    private Integer isWasteRecycling;
+
+
+    @TableField(exist = true)
+    private String remark;
+
+    @TableField(exist = false)
+    private String technicianName;
+
+    @TableField(exist = false)
+    private Long technicianId;
+    @TableField(exist = false)
+    private String keywords;
+    @TableField(exist = false)
+    private Long lastDeptId;
+    @TableField(exist = false)
+    private String processAlias;
+    private Integer isSort;
+    private Integer isInnerTurnover;
+    @TableField(exist = false)
+    private String protemProcessStepNumber;
+    @TableField(exist = false)
+    private Boolean isNextPacking;
+    @TableField(exist = false)
+    private String technologyVersion;
+    private Long packageResourceGroupId;
+    private String packageResourceGroupDetailUserId;
+    @TableField(exist = false)
+    private Integer lineNumber;
+    @TableField(exist = false)
+    private Integer adoptStatus;
+    @TableField(exist = false)
+    private String message;
+
+    private String fromDeptName;
+    private Long fromDeptId;
+    //外协发出明细
+    private Long  outsourceDetailId;
+    private Integer isWx;
+}

+ 3 - 0
src/main/java/cn/ezhizao/project/business/domain/BizOutsourcedOrderDetail.java

@@ -171,4 +171,7 @@ public class BizOutsourcedOrderDetail extends BaseEntity
     private Integer unbind;
     @TableField(exist = false)
     private String currentCarriers;
+    /** 计划单明细id */
+    @ApiModelProperty(value = "${comment}")
+    private Long productionPlanDetailId;
 }

+ 2 - 0
src/main/java/cn/ezhizao/project/business/domain/BizReturnReceipt.java

@@ -86,5 +86,7 @@ public class BizReturnReceipt extends BaseEntity
     private List<List<BizReturnReceiptDetail>> detailLists;
     @TableField(exist = false)
     private String stringDate;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date submitTime;
 
 }

+ 24 - 0
src/main/java/cn/ezhizao/project/business/domain/CarrierCategoryOptions.java

@@ -0,0 +1,24 @@
+package cn.ezhizao.project.business.domain;
+
+import lombok.Data;
+
+import java.util.List;
+
+
+/**
+ * 设备类别对象 biz_carrier_category
+ *
+ * @author ezhizao
+ * @date 2023-11-14
+ */
+@Data
+public class CarrierCategoryOptions {
+    /** 文本 */
+    private String label;
+
+    /** 值 */
+    private String value;
+
+    /** 子类别 */
+    private List<CarrierCategoryOptions> children;
+}

+ 21 - 0
src/main/java/cn/ezhizao/project/business/mapper/BizCarrierCategoryMapper.java

@@ -0,0 +1,21 @@
+package cn.ezhizao.project.business.mapper;
+
+import cn.ezhizao.project.business.domain.BizCarrierCategory;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * 设备档案Mapper接口
+ *
+ * @author ezhizao
+ * @date 2023-11-14
+ */
+public interface BizCarrierCategoryMapper extends BaseMapper<BizCarrierCategory> {
+
+    /**
+     * 物理删除
+     * @param id 待删除的数据id
+     * @return 删除结果
+     */
+    public int physicalDelete(Long id);
+
+}

+ 79 - 0
src/main/java/cn/ezhizao/project/business/mapper/BizDayworkItemMapper.java

@@ -0,0 +1,79 @@
+package cn.ezhizao.project.business.mapper;
+
+import cn.ezhizao.project.business.domain.BizDaywork;
+import cn.ezhizao.project.business.domain.BizDayworkItem;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 报工记录Mapper接口
+ *
+ * @author ezhizao
+ * @date 2023-12-04
+ */
+public interface BizDayworkItemMapper extends BaseMapper<BizDayworkItem>
+{
+    /**
+     * 查询报工记录列表
+     *
+     * @param bizDayworkItem 报工记录
+     * @return 报工记录集合
+     */
+    public List<BizDayworkItem> getList(BizDayworkItem bizDayworkItem);
+    public List<BizDaywork> getInnerListByDeptId(BizDayworkItem bizDayworkItem);
+    public List<BizDaywork> getOutListByDeptId(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 根据载具id查询待周转列表
+     * @param bizDayworkItem
+     * @return
+     */
+    public List<BizDayworkItem> getDayworkItemByCarrier(BizDayworkItem bizDayworkItem);
+    public List<BizDayworkItem> getListByDayworkId(BizDayworkItem bizDayworkItem);
+    public List<BizDayworkItem> getDayworkItemByDayworkIds(List<Long> dayworkIds);
+    public List<BizDayworkItem> getSortListByDayworkId(BizDayworkItem bizDayworkItem);
+    /**
+     * 根据载具code查询待周转列表
+     * @param bizDayworkItem
+     * @return
+     */
+    public List<BizDayworkItem> getDayworkItemByCarrierCode(BizDayworkItem bizDayworkItem);
+
+
+    /**
+     * 查询未周转的item
+     * @param bizDayworkItem
+     * @return
+     */
+    public List<BizDayworkItem> getUndoneItem(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 物理删除
+     * @param bizDayworkItem
+     * @return 删除结果
+    */
+    public int physicalDelete(BizDayworkItem bizDayworkItem);
+
+
+    /**
+     * 根据载具id查询待周转列表
+     */
+    public BizDayworkItem getDayworkItemByCarrier(String carrierId);
+
+
+    List<BizDayworkItem> getDayWorkItemHistory(String startTime,String endTime,String userName);
+
+    List<BizDayworkItem> getItemScreen(Long dayWorkId);
+
+    List<BizDayworkItem> getUnfinishedDayworkItemByUser(@Param("userId") Long userId);
+
+    List<BizDayworkItem> getByDayworkId(Long dayworkId);
+    List<BizDayworkItem> getTurnoverList(BizDaywork daywork);
+
+    BizDayworkItem selById(Long dayworkItemId);
+
+
+    List<BizDayworkItem> getByDaywork(BizDaywork daywork);
+}

+ 55 - 0
src/main/java/cn/ezhizao/project/business/mapper/BizDayworkMapper.java

@@ -0,0 +1,55 @@
+package cn.ezhizao.project.business.mapper;
+
+import cn.ezhizao.project.business.domain.BizCarrier;
+import cn.ezhizao.project.business.domain.BizDaywork;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+import java.util.List;
+
+
+/**
+ * 报工Mapper接口
+ *
+ * @author ezhizao
+ * @date 2023-11-29
+ */
+public interface BizDayworkMapper extends BaseMapper<BizDaywork> {
+    /**
+     * 查询报工列表
+     *
+     * @param bizDaywork 报工
+     * @return 报工集合
+     */
+    public List<BizDaywork> getList(BizDaywork bizDaywork);
+    public BizDaywork getDayworkInfoById(BizDaywork bizDaywork);
+
+    /**
+     * 物理删除
+     *
+     * @param bizDaywork
+     * @return 删除结果
+     */
+    public int physicalDelete(BizDaywork bizDaywork);
+
+    /**
+     * 物理删除
+     *
+     * @param bizDaywork
+     * @return 删除结果
+     */
+    public int turnoverDelete(BizDaywork bizDaywork);
+    public BizDaywork getLotInfo(BizDaywork bizDaywork);
+
+    /**
+     *  获取可用载具列表,用来扫一扫添加新批次
+     * @param bizCarrier 载具信息
+     */
+    public List<BizCarrier> getAvailableCarrierList(BizCarrier bizCarrier);
+
+    /**
+     * 判断批数不能大于投产批数
+     */
+    public Integer getLotNumber(Long productionPlanDetailId);
+
+    public Integer getdayworkNum(Long productionPlanDetailId);
+}

+ 37 - 0
src/main/java/cn/ezhizao/project/business/service/IBizCarrierCategoryService.java

@@ -0,0 +1,37 @@
+package cn.ezhizao.project.business.service;
+
+import cn.ezhizao.project.business.domain.BizCarrierCategory;
+import cn.ezhizao.project.business.domain.CarrierCategoryOptions;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * 设备档案Service接口
+ *
+ * @author ezhizao
+ * @date 2023-11-14
+ */
+public interface IBizCarrierCategoryService extends IService<BizCarrierCategory> {
+
+    /**
+     * 物理删除
+     *
+     * @param id 要删除的数据id
+     * @return 删除结果
+     */
+    int physicalDelete(Long id);
+
+    /**
+     * 返回类别的选项
+     * @param list 类别列表
+     * @return 选项集合
+     */
+    List<CarrierCategoryOptions> getCategoryOptions(List<BizCarrierCategory> list);
+
+    /**
+     * 获取子类别
+     * @param list 类别列表
+     */
+    void getChildren(List<BizCarrierCategory> list);
+}

+ 69 - 0
src/main/java/cn/ezhizao/project/business/service/IBizDayworkItemService.java

@@ -0,0 +1,69 @@
+package cn.ezhizao.project.business.service;
+
+import cn.ezhizao.project.business.domain.BizDaywork;
+import cn.ezhizao.project.business.domain.BizDayworkItem;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+ * 报工记录Service接口
+ *
+ * @author ezhizao
+ * @date 2023-12-04
+ */
+public interface IBizDayworkItemService extends IService<BizDayworkItem>
+{
+    /**
+     * 查询报工记录列表
+     *
+     * @param bizDayworkItem 报工记录
+     * @return 报工记录集合
+     */
+    public List<BizDayworkItem> getList(BizDayworkItem bizDayworkItem);
+    public List<BizDaywork> getInnerListByDeptId(BizDayworkItem bizDayworkItem);
+    public List<BizDaywork> getOutListByDeptId(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 物理删除
+     * @param bizDayworkItem
+     * @return 删除结果
+     */
+    public int physicalDelete(BizDayworkItem bizDayworkItem);
+    public List<BizDayworkItem> getListByDayworkId(BizDayworkItem bizDayworkItem);
+    public List<BizDayworkItem> getSortListByDayworkId(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 根据载具id查询待周转列表
+     */
+    public List<BizDayworkItem> getDayworkItemByCarrier(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 根据载具code查询待周转列表
+     */
+    public List<BizDayworkItem> getDayworkItemByCarrierCode(BizDayworkItem bizDayworkItem);
+
+    /**
+     * 查询未周转的item
+     * @param bizDayworkItem
+     * @return
+     */
+    public List<BizDayworkItem> getUndoneItem(BizDayworkItem bizDayworkItem);
+
+    List<BizDayworkItem> getDayWorkItemHistory(String startTime,String endTime,String userName);
+
+    List<BizDayworkItem> getItemScreen(Long dayWorkId);
+    List<BizDayworkItem> getUnfinishedDayworkItemByUser(Long userId);
+
+    //根据dayworkId查询报工信息按照创建时间倒叙查询
+    List<BizDayworkItem> getByDayworkId(Long dayworkId);
+
+    BizDayworkItem selById(Long dayworkItemId);
+    List<BizDayworkItem> getDayworkItemByDayworkIds(List<Long> dayworkIds);
+
+    List<BizDayworkItem> getByDaywork(BizDaywork daywork);
+    List<BizDayworkItem> getTurnoverList(BizDaywork daywork);
+
+
+
+}

+ 51 - 0
src/main/java/cn/ezhizao/project/business/service/IBizDayworkService.java

@@ -0,0 +1,51 @@
+package cn.ezhizao.project.business.service;
+
+import cn.ezhizao.project.business.domain.BizCarrier;
+import cn.ezhizao.project.business.domain.BizDaywork;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+
+/**
+ * 报工Service接口
+ *
+ * @author ezhizao
+ * @date 2023-11-29
+ */
+public interface IBizDayworkService extends IService<BizDaywork>
+{
+    /**
+     * 查询报工列表
+     *
+     * @param bizDaywork 报工
+     * @return 报工集合
+     */
+    public List<BizDaywork> getList(BizDaywork bizDaywork);
+    public BizDaywork getDayworkInfoById(BizDaywork bizDaywork);
+
+    /**
+     * 物理删除
+     * @param bizDaywork
+     * @return 删除结果
+     */
+    public int physicalDelete(BizDaywork bizDaywork);
+
+    /**
+     * 物理删除
+     * @param bizDaywork
+     * @return 删除结果
+     */
+    public int turnoverDelete(BizDaywork bizDaywork);
+
+    public List<BizCarrier> getAvailableCarrierList(BizCarrier bizCarrier);
+    public BizDaywork getLotInfo(BizDaywork bizDaywork);
+
+    /**
+     * 判断批数不能大于投产批数
+     */
+    public Integer getLotNumber(Long productionPlanDetailId);
+
+    public Integer getdayworkNum(Long productionPlanDetailId);
+
+}

+ 86 - 0
src/main/java/cn/ezhizao/project/business/service/impl/BizCarrierCategoryServiceImpl.java

@@ -0,0 +1,86 @@
+package cn.ezhizao.project.business.service.impl;
+
+import cn.ezhizao.project.business.domain.BizCarrierCategory;
+import cn.ezhizao.project.business.domain.CarrierCategoryOptions;
+import cn.ezhizao.project.business.mapper.BizCarrierCategoryMapper;
+import cn.ezhizao.project.business.service.IBizCarrierCategoryService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 设备档案Service业务层处理
+ *
+ * @author ezhizao
+ * @date 2023-11-14
+ */
+@Service
+public class BizCarrierCategoryServiceImpl extends ServiceImpl<BizCarrierCategoryMapper, BizCarrierCategory> implements IBizCarrierCategoryService
+{
+    @Resource
+    private BizCarrierCategoryMapper bizCarrierCategoryMapper;
+
+    /**
+     * 物理删除
+     * @param id 待删除的id
+     * @return 删除结果
+     */
+    @Override
+    public int physicalDelete(Long id){
+        return bizCarrierCategoryMapper.physicalDelete(id);
+    }
+
+    /**
+     * 返回类别的选项
+     * @param list 类别列表
+     * @return 选项集合
+     */
+    @Override
+    public List<CarrierCategoryOptions> getCategoryOptions(List<BizCarrierCategory> list) {
+        List<CarrierCategoryOptions> options = new ArrayList<>();
+        // 循环List
+        for (BizCarrierCategory item : list) {
+            CarrierCategoryOptions option = new CarrierCategoryOptions();
+            option.setLabel(item.getName());
+            option.setValue(item.getId().toString());
+
+            QueryWrapper<BizCarrierCategory> queryWrapper = new QueryWrapper<>();
+            // 获取所有一级类别
+            queryWrapper.eq("deleted", 0)
+                    .eq("parent_id", item.getId());
+            // 获取子类别
+            List<BizCarrierCategory> childrenCategories = bizCarrierCategoryMapper.selectList(queryWrapper);
+            if (childrenCategories.size() > 0) {
+                option.setChildren(getCategoryOptions(childrenCategories));
+            }
+            options.add(option);
+        }
+
+        return options;
+    }
+
+
+    /**
+     * 递归获取子类别
+     */
+    @Override
+    public void getChildren(List<BizCarrierCategory> list) {
+        // 循环List
+        for (BizCarrierCategory item : list) {
+            QueryWrapper<BizCarrierCategory> queryWrapper = new QueryWrapper<>();
+            // 获取所有一级类别
+            queryWrapper.eq("deleted", 0)
+                    .eq("parent_id", item.getId());
+            // 获取子类别
+            List<BizCarrierCategory> children = bizCarrierCategoryMapper.selectList(queryWrapper);
+            if (children.size() > 0) {
+                item.setChildren(children);
+                getChildren(children);
+            }
+        }
+    }
+}

+ 142 - 0
src/main/java/cn/ezhizao/project/business/service/impl/BizDayworkItemServiceImpl.java

@@ -0,0 +1,142 @@
+package cn.ezhizao.project.business.service.impl;
+
+
+import cn.ezhizao.project.business.domain.BizDaywork;
+import cn.ezhizao.project.business.domain.BizDayworkCarrier;
+import cn.ezhizao.project.business.domain.BizDayworkItem;
+import cn.ezhizao.project.business.mapper.BizDayworkCarrierMapper;
+import cn.ezhizao.project.business.mapper.BizDayworkItemMapper;
+import cn.ezhizao.project.business.service.IBizDayworkItemService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 报工记录Service业务层处理
+ *
+ * @author ezhizao
+ * @date 2023-12-04
+ */
+@Service
+public class BizDayworkItemServiceImpl  extends ServiceImpl<BizDayworkItemMapper, BizDayworkItem> implements IBizDayworkItemService
+{
+    @Resource
+    private BizDayworkItemMapper bizDayworkItemMapper;
+
+    @Resource
+    private BizDayworkCarrierMapper bizDayworkCarrierMapper;
+
+    /**
+     * 查询报工记录列表
+     *
+     * @param bizDayworkItem 报工记录
+     * @return 报工记录
+     */
+    @Override
+    public List<BizDayworkItem> getList(BizDayworkItem bizDayworkItem)
+    {
+        return bizDayworkItemMapper.getList(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDaywork> getInnerListByDeptId(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getInnerListByDeptId(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDaywork> getOutListByDeptId(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getOutListByDeptId(bizDayworkItem);
+    }
+
+    /**
+     * 物理删除
+     * @param bizDayworkItem
+     * @return 删除结果
+     */
+    @Override
+    public int physicalDelete(BizDayworkItem bizDayworkItem){ return bizDayworkItemMapper.physicalDelete(bizDayworkItem); }
+
+    @Override
+    public List<BizDayworkItem> getListByDayworkId(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getListByDayworkId(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDayworkItem> getSortListByDayworkId(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getSortListByDayworkId(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDayworkItem> getDayworkItemByCarrier(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getDayworkItemByCarrier(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDayworkItem> getDayworkItemByCarrierCode(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getDayworkItemByCarrierCode(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDayworkItem> getUndoneItem(BizDayworkItem bizDayworkItem) {
+        return bizDayworkItemMapper.getUndoneItem(bizDayworkItem);
+    }
+
+    @Override
+    public List<BizDayworkItem> getDayWorkItemHistory(String startTime,String endTime,String userName) {
+        return bizDayworkItemMapper.getDayWorkItemHistory(startTime,endTime,userName);
+    }
+
+    @Override
+    public List<BizDayworkItem> getItemScreen(Long dayWorkId) {
+        return bizDayworkItemMapper.getItemScreen(dayWorkId);
+    }
+
+    /**
+     * 获取该用户未完成的快速报工
+     * @param userId 用户id
+     * @return 返回结果
+     */
+    @Override
+    public List<BizDayworkItem> getUnfinishedDayworkItemByUser(Long userId) {
+        return bizDayworkItemMapper.getUnfinishedDayworkItemByUser(userId);
+    }
+
+    @Override
+    public List<BizDayworkItem> getByDayworkId(Long dayworkId) {
+        return bizDayworkItemMapper.getByDayworkId(dayworkId);
+    }
+
+    @Override
+    public BizDayworkItem selById(Long dayworkItemId) {
+        return bizDayworkItemMapper.selById(dayworkItemId);
+    }
+
+    @Override
+    public List<BizDayworkItem> getDayworkItemByDayworkIds(List<Long> dayworkIds) {
+        return bizDayworkItemMapper.getDayworkItemByDayworkIds(dayworkIds);
+    }
+
+    @Override
+    public List<BizDayworkItem> getByDaywork(BizDaywork daywork) {
+        return bizDayworkItemMapper.getByDaywork(daywork);
+    }
+
+    @Override
+    public List<BizDayworkItem> getTurnoverList(BizDaywork daywork) {
+        return bizDayworkItemMapper.getTurnoverList(daywork);
+    }
+
+
+
+}
+
+
+
+

+ 79 - 0
src/main/java/cn/ezhizao/project/business/service/impl/BizDayworkServiceImpl.java

@@ -0,0 +1,79 @@
+package cn.ezhizao.project.business.service.impl;
+
+import cn.ezhizao.project.business.domain.BizCarrier;
+import cn.ezhizao.project.business.domain.BizDaywork;
+import cn.ezhizao.project.business.domain.BizDayworkItem;
+import cn.ezhizao.project.business.mapper.BizDayworkMapper;
+import cn.ezhizao.project.business.service.IBizDayworkService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.List;
+import java.util.stream.Collectors;
+
+
+/**
+ * 报工Service业务层处理
+ *
+ * @author ezhizao
+ * @date 2023-11-29
+ */
+@Service
+public class BizDayworkServiceImpl extends ServiceImpl<BizDayworkMapper, BizDaywork> implements IBizDayworkService {
+    @Resource
+    private BizDayworkMapper bizDayworkMapper;
+
+    /**
+     * 查询报工列表
+     *
+     * @param bizDaywork 报工
+     * @return 报工
+     */
+    @Override
+    public List<BizDaywork> getList(BizDaywork bizDaywork) {
+        return bizDayworkMapper.getList(bizDaywork);
+    }
+
+    @Override
+    public BizDaywork getDayworkInfoById(BizDaywork bizDaywork) {
+        return bizDayworkMapper.getDayworkInfoById(bizDaywork);
+    }
+
+    /**
+     * 物理删除
+     * @param bizDaywork
+     * @return 删除结果
+     */
+    @Override
+    public int physicalDelete(BizDaywork bizDaywork) {
+        return bizDayworkMapper.physicalDelete(bizDaywork);
+    }
+
+    @Override
+    public int turnoverDelete(BizDaywork bizDaywork) {
+        return bizDayworkMapper.turnoverDelete(bizDaywork);
+    }
+
+    @Override
+    public List<BizCarrier> getAvailableCarrierList(BizCarrier bizCarrier) {
+        return bizDayworkMapper.getAvailableCarrierList(bizCarrier);
+    }
+
+    @Override
+    public BizDaywork getLotInfo(BizDaywork daywork) {
+        return bizDayworkMapper.getLotInfo(daywork);
+    }
+
+    @Override
+    public Integer getLotNumber(Long productionPlanDetailId) {
+        return bizDayworkMapper.getLotNumber(productionPlanDetailId);
+    }
+
+    @Override
+    public Integer getdayworkNum(Long productionPlanDetailId) {
+        return bizDayworkMapper.getdayworkNum(productionPlanDetailId);
+    }
+
+
+}

+ 3 - 3
src/main/resources/mybatis/business/BizCarrierMapper.xml

@@ -27,14 +27,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="getListFromOutsource" resultMap="BizCarrierResult" parameterType="cn.ezhizao.project.business.domain.BizCarrier">
         select t1.id,t1.category_id,t1.code,t1.qc_code,t1.remark,t1.tenant_id,t1.is_allow_more,COALESCE((SELECT t2.is_abandoned FROM biz_carrier_reject t2 WHERE t1.id = t2.carrier_id ORDER BY t2.create_time DESC LIMIT 1), 0) AS is_abandoned
-        FROM biz_carrier t1
+        FROM biz_carrier t1 left join biz_carrier_category t2 on t2.id = t1.category_id
         <trim prefix=" WHERE" suffix="" suffixOverrides="AND">
-            deleted = 0 and is_allow_more = 0 and is_inspection = 0
+            t1.deleted = 0 and t1.is_inspection = 0
             <if test="categoryId != null  and categoryId != 0"> AND t1.category_id = #{categoryId}</if>
             <if test="code != null  and code != ''"> AND  t1.code=#{code}</if>
             <!--  未关联任何生产单  -->
             <if test="notInUse == 1">
-                AND not exists (select 1 from biz_daywork_carrier t where t.is_changed = 0 and t.carrier_id = t1.id and t.daywork_id != #{dayworkId} and t.deleted = 0)
+                AND case when t1.is_allow_more = 0 then (not exists (select 1 from biz_daywork_carrier t where t.is_changed = 0 and t.carrier_id = t1.id and t.daywork_id != #{dayworkId} and t.deleted = 0)) else true end
             </if>
 
         </trim>