Prechádzať zdrojové kódy

pda消息对接,bug修改

huang 3 týždňov pred
rodič
commit
a45c97a1a3
23 zmenil súbory, kde vykonal 287 pridanie a 158 odobranie
  1. 2 2
      docs/new_sql.sql
  2. 4 2
      src/main/java/com/jsh/erp/constants/ExceptionConstants.java
  3. 19 6
      src/main/java/com/jsh/erp/controller/DepotItemController.java
  4. 20 13
      src/main/java/com/jsh/erp/controller/pda/PdaController.java
  5. 6 0
      src/main/java/com/jsh/erp/datasource/entities/Msg.java
  6. 3 0
      src/main/java/com/jsh/erp/datasource/pda/dto/PDATaskStocktakingItemDTO.java
  7. 3 0
      src/main/java/com/jsh/erp/datasource/pda/vo/PDADepotHeadVO.java
  8. 13 6
      src/main/java/com/jsh/erp/service/DepotHeadService.java
  9. 1 1
      src/main/java/com/jsh/erp/service/DepotItemService.java
  10. 6 0
      src/main/java/com/jsh/erp/service/MaterialBatchService.java
  11. 5 0
      src/main/java/com/jsh/erp/service/TaskStocktakingService.java
  12. 2 2
      src/main/java/com/jsh/erp/service/UserService.java
  13. 25 69
      src/main/java/com/jsh/erp/service/impl/AuditServiceImpl.java
  14. 108 33
      src/main/java/com/jsh/erp/service/impl/DepotHeadServiceImpl.java
  15. 1 1
      src/main/java/com/jsh/erp/service/impl/DepotItemServiceImpl.java
  16. 31 9
      src/main/java/com/jsh/erp/service/impl/MaterialBatchServiceImpl.java
  17. 6 0
      src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java
  18. 18 6
      src/main/java/com/jsh/erp/service/impl/TaskStocktakingServiceImpl.java
  19. 1 0
      src/main/java/com/jsh/erp/service/impl/UserServiceImpl.java
  20. 7 5
      src/main/resources/mapper_xml/DepotHeadMapper.xml
  21. 1 1
      src/main/resources/mapper_xml/MaterialMapperEx.xml
  22. 1 0
      src/main/resources/mapper_xml/MsgMapper.xml
  23. 4 2
      src/main/resources/mapper_xml/TaskStocktakingItemMapper.xml

+ 2 - 2
docs/new_sql.sql

@@ -262,7 +262,7 @@ ALTER TABLE jsh_material_extend
 ALTER TABLE jsh_material
   RENAME COLUMN system_sku TO system_spu;
 
--- 商品拓展表  删除原sku列,将bar_code改为sku
+-- 商品拓展表  修改原sku列,将bar_code改为sku
 ALTER TABLE jsh_material_extend
   RENAME COLUMN sku TO old_sku,
   RENAME COLUMN bar_code TO sku;
