Browse Source

报损开发

yzc 1 year ago
parent
commit
52c5583822

+ 5 - 0
hx-iot/src/main/java/com/fjhx/iot/entity/tda/vo/TdaDeviceVo.java

@@ -47,4 +47,9 @@ public class TdaDeviceVo extends TdaDevice {
      */
     private Map<String, Object> other;
 
+    /**
+     * 归属公司名称
+     */
+    private String companyName;
+
 }

+ 11 - 0
hx-iot/src/main/java/com/fjhx/iot/service/tda/impl/TdaDeviceServiceImpl.java

@@ -11,6 +11,7 @@ import com.fjhx.iot.entity.tda.po.TdaDevice;
 import com.fjhx.iot.entity.tda.vo.TdaDeviceVo;
 import com.fjhx.iot.mapper.tda.TdaDeviceMapper;
 import com.fjhx.iot.service.tda.TdaDeviceService;
+import com.fjhx.tenant.utils.DeptUstil;
 import com.ruoyi.common.core.redis.RedisCache;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
@@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
+import java.util.Map;
 import java.util.Objects;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -61,6 +63,15 @@ public class TdaDeviceServiceImpl extends ServiceImpl<TdaDeviceMapper, TdaDevice
             return page;
         }
 
+        //获取生产公司信息
+        List<Long> companyIds = records.stream().map(TdaDevice::getCompanyId).collect(Collectors.toList());
+        Map<Long, String> companyNameMap = DeptUstil.getDeptNameMap(companyIds);
+
+        for (TdaDeviceVo record : records) {
+            //赋值生产公司名称
+            record.setCompanyName(companyNameMap.get(record.getCompanyId()));
+        }
+
 //        for (TdaDeviceVo record : records) {
 //
 //            HashMap<String, Object> other = new HashMap<>();

+ 71 - 0
hx-mes/src/main/java/com/fjhx/mes/controller/report/ReportLossesDetailsController.java

@@ -0,0 +1,71 @@
+package com.fjhx.mes.controller.report;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsDto;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsSelectDto;
+import com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo;
+import com.fjhx.mes.service.report.ReportLossesDetailsService;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+
+/**
+ * <p>
+ * 报损管理 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@RestController
+@RequestMapping("/reportLossesDetails")
+public class ReportLossesDetailsController {
+
+    @Autowired
+    private ReportLossesDetailsService reportLossesDetailsService;
+
+    /**
+     * 报损管理分页
+     */
+    @PostMapping("/page")
+    public Page<ReportLossesDetailsVo> page(@RequestBody ReportLossesDetailsSelectDto dto) {
+        return reportLossesDetailsService.getPage(dto);
+    }
+
+    /**
+     * 报损管理明细
+     */
+    @PostMapping("/detail")
+    public ReportLossesDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return reportLossesDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 报损管理新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody ReportLossesDetailsDto reportLossesDetailsDto) {
+        reportLossesDetailsService.add(reportLossesDetailsDto);
+    }
+
+    /**
+     * 报损管理编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody ReportLossesDetailsDto reportLossesDetailsDto) {
+        reportLossesDetailsService.edit(reportLossesDetailsDto);
+    }
+
+    /**
+     * 报损管理删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        reportLossesDetailsService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/dto/ReportLossesDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.report.dto;
+
+import com.fjhx.mes.entity.report.po.ReportLossesDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 报损管理新增编辑入参实体
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@Getter
+@Setter
+public class ReportLossesDetailsDto extends ReportLossesDetails {
+
+}

+ 17 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/dto/ReportLossesDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.mes.entity.report.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 报损管理列表查询入参实体
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@Getter
+@Setter
+public class ReportLossesDetailsSelectDto extends BaseSelectDto {
+
+}

+ 53 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/po/ReportLossesDetails.java

@@ -0,0 +1,53 @@
+package com.fjhx.mes.entity.report.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 报损管理
+ * </p>
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@Getter
+@Setter
+@TableName("report_losses_details")
+public class ReportLossesDetails extends BasePo {
+
+    /**
+     * 类型 0补单1丢失
+     */
+    private Integer type;
+
+    /**
+     * 生产订单id
+     */
+    private Long prodOrderId;
+
+    /**
+     * 物料id
+     */
+    private Long materialId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 责任人id逗号分隔
+     */
+    private String respUserSet;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 36 - 0
hx-mes/src/main/java/com/fjhx/mes/entity/report/vo/ReportLossesDetailsVo.java

@@ -0,0 +1,36 @@
+package com.fjhx.mes.entity.report.vo;
+
+import com.fjhx.mes.entity.report.po.ReportLossesDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 报损管理列表查询返回值实体
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@Getter
+@Setter
+public class ReportLossesDetailsVo extends ReportLossesDetails {
+
+    /**
+     * 物品名称
+     */
+    private String materialName;
+    /**
+     * 物品编号
+     */
+    private String materialCode;
+
+    /**
+     * 生产订单号
+     */
+    private String prodOrderCode;
+
+    /**
+     * 负责人
+     */
+    private String respUserName;
+
+}

