Kaynağa Gözat

fix:完善开发管理下大货订单接口

DESKTOP-6104BU4\Administrator 6 ay önce
ebeveyn
işleme
96295688ee
20 değiştirilmiş dosya ile 316 ekleme ve 54 silme
  1. 1 1
      ruoyi-admin/src/main/resources/application-test.yml
  2. 2 2
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/OrderNumberGenerator.java
  3. 14 6
      ruoyi-modules/ruoyi-commodityManagement/src/main/java/org/dromara/commodityManagement/service/impl/BrandServiceImpl.java
  4. 30 3
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/controller/BulkOrderController.java
  5. 25 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/BulkOrderLogs.java
  6. 1 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/DevelopmentOrderRemark.java
  7. 27 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/BulkOrderBo.java
  8. 26 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/BulkOrderLogsBo.java
  9. 1 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/DevelopmentOrderRemarkBo.java
  10. 27 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/BulkOrderLogsVo.java
  11. 5 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/BulkOrderVo.java
  12. 2 2
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderRemarkVo.java
  13. 14 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderVo.java
  14. 10 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/BulkOrderLogsMapper.java
  15. 3 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/DevelopmentOrderMapper.java
  16. 2 0
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/BulkOrderService.java
  17. 1 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/DevelopmentOrderService.java
  18. 88 15
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/BulkOrderServiceImpl.java
  19. 30 19
      ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/DevelopmentOrderServiceImpl.java
  20. 7 1
      ruoyi-modules/ruoyi-developmentManagement/src/main/resources/mapper/DevelopmentOrderMapper.xml

+ 1 - 1
ruoyi-admin/src/main/resources/application-test.yml

@@ -1,7 +1,7 @@
 # 开发环境配置
 server:
   # 服务器的HTTP端口,默认为8080
-  port: 8112
+  port: 8111
   servlet:
     # 应用的访问路径
     context-path: /

+ 2 - 2
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/utils/OrderNumberGenerator.java