@@ -377,7 +377,7 @@ CREATE TABLE `material_input` (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COMMENT='商品录入表';
 
 -- 2025-06-10
--- 订单表 新增驳回原因
+-- 订单表 新增驳回原因
 ALTER TABLE jsh_depot_head
   ADD COLUMN reject VARCHAR(1000) DEFAULT NULL COMMENT '驳回原因',
   ADD COLUMN reject_time datetime DEFAULT NULL COMMENT '驳回时间';

+ 4 - 2
src/main/java/com/jsh/erp/constants/ExceptionConstants.java

@@ -479,7 +479,7 @@ public class ExceptionConstants {
     //单据录入-单据最新状态不能进行批量操作
     public static final int DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_CODE = 8500030;
     public static final String DEPOT_ITEM_EXIST_NEW_STATUS_FAILED_MSG = "抱歉,单据:%s最新状态不能进行批量操作";
-
+    //单据录入-单据不存在
     public static final int DEPOT_HEAD_NOT_EXIST_CODE = 8500031;
     public static final String DEPOT_HEAD_NOT_EXIST_MSG = "抱歉,单据不存在";
 
@@ -512,10 +512,12 @@ public class ExceptionConstants {
     //原关联单据已被修改,请重新关联
     public static final int DEPOT_ITEM_PRE_BILL_IS_CHANGE_CODE = 9000007;
     public static final String DEPOT_ITEM_PRE_BILL_IS_CHANGE_MSG = "抱歉,原关联单据已被修改,请重新关联";
-
     //单据明细-明细中生产日期格式错误
     public static final int DEPOT_ITEM_PRODUCTION_DATE_TIME_CODE = 9000008;
     public static final String DEPOT_ITEM_PRODUCTION_DATE_TIME_MSG = "抱歉,第%s行生产日期格式错误";
+    //单据明细-明细中商品条码未填写
+    public static final int DEPOT_ITEM_BARCODE_EMPTY_CODE = 9000009;
+    public static final String DEPOT_ITEM_BARCODE_EMPTY_MSG = "第%s行条码为空";
 
     /**
      *  财务信息

+ 19 - 6
src/main/java/com/jsh/erp/controller/DepotItemController.java

@@ -68,6 +68,8 @@ public class DepotItemController {
 
     @Resource
     private MaterialUnitService materialUnitService;
+    @Resource
+    private MaterialExtendService materialExtendService;
 
     @Value(value="${file.uploadType}")
     private Long fileUploadType;
@@ -1179,13 +1181,24 @@ public class DepotItemController {
                 List<Map<String, String>> detailList = new ArrayList<>();
                 for (int i = 2; i < src.getRows(); i++) {
                     String depotName = "", barCode = "",productionDate = "", num = "", unitPrice = "", taxRate = "", remark = "";
+                    barCode = ExcelUtils.getContent(src, i, 0);
+                    if (StringUtil.isEmpty(barCode)){
+                        throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_BARCODE_EMPTY_CODE,
+                                String.format(ExceptionConstants.DEPOT_ITEM_BARCODE_EMPTY_MSG, barCode));
+                    }
+                    String sku = materialExtendService.getSkuByUpc(barCode);
+                    if (StringUtil.isEmpty(sku)){
+                        throw new BusinessRunTimeException(ExceptionConstants.DEPOT_ITEM_BARCODE_IS_NOT_EXIST_CODE,
+                                String.format(ExceptionConstants.DEPOT_ITEM_BARCODE_IS_NOT_EXIST_MSG, barCode));
+                    }
+                    barCode = sku;
                     if("QGD".equals(prefixNo)) {
-                        barCode = ExcelUtils.getContent(src, i, 0);
+                        //barCode = ExcelUtils.getContent(src, i, 0);
                         num = ExcelUtils.getContent(src, i, 2);
                         remark = ExcelUtils.getContent(src, i, 3);
                     }
                     if("CGDD".equals(prefixNo) || "XSDD".equals(prefixNo)) {
-                        barCode = ExcelUtils.getContent(src, i, 0);
+                        //barCode = ExcelUtils.getContent(src, i, 0);
                         num = ExcelUtils.getContent(src, i, 2);
                         unitPrice = ExcelUtils.getContent(src, i, 3);
                         taxRate = ExcelUtils.getContent(src, i, 4);
@@ -1194,7 +1207,7 @@ public class DepotItemController {
                     if("CGRK".equals(prefixNo)) {
                         //采购入库
                         depotName = ExcelUtils.getContent(src, i, 0);
-                        barCode = ExcelUtils.getContent(src, i, 1);
+                        //barCode = ExcelUtils.getContent(src, i, 1);
                         productionDate = ExcelUtils.getContent(src, i, 3);
                         String format = "yyyy-MM-dd";
                         //校验日期格式
@@ -1210,7 +1223,7 @@ public class DepotItemController {
                     if("QTRK".equals(prefixNo)) {
                         //其他入库
                         depotName = ExcelUtils.getContent(src, i, 0);
-                        barCode = ExcelUtils.getContent(src, i, 1);
+                        //barCode = ExcelUtils.getContent(src, i, 1);
                         productionDate = ExcelUtils.getContent(src, i, 3);
                         String format = "yyyy-MM-dd";
                         //校验日期格式
@@ -1224,7 +1237,7 @@ public class DepotItemController {
                     }
                     if("XSCK".equals(prefixNo)) {
                         depotName = ExcelUtils.getContent(src, i, 0);
-                        barCode = ExcelUtils.getContent(src, i, 1);
+                        //barCode = ExcelUtils.getContent(src, i, 1);
                         num = ExcelUtils.getContent(src, i, 3);
                         unitPrice = ExcelUtils.getContent(src, i, 4);
                         taxRate = ExcelUtils.getContent(src, i, 5);
@@ -1232,7 +1245,7 @@ public class DepotItemController {
                     }
                     if("QTCK".equals(prefixNo)) {
                         depotName = ExcelUtils.getContent(src, i, 0);
-                        barCode = ExcelUtils.getContent(src, i, 1);
+                        //barCode = ExcelUtils.getContent(src, i, 1);
                         num = ExcelUtils.getContent(src, i, 3);
                         unitPrice = ExcelUtils.getContent(src, i, 4);
                         remark = ExcelUtils.getContent(src, i, 5);

+ 20 - 13
src/main/java/com/jsh/erp/controller/pda/PdaController.java

@@ -16,6 +16,7 @@ import com.jsh.erp.datasource.vo.TaskStocktakingVO;
 import com.jsh.erp.datasource.vo.TreeNode;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.query.LambdaQueryWrapperX;
+import com.jsh.erp.query.QueryWrapperX;
 import com.jsh.erp.service.*;
 import com.jsh.erp.utils.StringUtil;
 import com.jsh.erp.utils.TreeNodeUtils;
@@ -154,7 +155,6 @@ public class PdaController extends BaseController {
     @ApiOperation(value = "盘点任务详情-商品列表")
     @PostMapping("/taskStocktakingItemList")
     public TableDataInfo taskStocktakingItemList(@RequestBody PDATaskStocktakingItemDTO pdaTaskStocktakingItemDTO){
-        startPage();
         List<PDATaskStocktakingItemVO> list = taskStocktakingService.pdaItemList(pdaTaskStocktakingItemDTO);
         return getDataTable(list);
     }
@@ -206,6 +206,10 @@ public class PdaController extends BaseController {
         if (materialBatch == null) {
             return AjaxResult.error("商品信息不存在");
         }
+//        TaskStocktakingItem item = taskStocktakingItemService.getById(taskStocktakingItem.getId());
+//        if (item != null && item.getStatus() > 1){
+//            return AjaxResult.error("该商品已盘点!");
+//        }
         UpdateWrapper<TaskStocktakingItem> updateWrapper = new UpdateWrapper<>();
         updateWrapper.eq("id", taskStocktakingItem.getId())
                 .set("creator", currentUser.getId())
@@ -243,19 +247,22 @@ public class PdaController extends BaseController {
         return AjaxResult.success(spinnerVOList);
     }
 
-    /**
-     * PDA订单提交
-     */
     @PostMapping ("/orderSubmit")
     @ApiOperation(value = "订单提交")
     public AjaxResult orderSubmit(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO) {
         try {
+            long count = depotHeadService.count(new LambdaQueryWrapperX<DepotHead>()
+                    .eq(DepotHead::getLinkNumber,pdaDepotHeadDTO.getNumber())
+                    .eq(DepotHead::getDeleteFlag,false));
+            if (count > 0){
+                return AjaxResult.error("订单已提交");
+            }
             depotHeadService.pdaOrderSubmit(pdaDepotHeadDTO);
         }catch (BusinessRunTimeException e) {
             return AjaxResult.error(e.getMessage());
         }catch (Exception e) {
             e.printStackTrace();
-            return AjaxResult.error("入库失败");
+            return AjaxResult.error("提交失败");
         }
         return AjaxResult.success();
     }
@@ -371,19 +378,19 @@ public class PdaController extends BaseController {
 
     @PostMapping("/setReviewTask")
     @ApiOperation("设置复核任务状态")
-    public AjaxResult setReview(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO){
+    public AjaxResult setReviewStatus(@RequestBody PDADepotHeadDTO pdaDepotHeadDTO){
         Long userId = userService.getCurrentUser().getId();
         DepotHead depotHead = depotHeadService.getDepotHead(pdaDepotHeadDTO.getId());
+        if (!depotHead.getStatus().equals("6")){
+            return AjaxResult.error("该复核任务已被处理");
+        }
         if (depotHead.getCreator() == userId){
             return AjaxResult.error("提交人不能和复核人为同一账号");
         }
-
-        depotHeadService.update(new UpdateWrapper<DepotHead>()
-                .set("status",pdaDepotHeadDTO.getStatus())
-                .set("reject",pdaDepotHeadDTO.getReject())
-                .set("auditor",userId)
-                .set("reject_time",new Date())
-                .eq("id",pdaDepotHeadDTO.getId()));
+        boolean b = depotHeadService.setReviewStatus(pdaDepotHeadDTO);
+        if (!b){
+            return AjaxResult.error("审核失败!");
+        }
         return AjaxResult.success();
     }
 

+ 6 - 0
src/main/java/com/jsh/erp/datasource/entities/Msg.java

@@ -1,6 +1,9 @@
 package com.jsh.erp.datasource.entities;
 
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -8,6 +11,9 @@ import java.util.Date;
 @Data
 @TableName("jsh_msg")
 public class Msg {
+
+    @ApiModelProperty("主键id")
+    @TableId(type = IdType.AUTO)
     private Long id;
 
     private String msgTitle;

+ 3 - 0
src/main/java/com/jsh/erp/datasource/pda/dto/PDATaskStocktakingItemDTO.java

@@ -28,4 +28,7 @@ public class PDATaskStocktakingItemDTO {
 
     @ApiModelProperty("库位")
     private String position;
+
+    @ApiModelProperty("商品拓展id")
+    private Long materialExtendId;
 }

+ 3 - 0
src/main/java/com/jsh/erp/datasource/pda/vo/PDADepotHeadVO.java

@@ -51,4 +51,7 @@ public class PDADepotHeadVO {
     @ApiModelProperty("操作人名字")
     private String operName;
 
+    @ApiModelProperty("驳回原因")
+    private String reject;
+
 }

+ 13 - 6
src/main/java/com/jsh/erp/service/DepotHeadService.java

@@ -38,11 +38,23 @@ public interface DepotHeadService extends IService<DepotHead> {
     PDADepotHeadVO pdaDetail(Long id);
 
     /**
+     * pda订单提交
+     * @param pdaDepotHeadDTO
+     * @return
+     */
+    boolean pdaOrderSubmit(PDADepotHeadDTO pdaDepotHeadDTO) throws Exception;
+
+    /**
      * pda复核任务列表
      */
     List<PDADepotHeadVO> reviewTaskList(PDADepotHeadDTO pdaDepotHeadDTO);
 
     /**
+     * pda设置复核任务状态
+     */
+    boolean setReviewStatus(PDADepotHeadDTO pdaDepotHeadDTO);
+
+    /**
      * 根据id获取订单主表信息
      */
     DepotHead getDepotHead(long id);
@@ -217,10 +229,5 @@ public interface DepotHeadService extends IService<DepotHead> {
      */
     DepotHead getDepotLastByMaterialId(long mid);
 
-    /**
-     * pda订单提交
-     * @param pdaDepotHeadDTO
-     * @return
-     */
-    boolean pdaOrderSubmit(PDADepotHeadDTO pdaDepotHeadDTO) throws Exception;
+    void sendMsg(Long dhId);
 }

+ 1 - 1
src/main/java/com/jsh/erp/service/DepotItemService.java

@@ -89,7 +89,7 @@ public interface DepotItemService extends IService<DepotItem> {
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     int updateDepotItemWithObj(DepotItem depotItem)throws Exception;
 
-    List<DepotItem> getListByHeaderId(Long headerId)throws Exception;
+    List<DepotItem> getListByHeaderId(Long headerId);
 
     DepotItem getItemByHeaderIdAndMaterial(Long headerId, Long meId)throws Exception;
 

+ 6 - 0
src/main/java/com/jsh/erp/service/MaterialBatchService.java

@@ -22,6 +22,12 @@ public interface MaterialBatchService extends IService<MaterialBatch> {
     void generateMaterialBatchByDepotItemId(DepotItem depotItem, Long supplierId);
 
     /**
+     * 根据单据主表id生成商品批次数据(入库)
+     * @param dhId 单据主表id
+     */
+    void generateMaterialBatchByDepotHeadId(Long dhId);
+
+    /**
      * 根据单据子表id处理商品批次数据(出库)
      * @param diId 单据子表id
      */

+ 5 - 0
src/main/java/com/jsh/erp/service/TaskStocktakingService.java

@@ -71,6 +71,11 @@ public interface TaskStocktakingService extends IService<TaskStocktaking> {
      */
     TaskStocktakingVO pdaDetail(Long id) throws Exception;
 
+    /**
+     * PDA-盘点任务详情-商品列表
+     * @param pdaTaskStocktakingItemDTO
+     * @return
+     */
     List<PDATaskStocktakingItemVO> pdaItemList(PDATaskStocktakingItemDTO pdaTaskStocktakingItemDTO);
 
 

+ 2 - 2
src/main/java/com/jsh/erp/service/UserService.java

@@ -104,9 +104,9 @@ public interface UserService extends IService<User> {
     int weixinBind(String loginName, String password, String weixinCode) throws Exception;
 
     /**
-     * 根据用户id回去审批用户id
+     * 根据用户id获取领导审批用户id
      * @param uid 用户id
-     * @param isParent 是否查询级 true查询,false不查询
+     * @param isParent 是否查询上一级 true查询,false不查询
      * @return
      */
     Long getAuditUserIds(Long uid, boolean isParent);

+ 25 - 69
src/main/java/com/jsh/erp/service/impl/AuditServiceImpl.java

@@ -2,7 +2,6 @@ package com.jsh.erp.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jsh.erp.constants.BusinessConstants;
 import com.jsh.erp.constants.ExceptionConstants;
 import com.jsh.erp.datasource.dto.AuditDTO;
 import com.jsh.erp.datasource.dto.AuditQueryDTO;
@@ -18,7 +17,6 @@ import com.jsh.erp.datasource.vo.AuditNodeVo;
 import com.jsh.erp.datasource.vo.AuditVo;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.query.LambdaQueryWrapperX;
-import com.jsh.erp.query.QueryWrapperX;
 import com.jsh.erp.service.*;
 import com.jsh.erp.utils.PageUtils;
 import lombok.RequiredArgsConstructor;
@@ -46,8 +44,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
 
     private final DepotHeadService depotHeadService;
 
-    private final DepotItemService depotItemService;
-
     private final UserService userService;
 
     private final MaterialBatchService materialBatchService;
@@ -58,7 +54,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
     @Resource
     private MaterialService materialService;
 
-
     /**
      * 根据审核业务单号和类型生成审核实例及节点实例
      * @param businessNumber 业务单号
@@ -67,7 +62,7 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     public boolean generateAuditByItemId(String businessNumber, String type) {
         try {
-            //获取失败审核
+            //针对重新提交申请,获取失败审核
             Audit a = getOne(new LambdaQueryWrapperX<Audit>()
                     .eq(Audit::getBusinessNumber,businessNumber)
                     .eq(Audit::getAuditStatus,2)
@@ -76,7 +71,7 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
                 //删除审核
                 update(new UpdateWrapper<Audit>().set("delete_flag",true).eq("id",a.getId()));
             }
-            //业务id
+            //获取业务id
             Long bid = null;
             if (type.equals("盘点任务")){
                 bid = taskStocktakingService.getOne(new LambdaQueryWrapperX<TaskStocktaking>().eq(TaskStocktaking::getNumber,businessNumber)).getId();
@@ -85,7 +80,7 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
             }else {
                 bid = depotHeadService.getDepotHead(businessNumber).getId();
             }
-
+            //获取审核流程
             AuditProcess auditProcess = auditProcessService.getOne(new LambdaQueryWrapperX<AuditProcess>()
                     .eq(AuditProcess::getType, type)
                     .eq(AuditProcess::getDeleteFlag, false));
@@ -109,15 +104,8 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
                 AuditNode auditNode = buildAuditNode(audit.getId(), auditNodeConfig, user);
                 auditNodeMapper.insert(auditNode);
             } else {
-                //无审核流程,算审核通过
-                if (type.equals("盘点任务")){
-                    taskStocktakingService.update(new UpdateWrapper<TaskStocktaking>().set("task_status",1).eq("id",bid));
-                }else if (type.equals("pda维护商品")){
-                    materialInputService.update(new UpdateWrapper<MaterialInput>().set("status",1).eq("id",bid));
-                }else {
-                    //处理单据数据
-                    depotHeadApproved(bid);
-                }
+                //无审核流程,直接通过
+                approved(bid,type);
             }
         } catch (Exception e) {
             log.error("创建审核流程失败", e);
@@ -143,8 +131,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
 
     /**
      * 待我审批数量
-     *
-     * @return
      */
     @Override
     public Long pendingApprovalCount() {
@@ -198,7 +184,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
     @Override
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     public boolean setStatus(AuditDTO auditDTO) {
-
         User user = userService.getCurrentUser();
         //获取当前审核节点
         AuditNode auditNode = auditNodeMapper.selectOne(new LambdaQueryWrapperX<AuditNode>()
@@ -222,30 +207,22 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
                 //无下一节点,审核阶段结束,修改对应审核内容状态
                 //修改审核状态
                 this.update(new UpdateWrapper<Audit>().set("audit_status", 1).eq("id", auditDTO.getId()));
-                //生成批次信息
                 Audit audit = auditMapper.selectById(auditDTO.getId());
-                Long dhId = audit.getBusinessId();
-                if (audit.getType().equals("盘点任务")){
-                    taskStocktakingService.update(new UpdateWrapper<TaskStocktaking>().set("task_status",1).eq("id",dhId));
-                }else if (audit.getType().equals("pda维护商品")){
-                    materialInputService.update(new UpdateWrapper<MaterialInput>().set("status",1).eq("id",dhId));
-                    materialInputApproved(dhId);
-                }else {
-                    depotHeadApproved(dhId);
-                }
+                approved(audit.getBusinessId(),audit.getType());
             }
-        } else {  //审批未通过
+        } else {
+            //审批未通过
             //修改审核状态
             this.update(new UpdateWrapper<Audit>().set("audit_status", 2).eq("id", auditDTO.getId()));
             //修改单据状态
             Audit audit = auditMapper.selectById(auditDTO.getId());
-            Long dhId = audit.getBusinessId();
+            Long businessId = audit.getBusinessId();
             if (audit.getType().equals("盘点任务")){
-                taskStocktakingService.update(new UpdateWrapper<TaskStocktaking>().set("task_status",8).eq("id",dhId));
+                taskStocktakingService.update(new UpdateWrapper<TaskStocktaking>().set("task_status",8).eq("id",businessId));
             }else if (audit.getType().equals("pda维护商品")){
-                materialInputService.update(new UpdateWrapper<MaterialInput>().set("status",8).eq("id",dhId));
+                materialInputService.update(new UpdateWrapper<MaterialInput>().set("status",8).eq("id",businessId));
             }else {
-                depotHeadService.update(new UpdateWrapper<DepotHead>().set("status", 8).eq("id", dhId));
+                depotHeadService.update(new UpdateWrapper<DepotHead>().set("status", 8).eq("id", businessId));
             }
         }
         return true;
@@ -261,7 +238,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
         return list;
     }
 
-
     /**
      * 根据节点配置构建审核节点实例
      * @param aid             审核id
@@ -299,26 +275,20 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
     }
 
     /**
-     * 单据审核通过 处理批次信息
-     * @param id 单据主表id
+     * 审批通过,处理对应业务
+     * @param businessId 业务id
+     * @param type 业务类型
      */
-    private void depotHeadApproved(Long id) {
-        DepotHead depotHead = depotHeadService.getDepotHead(id);
-        depotHeadService.update(new UpdateWrapper<DepotHead>().set("status", 1).eq("id", id));
-        List<DepotItem> list = depotItemService.list(new LambdaQueryWrapperX<DepotItem>().eq(DepotItem::getHeaderId, id));
-        //处理批次商品信息
-        if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())) {
-            for (DepotItem depotItem : list) {
-                //表单入库,新增批次商品信息
-                materialBatchService.generateMaterialBatchByDepotItemId(depotItem, depotHead.getOrganId());
-                //更新当前库存
-                depotItemService.updateCurrentStock(depotItem);
-            }
-        } else if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())) {
-            for (DepotItem depotItem : list) {
-                //表单出库,修改商品库存
-                materialBatchService.handleMaterialBatchByDepotItemId(depotItem.getId());
-            }
+    private void approved(Long businessId, String type) {
+        if (type.equals("盘点任务")){
+            taskStocktakingService.update(new UpdateWrapper<TaskStocktaking>().set("task_status",1).eq("id",businessId));
+        }else if (type.equals("pda维护商品")){
+            materialInputService.update(new UpdateWrapper<MaterialInput>().set("status",1).eq("id",businessId));
+            materialInputApproved(businessId);
+        }else {
+            //单据处理
+            depotHeadService.update(new UpdateWrapper<DepotHead>().set("status", 1).eq("id", businessId));
+            materialBatchService.generateMaterialBatchByDepotHeadId(businessId);
         }
     }
 
@@ -364,20 +334,6 @@ public class AuditServiceImpl extends ServiceImpl<AuditMapper, Audit> implements
         initialStockList.add(materialInitialStock);
         materialDTO.setStock(initialStockList);
         materialService.insertMaterial(materialDTO,null);
-        //处理批次商品信息
-//        if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())) {
-//            for (DepotItem depotItem : list) {
-//                //表单入库,新增批次商品信息
-//                materialBatchService.generateMaterialBatchByDepotItemId(depotItem, depotHead.getOrganId());
-//                //更新当前库存
-//                depotItemService.updateCurrentStock(depotItem);
-//            }
-//        } else if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())) {
-//            for (DepotItem depotItem : list) {
-//                //表单出库,修改商品库存
-//                materialBatchService.handleMaterialBatchByDepotItemId(depotItem.getId());
-//            }
-//        }
     }
 
 }

+ 108 - 33
src/main/java/com/jsh/erp/service/impl/DepotHeadServiceImpl.java

@@ -93,6 +93,8 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
     private MaterialCategoryService materialCategoryService;
     @Resource
     private AuditService auditService;
+    @Resource
+    private MsgService msgService;
 
     /**
      * PDA查询订单
@@ -121,6 +123,62 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
     }
 
     /**
+     * pda设置复核任务状态
+     */
+    @Override
+    @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+    public boolean setReviewStatus(PDADepotHeadDTO pdaDepotHeadDTO) {
+        try{
+            User user = userService.getCurrentUser();
+            DepotHead head = getOne(new LambdaQueryWrapperX<DepotHead>().eq(DepotHead::getLinkNumber,pdaDepotHeadDTO.getNumber()).eq(DepotHead::getDeleteFlag,false));
+            if (pdaDepotHeadDTO.getStatus().equals("2")){
+                //复核成功
+                update(new UpdateWrapper<DepotHead>().set("status","2").eq("id",head.getId()));
+                //生成批次
+                List<DepotItem> list = depotItemService.list(new LambdaQueryWrapperX<DepotItem>().eq(DepotItem::getHeaderId, head.getId()));
+                //处理批次商品信息
+                if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(head.getType())) {
+                    for (DepotItem depotItem : list) {
+                        //表单入库,新增批次商品信息
+                        materialBatchService.generateMaterialBatchByDepotItemId(depotItem, head.getOrganId());
+                        //更新当前库存
+                        depotItemService.updateCurrentStock(depotItem);
+                    }
+                } else if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(head.getType())) {
+                    for (DepotItem depotItem : list) {
+                        //表单出库,修改商品库存
+                        materialBatchService.handleMaterialBatchByDepotItemId(depotItem.getId());
+                    }
+                }
+            }else {
+                //复核驳回
+                //删除对应的出入库订单
+                depotItemService.deleteDepotItemHeadId(head.getId());
+                update(new UpdateWrapper<DepotHead>().set("delete_flag","1").eq("id",head.getId()));
+                //发送消息
+                Msg msg = new Msg();
+                msg.setMsgTitle(pdaDepotHeadDTO.getId().toString());
+                msg.setMsgContent(String.format("您的订单任务: %s 已驳回,请重新核对并提交",pdaDepotHeadDTO.getNumber()));
+                msg.setCreateTime(new Date());
+                msg.setType("复核任务");
+                msg.setUserId(head.getCreator());
+                msg.setStatus(1);
+                msgService.save(msg);
+            }
+            this.update(new UpdateWrapper<DepotHead>()
+                    .set("status",pdaDepotHeadDTO.getStatus())
+                    .set("reject",pdaDepotHeadDTO.getReject())
+                    .set("auditor",user.getId())
+                    .set("reject_time",new Date())
+                    .eq("id",pdaDepotHeadDTO.getId()));
+        }catch (Exception e){
+            logger.info("复核任务设置失败!",e);
+            return false;
+        }
+        return true;
+    }
+
+    /**
      * 根据id获取订单主表信息
      */
     @Override
@@ -1925,7 +1983,6 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
 
     /**
      * pda订单提交
-     *
      * @param pdaDepotHeadDTO
      * @return
      */
@@ -1979,7 +2036,7 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
         //创建时间
         depotHead.setCreateTime(new Timestamp(System.currentTimeMillis()));
         //操作人
-        depotHead.setOperId(userInfo==null?null:userInfo.getId());
+        depotHead.setOperId(userInfo == null ? null : userInfo.getId());
         //单据时间
         depotHead.setOperTime(new Timestamp(System.currentTimeMillis()));
         if(StringUtil.isEmpty(depotHead.getStatus())) {
@@ -2068,28 +2125,29 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             depotItem.setProductionDate(materialMap.get(barCode).getProductionDate());
             depotItem.setPosition(materialMap.get(barCode).getPosition());
             //以下进行单位换算
-            Unit unitInfo = materialService.findUnit(depotItem.getMaterialId()); //查询多单位信息
+//            Unit unitInfo = materialService.findUnit(depotItem.getMaterialId()); //查询多单位信息
             if (StringUtil.isExist(depotItem.getOperNumber())) {
                 //获取子表单商品单位
-                String unit =depotItem.getMaterialUnit();
+//                String unit =depotItem.getMaterialUnit();
                 BigDecimal oNumber = depotItem.getOperNumber();
+                depotItem.setBasicNumber(oNumber); //其他情况
                 //设置基础数量
-                if (StringUtil.isNotEmpty(unitInfo.getName())) {
-                    String basicUnit = unitInfo.getBasicUnit(); //基本单位
-                    if (unit.equals(basicUnit)) { //如果等于基本单位
-                        depotItem.setBasicNumber(oNumber); //数量一致
-                    } else if (unit.equals(unitInfo.getOtherUnit())) { //如果等于副单位
-                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatio())); //数量乘以比例
-                    } else if (unit.equals(unitInfo.getOtherUnitTwo())) { //如果等于副单位2
-                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioTwo())); //数量乘以比例
-                    } else if (unit.equals(unitInfo.getOtherUnitThree())) { //如果等于副单位3
-                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioThree())); //数量乘以比例
-                    } else {
-                        depotItem.setBasicNumber(oNumber); //数量一致
-                    }
-                } else {
-                    depotItem.setBasicNumber(oNumber); //其他情况
-                }
+//                if (StringUtil.isNotEmpty(unitInfo.getName())) {
+//                    String basicUnit = unitInfo.getBasicUnit(); //基本单位
+//                    if (unit.equals(basicUnit)) { //如果等于基本单位
+//                        depotItem.setBasicNumber(oNumber); //数量一致
+//                    } else if (unit.equals(unitInfo.getOtherUnit())) { //如果等于副单位
+//                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatio())); //数量乘以比例
+//                    } else if (unit.equals(unitInfo.getOtherUnitTwo())) { //如果等于副单位2
+//                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioTwo())); //数量乘以比例
+//                    } else if (unit.equals(unitInfo.getOtherUnitThree())) { //如果等于副单位3
+//                        depotItem.setBasicNumber(oNumber.multiply(unitInfo.getRatioThree())); //数量乘以比例
+//                    } else {
+//                        depotItem.setBasicNumber(oNumber); //数量一致
+//                    }
+//                } else {
+//                    depotItem.setBasicNumber(oNumber); //其他情况
+//                }
             }
             User user = userService.getCurrentUser();
             depotItem.setWarehousingUser(user.getId());