+ 26 - 0
hx-mes/src/main/java/com/fjhx/mes/mapper/report/ReportLossesDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.mes.mapper.report;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.report.po.ReportLossesDetails;
+import com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 报损管理 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2024-01-26
+ */
+public interface ReportLossesDetailsMapper extends BaseMapper<ReportLossesDetails> {
+
+    /**
+     * 报损管理分页
+     */
+    Page<ReportLossesDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<ReportLossesDetails> wrapper);
+
+}

+ 45 - 0
hx-mes/src/main/java/com/fjhx/mes/service/report/ReportLossesDetailsService.java

@@ -0,0 +1,45 @@
+package com.fjhx.mes.service.report;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsDto;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsSelectDto;
+import com.fjhx.mes.entity.report.po.ReportLossesDetails;
+import com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo;
+import com.ruoyi.common.core.service.BaseService;
+
+/**
+ * <p>
+ * 报损管理 服务类
+ * </p>
+ *
+ * @author
+ * @since 2024-01-26
+ */
+public interface ReportLossesDetailsService extends BaseService<ReportLossesDetails> {
+
+    /**
+     * 报损管理分页
+     */
+    Page<ReportLossesDetailsVo> getPage(ReportLossesDetailsSelectDto dto);
+
+    /**
+     * 报损管理明细
+     */
+    ReportLossesDetailsVo detail(Long id);
+
+    /**
+     * 报损管理新增
+     */
+    void add(ReportLossesDetailsDto reportLossesDetailsDto);
+
+    /**
+     * 报损管理编辑
+     */
+    void edit(ReportLossesDetailsDto reportLossesDetailsDto);
+
+    /**
+     * 报损管理删除
+     */
+    void delete(Long id);
+
+}

+ 104 - 0
hx-mes/src/main/java/com/fjhx/mes/service/report/impl/ReportLossesDetailsServiceImpl.java