@@ -30,7 +30,7 @@ public class OrderNumberGenerator {
      *
      * @return 生成的订单号为字符串。
      */
-    public synchronized String generateOrderNumber() {
+    public synchronized String generateOrderNumber(String name) {
         LocalDate today = LocalDate.now();
         String datePart = today.format(DATE_FORMATTER);
 
@@ -41,7 +41,7 @@ public class OrderNumberGenerator {
         // 通过在计数器对象上同步来确保线程安全
         synchronized (counter) {
             int count = counter.incrementAndGet();
-            return String.format("KF%s%03d", datePart, count);
+            return String.format(name, datePart, count);
         }
     }
 

+ 14 - 6
ruoyi-modules/ruoyi-commodityManagement/src/main/java/org/dromara/commodityManagement/service/impl/BrandServiceImpl.java

@@ -31,21 +31,23 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 根据Brand对象分页查询品牌数据
-     * @param brandBo BrandBo对象
+     *
+     * @param brandBo   BrandBo对象
      * @param pageQuery 查询条件
      * @return 分页结果
      */
     @Override
-    public TableDataInfo<BrandVo> selectPageBrandList(BrandBo brandBo,PageQuery pageQuery) {
+    public TableDataInfo<BrandVo> selectPageBrandList(BrandBo brandBo, PageQuery pageQuery) {
         QueryWrapper<Brand> qw = new QueryWrapper<>();
         qw.eq(StringUtils.isNotBlank(brandBo.getName()), "name", brandBo.getName());
-        qw.eq("type", BRAND_TYPE);
+        qw.eq("type", BRAND_TYPE.getType());
         Page<BrandVo> page = brandMapper.selectVoPage(pageQuery.build(), qw);
         return TableDataInfo.build(page);
     }
 
     /**
      * 新增品牌
+     *
      * @param brandBo BrandBo对象
      * @return 结果
      */
@@ -58,6 +60,7 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 修改品牌
+     *
      * @param brandBo BrandBo对象
      * @return 结果
      */
@@ -70,6 +73,7 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 批量删除品牌
+     *
      * @param brandIds BrandIds
      * @return 结果
      */
@@ -80,6 +84,7 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 根据品牌ID查询品牌
+     *
      * @param brandIds BrandID列表
      * @return Brand列表
      */
@@ -90,6 +95,7 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 查询品牌列表
+     *
      * @return Brand列表
      */
     @Override
@@ -99,6 +105,7 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 保存前校验
+     *
      * @param entity Brand实体对象
      */
     private void validEntityBeforeSave(Brand entity) {
@@ -109,14 +116,15 @@ public class BrandServiceImpl implements BrandService {
 
     /**
      * 根据是否传入品牌ID列表查询品牌
+     *
      * @param brandIds BrandID列表
      * @return Brand列表
      */
-    private List<Brand> selectBrandsByIdOrChooseAll(Long[] brandIds){
+    private List<Brand> selectBrandsByIdOrChooseAll(Long[] brandIds) {
         QueryWrapper<Brand> qw = new QueryWrapper<>();
-        qw.eq("type",2);
+        qw.eq("type", 2);
         if (brandIds != null) {
-            qw.in("id",Arrays.asList(brandIds));
+            qw.in("id", Arrays.asList(brandIds));
         }
         return MapstructUtils.convert(brandMapper.selectVoList(qw), Brand.class);
     }

+ 30 - 3
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/controller/BulkOrderController.java

@@ -1,15 +1,42 @@
 package org.dromara.management.controller;
 
+import cn.dev33.satoken.annotation.SaCheckPermission;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.management.domain.bo.BulkOrderBo;
+import org.dromara.management.domain.vo.BulkOrderVo;
+import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
 import org.dromara.management.service.BulkOrderService;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 @RestController
 @RequestMapping("/development/bulkOrder")
 @RequiredArgsConstructor
-public class BulkOrderController {
+public class BulkOrderController extends BaseController {
 
     private final BulkOrderService bulkOrderService;
 
+    @GetMapping("/get")
+    @SaCheckPermission("fa:developmentBulkOrder:list")
+    public DevelopmentOrderTableDataInfo<BulkOrderVo> getList(BulkOrderBo bo, PageQuery pageQuery) {
+        return bulkOrderService.getList(bo, pageQuery);
+    }
+
+    @PostMapping("/add")
+    @SaCheckPermission("fa:developmentBulkOrder:add")
+    public R<Void> insertBulkOrder(@Validated @RequestBody BulkOrderBo bo) {
+        return toAjax(bulkOrderService.insertBulkOrder(bo));
+    }
+
+    @PutMapping("/edit")
+    @SaCheckPermission("fa:developmentBulkOrder:edit")
+    public R<Void> editBulkOrder(@Validated(EditGroup.class) @RequestBody List<BulkOrderBo> bo) {
+        return toAjax(bulkOrderService.editBulkOrder(bo));
+    }
 }

+ 25 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/BulkOrderLogs.java

@@ -0,0 +1,25 @@
+package org.dromara.management.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@TableName("fa_template_dahuo_order_log")
+public class BulkOrderLogs implements Serializable {
+
+    private int id;
+
+    private int dahuoOrderid;
+
+    private String name;
+
+    private String content;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/DevelopmentOrderRemark.java

@@ -20,6 +20,6 @@ public class DevelopmentOrderRemark implements Serializable {
 
     private String createTextName;
 
-    private Long templateDevOrderId;
+    private Long devOrderId;
 
 }

+ 27 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/BulkOrderBo.java

@@ -1,16 +1,21 @@
 package org.dromara.management.domain.bo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import jakarta.validation.constraints.NotBlank;
 import jakarta.validation.constraints.NotNull;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
+import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.management.domain.BulkOrder;
 
 import java.util.Date;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
+@AutoMapper(target = BulkOrder.class)
 public class BulkOrderBo extends BaseEntity {
 
     @NotNull(message = "ID不能为空", groups = {EditGroup.class})
@@ -41,20 +46,41 @@ public class BulkOrderBo extends BaseEntity {
      */
     private int status;
 
+    /**
+     * 待排大货开始
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_1StartTime;
 
+    /**
+     * 待排大货完成
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_1EndTime;
 
+    /**
+     * 排大货中开始
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_2StartTime;
 
+    /**
+     * 排大货中完成
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_2EndTime;
 
+    /**
+     * 已完成开始
+     */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_3StartTime;
 
     private DevelopmentOrderBo developmentOrderBo;
-}
+
+    private String customerName;
+
+    private String mianliao;
+
+    private String kuanhao;
+}

+ 26 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/BulkOrderLogsBo.java

@@ -0,0 +1,26 @@
+package org.dromara.management.domain.bo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.management.domain.BulkOrderLogs;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@AutoMapper(target = BulkOrderLogs.class)
+public class BulkOrderLogsBo implements Serializable {
+
+    private int id;
+
+    private int dahuoOrderid;
+
+    private String name;
+
+    private String content;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+}

+ 1 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/bo/DevelopmentOrderRemarkBo.java

@@ -25,6 +25,6 @@ public class DevelopmentOrderRemarkBo implements Serializable {
     private String createTextName;
 
     @NotNull(message = "订单ID不能为空")
-    private Long templateDevOrderId;
+    private Long devOrderId;
 
 }

+ 27 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/BulkOrderLogsVo.java

@@ -0,0 +1,27 @@
+package org.dromara.management.domain.vo;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.management.domain.BulkOrderLogs;
+
+import java.io.Serializable;
+import java.util.Date;
+
+@Data
+@AutoMapper(target = BulkOrderLogs.class)
+public class BulkOrderLogsVo implements Serializable {
+
+    private int id;
+
+    private int dahuoOrderid;
+
+    private String name;
+
+    private String content;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createtime;
+
+}

+ 5 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/BulkOrderVo.java

@@ -2,15 +2,19 @@ package org.dromara.management.domain.vo;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.tenant.core.TenantEntity;
+import org.dromara.management.domain.BulkOrder;
 
 import java.util.Date;
+import java.util.List;
 
 @EqualsAndHashCode(callSuper = true)
 @Data
+@AutoMapper(target = BulkOrder.class)
 public class BulkOrderVo extends BaseEntity {
 
     private int id;
@@ -55,4 +59,5 @@ public class BulkOrderVo extends BaseEntity {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date status_3StartTime;
 
+    private List<BulkOrderLogsVo> bulkOrderLogsVo;
 }

+ 2 - 2
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderRemarkVo.java

@@ -21,5 +21,5 @@ public class DevelopmentOrderRemarkVo implements Serializable {
 
     private String createTextName;
 
-    private Long templateDevOrderId;
-}
+    private Long devOrderId;
+}

+ 14 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/domain/vo/DevelopmentOrderVo.java

@@ -5,6 +5,7 @@ import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.NoArgsConstructor;
+import org.dromara.management.domain.DevelopOrderLogs;
 import org.dromara.management.domain.DevelopmentOrder;
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 
@@ -22,6 +23,11 @@ public class DevelopmentOrderVo extends BaseEntity {
 
     private int id;
 
+    /**
+     * 是否已大货订单
+     */
+    private boolean bulkOrder;
+
     /**
      * 订单编号
      */
@@ -266,5 +272,13 @@ public class DevelopmentOrderVo extends BaseEntity {
 
     private Integer flag;
 
+    /**
+     * 备注集合列表
+     */
     private List<DevelopmentOrderRemarkVo> developmentOrderRemarkVoList;
+
+    /**
+     * 日志集合列表
+     */
+    private List<DevelopOrderLogsVo> developOrderLogsList;
 }

+ 10 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/BulkOrderLogsMapper.java

@@ -0,0 +1,10 @@
+package org.dromara.management.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.management.domain.BulkOrderLogs;
+import org.dromara.management.domain.vo.BulkOrderLogsVo;
+
+@Mapper
+public interface BulkOrderLogsMapper extends BaseMapperPlus<BulkOrderLogs, BulkOrderLogsVo> {
+}

+ 3 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/mapper/DevelopmentOrderMapper.java

@@ -25,7 +25,9 @@ public interface DevelopmentOrderMapper extends BaseMapperPlus<DevelopmentOrder,
      * @param statusCodes 状态列表
      * @return 状态统计结果
      */
-    List<Map<String, Object>> countStatusBatch(@Param("statusCodes") Collection<Integer> statusCodes);
+    List<Map<String, Object>> countStatusBatch(@Param("statusCodes") Collection<Integer> statusCodes, @Param("fieldName") String fieldName);
 
     int getCountWithCondition(@Param("status") Integer status, @Param("statusFieldName") String statusFieldName);
+
+    int getDevelopmentOrderIdByBulkOrder(@Param("developmentOrderId") int developmentOrderId);
 }

+ 2 - 0
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/BulkOrderService.java

@@ -13,5 +13,7 @@ public interface BulkOrderService extends IService<BulkOrder> {
 
     DevelopmentOrderTableDataInfo<BulkOrderVo> getList(BulkOrderBo bo, PageQuery pageQuery);
 
+    int insertBulkOrder(BulkOrderBo bo);
+
     boolean editBulkOrder(List<BulkOrderBo> bo);
 }

+ 1 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/DevelopmentOrderService.java

@@ -16,7 +16,7 @@ public interface DevelopmentOrderService extends IService<DevelopmentOrder> {
 
     DevelopmentOrderTableDataInfo<DevelopmentOrderVo> getList(DevelopmentOrderBo developmentOrderBo, PageQuery pageQuery);
 
-    Map<Integer, String> getStatusCount(Set<Integer> STATUS_CODES, Map<Integer, String> SPECIAL_STATUS_FIELDS);
+    Map<Integer, String> getStatusCount(Set<Integer> STATUS_CODES, Map<Integer, String> SPECIAL_STATUS_FIELDS,String fieldName);
 
     boolean insert(DevelopmentOrderBo developmentOrder);
 

+ 88 - 15
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/BulkOrderServiceImpl.java

@@ -1,25 +1,33 @@
 package org.dromara.management.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.constant.DevelopmentBulkOrderConstants;
+import org.dromara.common.core.exception.ServiceException;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.OrderNumberGenerator;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.management.domain.BulkOrder;
+import org.dromara.management.domain.BulkOrderLogs;
 import org.dromara.management.domain.bo.BulkOrderBo;
+import org.dromara.management.domain.bo.BulkOrderLogsBo;
+import org.dromara.management.domain.vo.BulkOrderLogsVo;
 import org.dromara.management.domain.vo.BulkOrderVo;
 import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
+import org.dromara.management.domain.vo.DevelopmentOrderVo;
+import org.dromara.management.mapper.BulkOrderLogsMapper;
 import org.dromara.management.mapper.BulkOrderMapper;
 import org.dromara.management.service.BulkOrderService;
 import org.dromara.management.service.DevelopmentOrderService;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDate;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import java.util.*;
 
 import static cn.hutool.core.date.LocalDateTimeUtil.parseDate;
 
@@ -29,6 +37,7 @@ public class BulkOrderServiceImpl extends ServiceImpl<BulkOrderMapper, BulkOrder
 
     private final BulkOrderMapper bulkOrderMapper;
     private final DevelopmentOrderService developmentOrderService;
+    private final BulkOrderLogsMapper bulkOrderLogsMapper;
 
     private static final Set<Integer> STATUS_CODES = Set.of(
             DevelopmentBulkOrderConstants.AWAIT_BULK_ORDER,
@@ -36,10 +45,12 @@ public class BulkOrderServiceImpl extends ServiceImpl<BulkOrderMapper, BulkOrder
             DevelopmentBulkOrderConstants.THE_BULK_ORDER_HAS_BEEN_COMPLETED
     );
 
+    private static final String FIELD_NAME = "fa_template_dahuo_order";
     private static final Map<Integer, String> SPECIAL_STATUS_FIELDS = new HashMap<>();
 
     static {
         SPECIAL_STATUS_FIELDS.put(DevelopmentBulkOrderConstants.AWAIT_BULK_ORDER, "status_1_end_time");
+        SPECIAL_STATUS_FIELDS.put(DevelopmentBulkOrderConstants.ARRANGE_BULK_ORDERS, "status_2_end_time");
     }
 
     @Override
@@ -47,8 +58,16 @@ public class BulkOrderServiceImpl extends ServiceImpl<BulkOrderMapper, BulkOrder
         QueryWrapper<BulkOrder> queryWrapper = new QueryWrapper<>();
         addDynamicConditions(queryWrapper, bo);
         // 获取所有状态的数量(画图中、确认中、修改中、调色中、排版中、打版中字段为:进行中/总数量、其余为:总数量)
-        Map<Integer, String> statusCount = developmentOrderService.getStatusCount(STATUS_CODES, SPECIAL_STATUS_FIELDS);
-        return DevelopmentOrderTableDataInfo.build(bulkOrderMapper.getList(pageQuery.build(), queryWrapper), statusCount);
+        Map<Integer, String> statusCount = developmentOrderService.getStatusCount(STATUS_CODES, SPECIAL_STATUS_FIELDS, FIELD_NAME);
+
+        Page<BulkOrderVo> page = bulkOrderMapper.getList(pageQuery.build(), queryWrapper);
+        page.getRecords().forEach(item -> {
+            QueryWrapper<BulkOrderLogs> wrapper = new QueryWrapper<>();
+            wrapper.eq("dahuo_orderid", item.getId());
+            List<BulkOrderLogsVo> bulkOrderLogsVo = bulkOrderLogsMapper.selectVoList(wrapper);
+            item.setBulkOrderLogsVo(bulkOrderLogsVo);
+        });
+        return DevelopmentOrderTableDataInfo.build(page, statusCount);
     }
 
     /**
@@ -60,17 +79,17 @@ public class BulkOrderServiceImpl extends ServiceImpl<BulkOrderMapper, BulkOrder
     private void addDynamicConditions(QueryWrapper<BulkOrder> queryWrapper, BulkOrderBo bo) {
         Map<String, Object> params = bo.getParams();
         // 字符串字段处理
-        if (StringUtils.isNotBlank(bo.getDevelopmentOrderBo().getCustomerName())) {
-            queryWrapper.like("fo.customer_name", bo.getDevelopmentOrderBo().getCustomerName());
+        if (StringUtils.isNotBlank(bo.getCustomerName())) {
+            queryWrapper.like("fo.customer_name", bo.getCustomerName());
         }
-        if (StringUtils.isNotBlank(bo.getDevelopmentOrderBo().getMianliao())) {
-            queryWrapper.like("fo.mianliao", bo.getDevelopmentOrderBo().getMianliao());
+        if (StringUtils.isNotBlank(bo.getMianliao())) {
+            queryWrapper.like("fo.mianliao", bo.getMianliao());
         }
-        if (StringUtils.isNotBlank(bo.getDevelopmentOrderBo().getKuanhao())) {
-            queryWrapper.like("fo.kuanhao", bo.getDevelopmentOrderBo().getKuanhao());
+        if (StringUtils.isNotBlank(bo.getKuanhao())) {
+            queryWrapper.like("fo.kuanhao", bo.getKuanhao());
         }
-        if (bo.getDevelopmentOrderBo().getStatus() != null) {
-            queryWrapper.eq("fo.status", bo.getDevelopmentOrderBo().getStatus());
+        if (bo.getStatus() != 0) {
+            queryWrapper.eq("fd.status", bo.getStatus());
         }
 
         // 时间范围处理
@@ -81,9 +100,63 @@ public class BulkOrderServiceImpl extends ServiceImpl<BulkOrderMapper, BulkOrder
         }
     }
 
+    @Override
+    public int insertBulkOrder(BulkOrderBo bo) {
+        DevelopmentOrderVo developmentOrderVo = developmentOrderService.selectById(bo.getDevOrderid());
+        bo.setPaperDesignFile(developmentOrderVo.getPaperDesignFile());
+        bo.setStatus_1StartTime(new Date());
+        bo.setStatus(DevelopmentBulkOrderConstants.AWAIT_BULK_ORDER);
+        bo.setOrderNum(OrderNumberGenerator.getInstance().generateOrderNumber("DH%s%03d"));
+        return bulkOrderMapper.insert(MapstructUtils.convert(bo, BulkOrder.class));
+    }
+
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean editBulkOrder(List<BulkOrderBo> bo) {
+        bo.forEach(this::checkStatus);
+        return bulkOrderMapper.updateBatchById(MapstructUtils.convert(bo, BulkOrder.class));
+    }
 
-        return false;
+    private void checkStatus(BulkOrderBo bo) {
+        BulkOrderVo bulkOrderVo = bulkOrderMapper.selectVoById(bo.getId());
+        bo.setDevOrderid(bulkOrderVo.getDevOrderid());
+        if (bo.getStatus() != 0) {
+//          状态为排大货中
+            if (bo.getStatus() == DevelopmentBulkOrderConstants.ARRANGE_BULK_ORDERS) {
+//                  设置待排大货完成时间
+                bo.setStatus_1EndTime(new Date());
+//                  设置排大货中开始时间
+                bo.setStatus_2StartTime(new Date());
+                insertBulkOrderLogs(bulkOrderVo.getId(), "排大货中");
+            }
+//          状态为大货已完成
+            if (bo.getStatus() == DevelopmentBulkOrderConstants.THE_BULK_ORDER_HAS_BEEN_COMPLETED) {
+                if (bulkOrderVo.getPlateFile() == null || bulkOrderVo.getPlateFile().isEmpty()) {
+                    throw new ServiceException("订单:" + bulkOrderVo.getOrderNum() + "还未上传排大版全码截图");
+                } else {
+//              设置排大货结束时间
+                    bo.setStatus_2EndTime(new Date());
+                    insertBulkOrderLogs(bulkOrderVo.getId(), "排大货完成");
+//              设置大货已完成时间
+                    bo.setStatus_3StartTime(new Date());
+                    insertBulkOrderLogs(bulkOrderVo.getId(), "大货完成");
+                }
+            }
+        }
+    }
+
+    /**
+     * 新增大货订单日志
+     *
+     * @param devOrderId
+     * @param content
+     */
+    public void insertBulkOrderLogs(int devOrderId, String content) {
+        BulkOrderLogs bulkOrderLogs = new BulkOrderLogs();
+        bulkOrderLogs.setDahuoOrderid(devOrderId);
+        bulkOrderLogs.setContent(content);
+        bulkOrderLogs.setCreatetime(new Date());
+        bulkOrderLogs.setName(LoginHelper.getUsername());
+        bulkOrderLogsMapper.insert(bulkOrderLogs);
     }
 }

+ 30 - 19
ruoyi-modules/ruoyi-developmentManagement/src/main/java/org/dromara/management/service/impl/DevelopmentOrderServiceImpl.java

@@ -11,6 +11,7 @@ import org.dromara.management.domain.DevelopmentOrder;
 import org.dromara.management.domain.DevelopmentOrderRemark;
 import org.dromara.management.domain.bo.DevelopmentOrderBo;
 import org.dromara.management.domain.bo.DevelopmentOrderRemarkBo;
+import org.dromara.management.domain.vo.DevelopOrderLogsVo;
 import org.dromara.management.domain.vo.DevelopmentOrderRemarkVo;
 import org.dromara.management.domain.vo.DevelopmentOrderTableDataInfo;
 import org.dromara.management.domain.vo.DevelopmentOrderVo;
@@ -61,7 +62,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
             DevelopmentOrderConstants.COMPLETED,
             DevelopmentOrderConstants.CANCELLED
     );
-
+    private static final String FIELD_NAME = "fa_template_dev_order";
     private static final Map<Integer, String> SPECIAL_STATUS_FIELDS = new HashMap<>();
 
     static {
@@ -78,23 +79,44 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         addDynamicConditions(queryWrapper, bo);
 
         Page<DevelopmentOrderVo> page = developmentOrderMapper.getList(pageQuery.build(), queryWrapper);
-        // 查询备注
+        // 查询备注、日志和是否已大货
         getDevelopmentOrderRemark(page);
 
         // 获取所有状态的数量(画图中、确认中、修改中、调色中、排版中、打版中字段为:进行中/总数量、其余为:总数量)
-        Map<Integer, String> statusCount = getStatusCount(STATUS_CODES, SPECIAL_STATUS_FIELDS);
+        Map<Integer, String> statusCount = getStatusCount(STATUS_CODES, SPECIAL_STATUS_FIELDS, FIELD_NAME);
         // 组装数据返回
         return DevelopmentOrderTableDataInfo.build(page, statusCount);
     }
 
+    public void getDevelopmentOrderRemark(Page<DevelopmentOrderVo> page) {
+        page.getRecords().forEach(item -> {
+//          查询备注
+            QueryWrapper<DevelopmentOrderRemark> remarkQueryWrapper = new QueryWrapper<>();
+            remarkQueryWrapper.eq("dev_order_id", item.getId());
+            List<DevelopmentOrderRemarkVo> developmentOrderRemarkVoList = developmentOrderRemarkMapper.selectVoList(remarkQueryWrapper);
+            item.setDevelopmentOrderRemarkVoList(developmentOrderRemarkVoList);
+//          查询日志
+            QueryWrapper<DevelopOrderLogs> developOrderLogsQueryWrapper = new QueryWrapper<>();
+            developOrderLogsQueryWrapper.eq("dev_orderid", item.getId());
+            List<DevelopOrderLogsVo> developOrderLogsList = developOrderLogsMapper.selectVoList(developOrderLogsQueryWrapper);
+            item.setDevelopOrderLogsList(developOrderLogsList);
+//          判断是否为已完成状态
+            if (item.getStatus().equals(DevelopmentOrderConstants.COMPLETED)) {
+//          查询是否已大货
+                int count = developmentOrderMapper.getDevelopmentOrderIdByBulkOrder(item.getId());
+                item.setBulkOrder(count > 0);
+            }
+        });
+    }
+
     /**
      * 查询每个状态的数量
      *
      * @return
      */
-    public Map<Integer, String> getStatusCount(Set<Integer> STATUS_CODES, Map<Integer, String> SPECIAL_STATUS_FIELDS) {
+    public Map<Integer, String> getStatusCount(Set<Integer> STATUS_CODES, Map<Integer, String> SPECIAL_STATUS_FIELDS, String fieldName) {
         // 调用 Mapper 方法获取 List<Map<String, Object>>
-        List<Map<String, Object>> resultList = developmentOrderMapper.countStatusBatch(STATUS_CODES);
+        List<Map<String, Object>> resultList = developmentOrderMapper.countStatusBatch(STATUS_CODES, fieldName);
         // 将 List<Map<String, Object>> 转换为 Map<Long, Integer>
         Map<Integer, Integer> result = new HashMap<>();
         for (Integer statusCode : STATUS_CODES) {
@@ -113,8 +135,8 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
             statusCountMap.put(status, String.valueOf(baseCount));
 
             if (SPECIAL_STATUS_FIELDS.containsKey(status)) {
-                String fieldName = SPECIAL_STATUS_FIELDS.get(status);
-                int specialCount = developmentOrderMapper.getCountWithCondition(status, fieldName);
+                String fieldStatusName = SPECIAL_STATUS_FIELDS.get(status);
+                int specialCount = developmentOrderMapper.getCountWithCondition(status, fieldStatusName);
                 String combined = specialCount + "/" + baseCount;
                 statusCountMap.put(status, combined);
             }
@@ -158,7 +180,7 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
     @Transactional(rollbackFor = Exception.class)
     @Override
     public boolean insert(DevelopmentOrderBo developmentOrderBo) {
-        developmentOrderBo.setOrderNum(OrderNumberGenerator.getInstance().generateOrderNumber());
+        developmentOrderBo.setOrderNum(OrderNumberGenerator.getInstance().generateOrderNumber("KF%s%03d"));
         DevelopmentOrder developmentOrder = MapstructUtils.convert(developmentOrderBo, DevelopmentOrder.class);
         boolean flag = this.save(developmentOrder);
         if (developmentOrder != null) {
@@ -228,17 +250,6 @@ public class DevelopmentOrderServiceImpl extends ServiceImpl<DevelopmentOrderMap
         }
     }
 
-    public void getDevelopmentOrderRemark(Page<DevelopmentOrderVo> page) {
-        page.getRecords().forEach(item -> {
-//          查询备注
-            QueryWrapper<DevelopmentOrderRemark> remarkQueryWrapper = new QueryWrapper<>();
-            remarkQueryWrapper.eq("template_dev_order_id", item.getId());
-            List<DevelopmentOrderRemarkVo> developmentOrderRemarkVoList = developmentOrderRemarkMapper.selectVoList(remarkQueryWrapper);
-            item.setDevelopmentOrderRemarkVoList(developmentOrderRemarkVoList);
-        });
-
-    }
-
     /**
      * 新增开发日志
      *

+ 7 - 1
ruoyi-modules/ruoyi-developmentManagement/src/main/resources/mapper/DevelopmentOrderMapper.xml

@@ -16,7 +16,7 @@
 
     <select id="countStatusBatch" parameterType="java.util.Collection" resultMap="statusCountMap">
         SELECT `status` AS `key`, COUNT(*) AS `value`
-        FROM fa_template_dev_order
+        FROM ${fieldName}
         WHERE `status` IN
         <foreach item="status" collection="statusCodes" open="(" separator="," close=")">
             #{status}
@@ -31,4 +31,10 @@
         </if>
     </select>
 
+    <select id="getDevelopmentOrderIdByBulkOrder" resultType="int">
+        select COUNT(*)
+        from fa_template_dahuo_order
+        where dev_orderid = #{developmentOrderId}
+    </select>
+
 </mapper>