@@ -2100,25 +2158,17 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             depotItem.setTaxLastMoney(depotItem.getAllPrice().add(depotItem.getTaxMoney()));
             //添加单据子表
             depotItemService.insertDepotItemWithObj(depotItem);
-//            if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())){
-//                //表单入库,新增批次商品信息
-//                materialBatchService.generateMaterialBatchByDepotItemId(depotItem,depotHead.getOrganId());
-//            }else if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
-//                //表单出库,修改商品库存
-//                //materialExtend.setInventory(materialExtend.getInventory().subtract(depotItem.getBasicNumber()));
-//                materialBatchService.handleMaterialBatchByDepotItemId(depotItem.getId());
-//            }
             //更新当前库存
             depotItemService.updateCurrentStock(depotItem);
             //更新当前成本价
             depotItemService.updateCurrentUnitPrice(depotItem);
             //修改商品生产日期
-            //materialExtendService.update(new UpdateWrapper<MaterialExtend>().set("production_date",materialMap.get(batchNumber).getProductionDate()).eq("id", materialExtend.getId()));
+            //materialExtendService.update(new UpdateWrapper<MaterialExtend>().set("production_date",materialMap.get(sku).getProductionDate()).eq("id", materialExtend.getId()));
         }
         //修改订单总额
         updateTotalPriceById(depotHead);
         //修改采购订单状态、操作人、操作时间,数额