@@ -0,0 +1,104 @@
+package com.fjhx.mes.service.report.impl;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsDto;
+import com.fjhx.mes.entity.report.dto.ReportLossesDetailsSelectDto;
+import com.fjhx.mes.entity.report.po.ReportLossesDetails;
+import com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo;
+import com.fjhx.mes.mapper.report.ReportLossesDetailsMapper;
+import com.fjhx.mes.service.report.ReportLossesDetailsService;
+import com.fjhx.wms.entity.stock.emums.JournalType;
+import com.fjhx.wms.entity.stock.po.StockWait;
+import com.fjhx.wms.entity.stock.po.StockWaitDetails;
+import com.fjhx.wms.service.stock.StockWaitDetailsService;
+import com.fjhx.wms.service.stock.StockWaitService;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Objects;
+
+
+/**
+ * <p>
+ * 报损管理 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2024-01-26
+ */
+@Service
+public class ReportLossesDetailsServiceImpl extends ServiceImpl<ReportLossesDetailsMapper, ReportLossesDetails> implements ReportLossesDetailsService {
+
+    @Autowired
+    private ProductInfoService productInfoService;
+    @Autowired
+    private StockWaitService stockWaitService;
+    @Autowired
+    private StockWaitDetailsService stockWaitDetailsService;
+
+    @Override
+    public Page<ReportLossesDetailsVo> getPage(ReportLossesDetailsSelectDto dto) {
+        IWrapper<ReportLossesDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("rld", ReportLossesDetails::getId);
+        Page<ReportLossesDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+
+        List<ReportLossesDetailsVo> records = page.getRecords();
+        if (ObjectUtil.isEmpty(records)) {
+            return page;
+        }
+
+        //赋值产品信息
+        productInfoService.attributeAssign(records, ReportLossesDetailsVo::getMaterialId, (item, product) -> {
+            item.setMaterialCode(product.getCustomCode());
+            item.setMaterialName(product.getName());
+        });
+
+        return page;
+    }
+
+    @Override
+    public ReportLossesDetailsVo detail(Long id) {
+        ReportLossesDetails ReportLossesDetails = this.getById(id);
+        ReportLossesDetailsVo result = BeanUtil.toBean(ReportLossesDetails, ReportLossesDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(ReportLossesDetailsDto dto) {
+        this.save(dto);
+
+        JournalType journalType = Objects.equals(dto.getType(), 1) ? JournalType.REPAIR_EXCEED_OUT : JournalType.LOSE_EXCEED_OUT;
+
+        //生成待出库数据
+        StockWait stockWait = new StockWait();
+        stockWait.setType(2);
+        stockWait.setBusinessType(journalType.getDetailType());
+        stockWait.setBusinessId(dto.getId());
+        stockWait.setStatus(0);
+        stockWaitService.save(stockWait);
+        StockWaitDetails stockWaitDetails = new StockWaitDetails();
+        stockWaitDetails.setStockWaitId(stockWait.getId());
+        stockWaitDetails.setProductId(dto.getMaterialId());
+        stockWaitDetails.setQuantity(dto.getQuantity());
+        stockWaitDetails.setReceiptQuantity(BigDecimal.ZERO);
+        stockWaitDetailsService.save(stockWaitDetails);
+    }
+
+    @Override
+    public void edit(ReportLossesDetailsDto reportLossesDetailsDto) {
+        this.updateById(reportLossesDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 24 - 0
hx-mes/src/main/resources/mapper/report/ReportLossesDetailsMapper.xml

@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mes.mapper.report.ReportLossesDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.mes.entity.report.vo.ReportLossesDetailsVo">
+        SELECT rld.id,
+               rld.type,
+               rld.prod_order_id,
+               rld.material_id,
+               rld.quantity,
+               rld.resp_user_set,
+               rld.remark,
+               rld.create_user,
+               rld.create_time,
+               rld.update_user,
+               rld.update_time,
+               po.`code`                  AS prodOrderCode,
+               GROUP_CONCAT(su.nick_name) AS respUserName
+        FROM report_losses_details rld
+                 LEFT JOIN production_order po ON rld.prod_order_id = po.id
+                 LEFT JOIN sys_user su ON FIND_IN_SET(su.user_id, rld.resp_user_set)
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 4 - 3
hx-wms/src/main/java/com/fjhx/wms/entity/stock/emums/JournalType.java

@@ -25,16 +25,17 @@ public enum JournalType {
     STOCK_CHECK_OUT(InOutType.OUT, 8, "盘亏出库", ""),//库存盘点
     PROD_OUT(InOutType.OUT, 9, "生产出库", ""),//待出库-生产出库
 
-
     //入库
-    RESTITUTION_IN(InOutType.IN, 100, "归还入库", ""),//手动入库
+    RESTITUTION_IN(InOutType.IN, 100, "借用归还", ""),//手动入库
     MATERIAL_RETURN_IN(InOutType.IN, 101, "退料入库", ""),//手动入库
     DISCARD_MATERIAL_IN(InOutType.IN, 102, "废料入库", ""),//手动入库
     LOSE_IN(InOutType.IN, 103, "丢件寻回", ""),//手动入库
     PURCHASE_IN(InOutType.IN, 104, "采购入库", ""),//待入库-采购入库
     TRANSFER_IN(InOutType.IN, 105, "调拨入库", ""),//调仓
     STOCK_CHECK_IN(InOutType.IN, 106, "盘盈入库", ""),//库存盘点
-    COMPLETION_IN(InOutType.IN, 107, "完工入库", "");//待入库-完工入库
+    COMPLETION_IN(InOutType.IN, 107, "完工入库", ""),//待入库-完工入库
+    EXCEED_REST_IN(InOutType.IN, 108, "超领归还", ""),//手动入库
+    ERR_REST_IN(InOutType.IN, 109, "错领归还", "");//手动入库
 
     private final static Map<Integer, JournalType> map = new HashMap<>();
 

+ 2 - 0
hx-wms/src/main/java/com/fjhx/wms/service/stock/StockService.java

@@ -56,4 +56,6 @@ public interface StockService extends BaseService<Stock> {
      * 计算结存单价(在操作库存之前计算)
      */
     StockJournalDetails calculateUnitPrice(InOutType inOutType, Long productId, Long warehouseId, BigDecimal inOutQuantity, Integer purchaseArrival, BigDecimal price);
+
+
 }

+ 2 - 11
hx-wms/src/main/java/com/fjhx/wms/service/stock/impl/StockServiceImpl.java

@@ -206,18 +206,9 @@ public class StockServiceImpl extends ServiceImpl<StockMapper, Stock> implements
      */
     private void editStockJournalInfo(StockDto stockDto, StockJournal stockJournal) {
         JournalType byDetailType = JournalType.getByDetailType(stockDto.getType());
-        //赋值生产订单id以及销售订单id
-        boolean equals1 = JournalType.PROD_PROOFING_OUT.equals(byDetailType);//生产打样
-        boolean equals2 = JournalType.PROD_EXCEED_OUT.equals(byDetailType);//生产超领
-        boolean equals3 = JournalType.MATERIAL_RETURN_IN.equals(byDetailType);//退料入库
-        boolean equals4 = JournalType.DISCARD_MATERIAL_IN.equals(byDetailType);//废料入库
-        boolean equals5 = JournalType.SALE_OUT.equals(byDetailType);//销售出库
         //生产打样,生产超领,退料入库,废料入库
-        if (equals1 || equals2 || equals3 || equals4 || equals5) {
-            Long prodOrderId = stockDto.getProdOrderId();
-            Assert.notEmpty(prodOrderId, "生产订单id不能为空");
-            stockJournal.setProdOrderId(prodOrderId);
-        }
+        stockJournal.setProdOrderId(stockDto.getProdOrderId());
+
         //借用出库
         if (JournalType.BORROW_OUT.equals(byDetailType)) {
             Date expectRestitutionTime = stockDto.getExpectRestitutionTime();