-        this.update(new UpdateWrapper<DepotHead>().set("status", "6").set("oper_id",userInfo.getId()).set("submit_time",new Date()).eq("id", pdaDepotHeadDTO.getId()));
+        this.update(new UpdateWrapper<DepotHead>().set("status", "6").set("oper_id",userInfo.getId()).set("submit_time",new Date()).set("reject",null).set("reject_time",null).set("auditor",null).eq("id", pdaDepotHeadDTO.getId()));
         return true;
     }
 
@@ -2141,12 +2191,11 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             if (depotHead.getTotalPrice().compareTo(BigDecimal.ZERO) < 0){
                 totalPrice = totalPrice.negate();
             }
-            this.update(new UpdateWrapper<DepotHead>().set("total_price",totalPrice).set("discount_last_money",sum).eq("id",depotHead.getId()));
+            this.update(new UpdateWrapper<DepotHead>().set("total_price",totalPrice).set("change_amount",totalPrice).set("discount_last_money",sum).eq("id",depotHead.getId()));
     }
 
-
     /**
-     * 订单审核审核
+     * 订单申请审核
      * @param depotHead 订单数据
      */
     private void applyAudit(DepotHead depotHead){
@@ -2159,4 +2208,30 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
         }
     }
 
+    /**
+     * 采购、销售订单发送消息
+     */
+    @Override
+    public void sendMsg(Long dhId){
+        DepotHead depotHead = this.getDepotHead(dhId);
+        //获取所有用户
+        List<User> userList = userService.list(new LambdaQueryWrapperX<User>().eq(User::getDeleteFlag,false));
+        List<Msg> msgList = new ArrayList<>();
+        userList.forEach(v ->{
+            Msg msg = new Msg();
+            msg.setMsgTitle(v.getId().toString());
+            if (depotHead.getSubType().equals("采购订单")){
+                msg.setMsgContent(String.format("您有一条新的入库任务(单号:%s)请点击查看并及时处理!",depotHead.getNumber()));
+            }else {
+                msg.setMsgContent(String.format("您有一条新的拣货任务(单号:%s)请点击查看并及时处理",depotHead.getNumber()));
+            }
+            msg.setCreateTime(new Date());
+            msg.setType("复核任务");
+            msg.setUserId(v.getId());
+            msg.setStatus(1);
+            msgList.add(msg);
+        });
+        msgService.saveBatch(msgList);
+    }
+
 }

+ 1 - 1
src/main/java/com/jsh/erp/service/impl/DepotItemServiceImpl.java

@@ -342,7 +342,7 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
     }
 
     @Override
-    public List<DepotItem> getListByHeaderId(Long headerId)throws Exception {
+    public List<DepotItem> getListByHeaderId(Long headerId) {
         List<DepotItem> list =null;
         try{
             DepotItemExample example = new DepotItemExample();

+ 31 - 9
src/main/java/com/jsh/erp/service/impl/MaterialBatchServiceImpl.java

@@ -2,6 +2,7 @@ package com.jsh.erp.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.jsh.erp.constants.BusinessConstants;
 import com.jsh.erp.constants.ExceptionConstants;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.MaterialBatchMapper;
@@ -10,7 +11,6 @@ import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
 import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.exception.JshException;
 import com.jsh.erp.query.LambdaQueryWrapperX;
-import com.jsh.erp.query.QueryWrapperX;
 import com.jsh.erp.service.*;
 import com.jsh.erp.utils.DateUtils;
 import com.jsh.erp.utils.RandomHelper;
@@ -32,28 +32,23 @@ public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,Ma
 
     @Resource
     private MaterialBatchMapper materialBatchMapper;
-
     @Resource
     private UserService userService;
-
     @Resource
     private DepotItemService depotItemService;
-
     @Resource
     private MaterialExtendService materialExtendService;
-
     @Resource
     private InventoryLogService inventoryLogService;
-
     @Resource
     private MaterialInitialStockMapper materialInitialStockMapper;
-
+    @Resource
+    private DepotHeadService depotHeadService;
 
     /**
-     * 根据单据子表id生成商品批次数据
+     * 根据单据子表生成商品批次数据
      */
     @Override
-    @Transactional(value = "transactionManager", rollbackFor = Exception.class)
     public void generateMaterialBatchByDepotItemId(DepotItem depotItem, Long supplierId) {
         //获取条码信息
         MaterialExtend materialExtend = materialExtendService.getMaterialExtend(depotItem.getMaterialExtendId());
@@ -97,6 +92,33 @@ public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,Ma
     }
 
     /**
+     * 根据单据主表id生成商品批次数据(入库)
+     * @param dhId 单据主表id
+     */
+    @Override
+    @Transactional(value = "transactionManager", rollbackFor = Exception.class)
+    public void generateMaterialBatchByDepotHeadId(Long dhId) {
+        DepotHead depotHead = depotHeadService.getDepotHead(dhId);
+        List<DepotItem> list = depotItemService.list(new LambdaQueryWrapperX<DepotItem>().eq(DepotItem::getHeaderId, dhId));
+        //处理批次商品信息
+        if (BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())) {
+            for (DepotItem depotItem : list) {
+                //表单入库,新增批次商品信息
+                this.generateMaterialBatchByDepotItemId(depotItem, depotHead.getOrganId());
+                //更新当前库存
+                depotItemService.updateCurrentStock(depotItem);
+            }
+            depotHeadService.update(new UpdateWrapper<DepotHead>().set("status",2).eq("id",dhId));
+        } else if (BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())) {
+            for (DepotItem depotItem : list) {
+                //表单出库,修改商品库存
+                this.handleMaterialBatchByDepotItemId(depotItem.getId());
+            }
+            depotHeadService.update(new UpdateWrapper<DepotHead>().set("status",2).eq("id",dhId));
+        }
+    }
+
+    /**
      * 根据单据子表id处理商品批次数据(出库)
      */
     @Override

+ 6 - 0
src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

@@ -2157,6 +2157,12 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
         if (StringUtil.isNotEmpty(pdaInventoryDTO.getPosition())){
             pdaInventoryDTO.setMaterialIds(materialInitialStockMapper.selectMaterialIdByPosition(pdaInventoryDTO.getPosition()));
         }
+        if (StringUtil.isNotEmpty(pdaInventoryDTO.getKeyword())){
+            String sku = materialExtendMapper.getSkuByUpc(pdaInventoryDTO.getKeyword());
+            if (StringUtil.isNotEmpty(sku)){
+                pdaInventoryDTO.setKeyword(sku);
+            }
+        }
         PageUtils.startPage();
         List<PDADepotItemVO> list = materialMapper.inventoryInquiryList(pdaInventoryDTO);
         return list;

+ 18 - 6
src/main/java/com/jsh/erp/service/impl/TaskStocktakingServiceImpl.java

@@ -2,7 +2,6 @@ package com.jsh.erp.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.jsh.erp.constants.ExceptionConstants;
 import com.jsh.erp.datasource.dto.TaskStocktakingDTO;
 import com.jsh.erp.datasource.dto.TaskStocktakingItemQueryDTO;
 import com.jsh.erp.datasource.dto.TaskStocktakingQueryDTO;
@@ -13,9 +12,10 @@ import com.jsh.erp.datasource.pda.vo.PDATaskStocktakingItemVO;
 import com.jsh.erp.datasource.pda.vo.PDATaskStocktakingVO;
 import com.jsh.erp.datasource.vo.TaskStocktakingItemVO;
 import com.jsh.erp.datasource.vo.TaskStocktakingVO;
-import com.jsh.erp.exception.BusinessRunTimeException;
 import com.jsh.erp.query.LambdaQueryWrapperX;
 import com.jsh.erp.service.*;
+import com.jsh.erp.utils.PageUtils;
+import com.jsh.erp.utils.StringUtil;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -36,11 +36,12 @@ import java.util.stream.Collectors;
 @Slf4j
 public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMapper, TaskStocktaking> implements TaskStocktakingService {
 
-
     private final MaterialExtendMapper materialExtendMapper;
 
     private final UserMapper userMapper;
 
+    private final DepotMapper depotMapper;
+
     private final DepotService depotService;
 
     private final TaskStocktakingItemMapper taskStocktakingItemMapper;
@@ -57,6 +58,8 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
 
     private final AuditService auditService;
 
+    private final MaterialUpcMapper materialUpcMapper;
+
     @Override
     public List<TaskStocktakingVO> listBy(TaskStocktakingQueryDTO taskStocktakingQueryDTO) {
         return taskStocktakingMapper.listBy(taskStocktakingQueryDTO);
@@ -101,7 +104,7 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
             taskStocktakingDTO.setCreateBy(currentUser.getId());
             taskStocktakingDTO.setCreateTime(new Date());
             //生成单据编号
-            taskStocktakingDTO.setNumber("PDRW"+sequenceService.buildOnlyNumber());
+            taskStocktakingDTO.setNumber("PDRW" + sequenceService.buildOnlyNumber());
             //生成任务
             this.save(taskStocktakingDTO);
             //生成任务明细
@@ -150,7 +153,7 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
             taskStocktakingVO.setOperByName(user2.getUsername());
         }
         //获取仓库名称
-        Depot depot = depotService.getDepot(one.getDepotId());
+        Depot depot = depotMapper.selectById(one.getDepotId());
         taskStocktakingVO.setDepotName(depot.getName());
         //当任务类型是抽盘时,返回商品盘点信息
         return taskStocktakingVO;
@@ -181,7 +184,7 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
             taskStocktakingVO.setOperByName(user2.getUsername());
         }
         //获取仓库名称
-        Depot depot = depotService.getDepot(one.getDepotId());
+        Depot depot = depotMapper.selectById(one.getDepotId());
         taskStocktakingVO.setDepotName(depot.getName());
         //当任务类型是抽盘时,返回商品盘点信息
         return taskStocktakingVO;
@@ -330,6 +333,15 @@ public class TaskStocktakingServiceImpl extends ServiceImpl<TaskStocktakingMappe
 
     @Override
     public List<PDATaskStocktakingItemVO> pdaItemList(PDATaskStocktakingItemDTO pdaTaskStocktakingItemDTO) {
+        if (StringUtil.isNotEmpty(pdaTaskStocktakingItemDTO.getNumber())){
+            MaterialUpc upc = materialUpcMapper.selectOne(new LambdaQueryWrapperX<MaterialUpc>()
+                    .eq(MaterialUpc::getUpc,pdaTaskStocktakingItemDTO.getNumber())
+                    .eq(MaterialUpc::getDeleteFlag,false));
+            if (upc != null && upc.getMaterialExtendId() != null){
+                pdaTaskStocktakingItemDTO.setMaterialExtendId(upc.getMaterialExtendId());
+            }
+        }
+        PageUtils.startPage();
         return taskStocktakingItemMapper.pdaList(pdaTaskStocktakingItemDTO);
     }
 

+ 1 - 0
src/main/java/com/jsh/erp/service/impl/UserServiceImpl.java

@@ -389,6 +389,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
                     ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest());
             data.put("token", token);
             data.put("user", user);
+            data.put("roleName",userService.getRoleTypeByUserId(user.getId()).getName());
             data.put("pwdSimple", pwdSimple);
         }
         return data;

+ 7 - 5
src/main/resources/mapper_xml/DepotHeadMapper.xml

@@ -776,7 +776,8 @@
       dh.oper_time,
       s.supplier AS supplier_name,
       dh.status,
-      dh.receiver_address
+      dh.receiver_address,
+      dh.reject
     FROM
       jsh_depot_head dh
       LEFT JOIN jsh_supplier s ON dh.organ_id = s.id
@@ -812,7 +813,8 @@
       dh.goods_type_count,
       dh.oper_time,
       s.supplier AS supplier_name,
-      dh.status
+      dh.status,
+      dh.reject
     FROM
       jsh_depot_head dh
       LEFT JOIN jsh_supplier s ON dh.organ_id = s.id
@@ -832,7 +834,7 @@
     s.supplier AS supplier_name,
     dh.status,
     dh.receiver_address,
-    dh.type,
+    dh.sub_type AS type,
     dh.oper_id,
     u.username AS 'operName',
     dh.reject
@@ -840,8 +842,8 @@
     LEFT JOIN jsh_supplier s ON dh.organ_id = s.id
     LEFT JOIN jsh_user u ON dh.oper_id = u.id
     <where>
-      (dh.sub_type = '采购' OR dh.sub_type = '销售')
-      AND dh.delete_flag = 0 AND dh.status != '9' AND dh.status != '8'
+      (dh.sub_type = '采购订单' OR dh.sub_type = '销售订单')
+      AND dh.delete_flag = 0 AND dh.status IN ('2','6','7')
       <if test="number != null and number != ''">
         AND dh.number like CONCAT('%',#{number},'%')
       </if>

+ 1 - 1
src/main/resources/mapper_xml/MaterialMapperEx.xml

@@ -950,7 +950,7 @@
     </select>
 
     <select id="pdaPrintMaterial" parameterType="java.lang.Long" resultType="com.jsh.erp.datasource.pda.vo.PDAPrintVo">
-        SELECT s.supplier customerName,dh.number,m.system_sku barCode,mb.batch_number
+        SELECT s.supplier customerName,dh.number,m.system_spu barCode,mb.batch_number
         FROM
         jsh_depot_item di
         LEFT JOIN jsh_depot_head dh ON di.header_id = dh.id

+ 1 - 0
src/main/resources/mapper_xml/MsgMapper.xml

@@ -285,6 +285,7 @@
     WHERE
     user_id = #{uid}
     AND IFNULL(delete_Flag,'0') != '1'
+    ORDER BY create_time DESC
   </select>
 
 </mapper>

+ 4 - 2
src/main/resources/mapper_xml/TaskStocktakingItemMapper.xml

@@ -27,12 +27,14 @@
         <where>
             tsi.delete_flag = 0
             AND tsi.task_stocktaking_id = #{taskId}
-            <if test="number != null and number != ''">
+            <if test="number != null and number != '' and materialExtendId == null">
                 AND (m.name LIKE CONCAT('%',#{number},'%')
-                OR me.bar_code LIKE CONCAT('%',#{number},'%')
                 OR me.position LIKE CONCAT('%',#{number},'%')
                 OR m.system_spu LIKE CONCAT('%',#{number},'%'))
             </if>
+            <if test="materialExtendId != null">
+                AND me.material_extend_id = #{materialExtendId}
+            </if>
             <if test="userIdList != null and userIdList.size > 0">
                 AND tsi.creator IN
                 <foreach collection="userIdList" item="item" open="(" separator="," close=")">