新火炬后端单体项目初始化代码
zhangherong
昨天 7acd9609e6fd88500f6056165a021b1f6ce0f697
art: 物料拉动业务相关接口添加,物料拉动新增接口,表设计修改
已添加2个文件
已修改14个文件
196 ■■■■ 文件已修改
db/双林新火炬MES数据库设计.pdma.json 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/base/controller/LineSideWarehouseController.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/base/service/ILineSideWarehouseService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/base/service/impl/LineSideWarehouseServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/controller/MesMaterialTransferRequestController.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/entity/MesMaterialTransferRequest.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/enums/MaterialTransferPublishStatus.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/enums/MaterialTransferRequestStatus.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/IMesMaterialTransferRequestService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialTransferRequestServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/pms/controller/PmsProcessBillMaterialsDetailController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/pms/mapper/PmsProcessBillMaterialsDetailMapper.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/pms/mapper/xml/PmsProcessBillMaterialsDetailMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/pms/service/IPmsProcessBillMaterialsDetailService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsDetailServiceImpl.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
db/Ë«ÁÖлð¾æMESÊý¾Ý¿âÉè¼Æ.pdma.json
@@ -4,7 +4,7 @@
  "avatar": "",
  "version": "4.9.2",
  "createdTime": "2025-3-10 16:38:19",
  "updatedTime": "2025-8-18 15:02:20",
  "updatedTime": "2025-8-20 15:14:16",
  "dbConns": [],
  "profile": {
    "default": {
@@ -64844,7 +64844,7 @@
          "autoIncrement": false,
          "defaultValue": "",
          "hideInGraph": false,
          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
          "refDict": "",
          "extProps": {},
          "notes": {},
@@ -64889,8 +64889,8 @@
          "baseType": "FC9790A7-36B8-4A48-8F9A-BC1042BCFE64"
        },
        {
          "defKey": "priority",
          "defName": "优先级(拉动类型)",
          "defKey": "material_transfer_category",
          "defName": "拉动类型",
          "comment": "",
          "type": "",
          "len": "",
src/main/java/org/jeecg/modules/base/controller/LineSideWarehouseController.java
@@ -191,4 +191,16 @@
         return Result.ok("操作成功!");
     }
     //@AutoLog(value = "线边仓库信息-通过id查询")
     @ApiOperation(value="线边仓库信息-通过id查询", notes="线边仓库信息-通过id查询")
     @GetMapping(value = "/queryByFactoryId")
     public Result<LineSideWarehouse> queryByFactoryId(@RequestParam(name="factoryId") String factoryId) {
         LineSideWarehouse lineSideWarehouse = lineSideWarehouseService.queryByFactoryId(factoryId);
         if(lineSideWarehouse==null) {
             return Result.error("未找到对应数据");
         }
         return Result.OK(lineSideWarehouse);
     }
}
src/main/java/org/jeecg/modules/base/service/ILineSideWarehouseService.java
@@ -11,4 +11,10 @@
 */
public interface ILineSideWarehouseService extends IService<LineSideWarehouse> {
    /**
     * æ ¹æ®æŸ¥è¯¢ID查询线边库
     * @param factoryId
     * @return
     */
    LineSideWarehouse queryByFactoryId(String factoryId);
}
src/main/java/org/jeecg/modules/base/service/impl/LineSideWarehouseServiceImpl.java
@@ -1,11 +1,11 @@
package org.jeecg.modules.base.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.modules.base.entity.LineSideWarehouse;
import org.jeecg.modules.base.mapper.LineSideWarehouseMapper;
import org.jeecg.modules.base.service.ILineSideWarehouseService;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
 * @Description: çº¿è¾¹ä»“库信息
@@ -16,4 +16,14 @@
@Service
public class LineSideWarehouseServiceImpl extends ServiceImpl<LineSideWarehouseMapper, LineSideWarehouse> implements ILineSideWarehouseService {
    @Override
    public LineSideWarehouse queryByFactoryId(String factoryId) {
        LambdaQueryWrapper<LineSideWarehouse> wrapper = new LambdaQueryWrapper<>();
        wrapper.eq(LineSideWarehouse::getFactoryId, factoryId);
        LineSideWarehouse entity = this.getBaseMapper().selectOne(wrapper);
        if(entity != null) {
            entity.setWarehouseName(entity.getWarehouseName() + "(" + entity.getWarehouseCode() + ")");
        }
        return entity;
    }
}
src/main/java/org/jeecg/modules/eam/constant/BusinessCodeConst.java
@@ -15,6 +15,8 @@
    String MAINTENANCE_CODE_RULE = "MaintenanceCodeRule";
    // ç»´ä¿®å·¥å•编码规则
    String REPAIR_ORDER_CODE_RULE = "RepairOrderCodeRule";
    // ç‰©æ–™æ‹‰åŠ¨ç¼–ç è§„åˆ™
    String MATERIAL_TRANSFER_CODE_RULE = "MaterialTransferCodeRule";
    /**
     * å²—位编码
src/main/java/org/jeecg/modules/mes/controller/MesMaterialTransferRequestController.java
@@ -10,8 +10,10 @@
import org.jeecg.common.aspect.annotation.AutoLog;
import org.jeecg.common.system.base.controller.JeecgController;
import org.jeecg.common.system.query.QueryGenerator;
import org.jeecg.modules.eam.constant.BusinessCodeConst;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.system.service.ISysBusinessCodeRuleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -33,6 +35,8 @@
public class MesMaterialTransferRequestController extends JeecgController<MesMaterialTransferRequest, IMesMaterialTransferRequestService> {
   @Autowired
   private IMesMaterialTransferRequestService mesMaterialTransferRequestService;
    @Autowired
    private ISysBusinessCodeRuleService businessCodeRuleService;
   /**
    * åˆ†é¡µåˆ—表查询
@@ -59,15 +63,19 @@
   /**
    *   æ·»åŠ 
    *
    * @param mesMaterialTransferRequest
     * @param request
    * @return
    */
   @AutoLog(value = "物料拉动申请-添加")
   @ApiOperation(value="物料拉动申请-添加", notes="物料拉动申请-添加")
   //@RequiresPermissions("org.jeecg.modules:mes_material_transfer_request:add")
   @PostMapping(value = "/add")
   public Result<String> add(@RequestBody MesMaterialTransferRequest mesMaterialTransferRequest) {
       mesMaterialTransferRequestService.save(mesMaterialTransferRequest);
    public Result<String> add(@RequestBody MesMaterialTransferRequest request) {
        String codeSeq = businessCodeRuleService.generateBusinessCodeSeq(BusinessCodeConst.MATERIAL_TRANSFER_CODE_RULE);
        request.setRequestCode(codeSeq);
        boolean b = mesMaterialTransferRequestService.addMaterialTransferRequest(request);
        if(!b) {
            return Result.error("添加失败!");
        }
       return Result.OK("添加成功!");
   }
@@ -157,6 +165,7 @@
   public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
       return super.importExcel(request, response, MesMaterialTransferRequest.class);
   }
   /*
   * é€šè¿‡workOrderId æŸ¥è¯¢mesMaterialTransferRequest数据
   *@param workOrderId
src/main/java/org/jeecg/modules/mes/entity/MesMaterialTransferRequest.java
@@ -57,16 +57,17 @@
    private String requestCode;
    /**工单ID*/
    @ApiModelProperty(value = "工单ID")
    @Dict(dictTable = "mes_production_work_order", dicText = "work_order_code", dicCode = "id")
    private String workOrderId;
    /**SAP预留号*/
    @ApiModelProperty(value = "SAP预留号")
    private String reservationCode;
    /**发布状态*/
    @Dict(dicCode = "publish_status")
    @Dict(dicCode = "material_transfer_publish_status")
    @ApiModelProperty(value = "发布状态")
    private String publishStatus;
    /**请求状态*/
    @Dict(dicCode = "request_status")
    @Dict(dicCode = "material_transfer_request_status")
    @ApiModelProperty(value = "请求状态")
    private String requestStatus;
    /**请求时间*/
@@ -74,19 +75,21 @@
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "请求时间")
    private Date requestTime;
    /**原库存地*/
    @ApiModelProperty(value = "原库存地")
    /**起运库存地*/
    @ApiModelProperty(value = "起运库存地")
    @Dict(dicCode = "original_warehouse_list")
    private String originalWarehouseId;
    /**目标库存地*/
    @ApiModelProperty(value = "目标库存地")
    @Dict(dictTable = "base_line_side_warehouse", dicText = "warehouse_name", dicCode = "id")
    private String targetWarehouseId;
    /**优先级(拉动类型)*/
    @Dict(dicCode = "material_transfer_category")
    @ApiModelProperty(value = "拉动类型")
    private String materialTransferCategory;
    /**最晚配送时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    @ApiModelProperty(value = "最晚配送时间")
    private Date latestDeliveryTime;
    /**物料编码*/
@@ -101,17 +104,4 @@
    /**实际拉动数量*/
    @ApiModelProperty(value = "实际拉动数量")
    private Double actualQuantity;
    /**车间剩余数量*/
    @ApiModelProperty(value = "车间剩余数量")
    private Double remainingQuantity;
    @TableField(exist = false)
    @ApiModelProperty(value = "工单号")
    private String workOrderCode;
    @TableField(exist = false)
    @ApiModelProperty(value = "目标库存地")
    private String targetWarehouseName;
    @TableField(exist = false)
    @ApiModelProperty(value = "原库存地")
    private String originalWarehouseName;
}
src/main/java/org/jeecg/modules/mes/enums/MaterialTransferPublishStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
package org.jeecg.modules.mes.enums;
/**
 * ç‰©æ–™æ‹‰åЍ å‘布状态
 */
public enum MaterialTransferPublishStatus {
    WAIT_PUBLISH, //待发布
    PUBLISHED, //已发布
    ;
}
src/main/java/org/jeecg/modules/mes/enums/MaterialTransferRequestStatus.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package org.jeecg.modules.mes.enums;
/**
 * ç‰©æ–™æ‹‰åŠ¨è¯·æ±‚çŠ¶æ€
 */
public enum MaterialTransferRequestStatus {
    WAIT_REQUEST, //待请求
    REQUESTED, //已请求
    CHECKED_IN, //已入库
    ;
}
src/main/java/org/jeecg/modules/mes/service/IMesMaterialTransferRequestService.java
@@ -13,4 +13,10 @@
 */
public interface IMesMaterialTransferRequestService extends IService<MesMaterialTransferRequest> {
    List<MesMaterialTransferRequest> queryMaterialTransferRequestByWorkOrderId(String workOrderId);
    /**
     * ç‰©æ–™æ‹‰åŠ¨æ–°å¢ž
     * @param request
     */
    boolean addMaterialTransferRequest(MesMaterialTransferRequest request);
}
src/main/java/org/jeecg/modules/mes/service/impl/MesMaterialTransferRequestServiceImpl.java
@@ -1,10 +1,19 @@
package org.jeecg.modules.mes.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.jeecg.common.constant.CommonConstant;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.mes.entity.MesMaterialTransferRequest;
import org.jeecg.modules.mes.entity.MesProductionWorkOrder;
import org.jeecg.modules.mes.enums.MaterialTransferPublishStatus;
import org.jeecg.modules.mes.enums.MaterialTransferRequestStatus;
import org.jeecg.modules.mes.enums.ProductionWorkOrderStatus;
import org.jeecg.modules.mes.mapper.MesMaterialTransferRequestMapper;
import org.jeecg.modules.mes.service.IMesMaterialTransferRequestService;
import org.jeecg.modules.mes.service.IMesProductionWorkOrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -17,8 +26,28 @@
@Service
public class MesMaterialTransferRequestServiceImpl extends ServiceImpl<MesMaterialTransferRequestMapper, MesMaterialTransferRequest> implements IMesMaterialTransferRequestService {
    @Autowired
    private IMesProductionWorkOrderService productionWorkOrderService;
    @Override
    public List<MesMaterialTransferRequest> queryMaterialTransferRequestByWorkOrderId(String workOrderId) {
        return baseMapper.queryMaterialTransferRequestByWorkOrderId(workOrderId);
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean addMaterialTransferRequest(MesMaterialTransferRequest request) {
        MesProductionWorkOrder order = productionWorkOrderService.getById(request.getWorkOrderId());
        if(order == null){
            throw new JeecgBootException("排产工单不存在");
        }
        if(!ProductionWorkOrderStatus.PUBLISHED.name().equals(order.getWorkOrderStatus())){
            throw new JeecgBootException("只有发布状态的排产工单才可申请物料");
        }
        request.setPublishStatus(MaterialTransferPublishStatus.WAIT_PUBLISH.name());
        request.setRequestStatus(MaterialTransferRequestStatus.WAIT_REQUEST.name());
        request.setDelFlag(CommonConstant.DEL_FLAG_0);
        this.getBaseMapper().insert(request);
        return true;
    }
}
src/main/java/org/jeecg/modules/pms/controller/PmsProcessBillMaterialsDetailController.java
@@ -36,4 +36,17 @@
        return Result.OK(list);
    }
    /**
     * ç‰©æ–™æ‹‰åŠ¨é€‰æ‹©ç‰©æ–™ä½¿ç”¨
     * æ ¹æ®æˆå“ã€åŠæˆå“ç‰©æ–™å· æŸ¥è¯¢å¯é€‰æ‹©çš„物料数据
     * @param materialNumber æˆå“ã€åŠæˆå“ç‰©æ–™ç¼–码
     * @return
     */
    @ApiOperation(value = "物料清单-通过物料号查询", notes = "物料清单-通过物料号查询")
    @GetMapping(value = "/queryByMaterialNumber")
    public Result<?> queryByMaterialNumber(@RequestParam(name = "materialNumber") String materialNumber) {
        List<PmsProcessBillMaterialsDetail> list = pmsProcessBillMaterialsDetailService.queryByMaterialNumber(materialNumber);
        return Result.OK(list);
    }
}
src/main/java/org/jeecg/modules/pms/mapper/PmsProcessBillMaterialsDetailMapper.java
@@ -5,6 +5,7 @@
import org.apache.ibatis.annotations.Param;
import org.jeecg.modules.pms.entity.PmsProcessBillMaterialsDetail;
import java.util.List;
import java.util.Map;
/**
@@ -16,4 +17,11 @@
public interface PmsProcessBillMaterialsDetailMapper extends BaseMapper<PmsProcessBillMaterialsDetail> {
    PmsProcessBillMaterialsDetail queryByMaterialId(@Param("materialId") String materialId);
    IPage<Map<String, Object>> getpmsProcessBillMaterialsDetailListData(IPage<Map> pageData, @Param("params")Map<String, String> paramMap);
    /**
     * ç‰©æ–™æ‹‰åŠ¨é€‰æ‹©ç‰©æ–™ä½¿ç”¨
     * æ ¹æ®æˆå“ã€åŠæˆå“ç‰©æ–™å· æŸ¥è¯¢å¯é€‰æ‹©çš„物料数据
     * @param materialNumber æˆå“ã€åŠæˆå“ç‰©æ–™ç¼–码
     * @return
     */
    List<PmsProcessBillMaterialsDetail> queryByMaterialNumber(String materialNumber);
}
src/main/java/org/jeecg/modules/pms/mapper/xml/PmsProcessBillMaterialsDetailMapper.xml
@@ -14,4 +14,13 @@
            AND material_name LIKE CONCAT('%', #{params.materialName}, '%')
        </if>
    </select>
    <select id="queryByMaterialNumber" resultType="org.jeecg.modules.pms.entity.PmsProcessBillMaterialsDetail">
        select DISTINCT t1.material_number, t1.material_name, t1.production_unit
        from pms_process_bill_materials_detail t1
        where EXISTS(select t2.id
                     from pms_process_bill_materials t2
                     where t2.material_number = #{materialNumber}
                       and t1.material_id = t2.id)
    </select>
</mapper>
src/main/java/org/jeecg/modules/pms/service/IPmsProcessBillMaterialsDetailService.java
@@ -13,6 +13,11 @@
 * @Version: V1.0
 */
public interface IPmsProcessBillMaterialsDetailService extends IService<PmsProcessBillMaterialsDetail> {
    /**
     * æ ¹æ®ç‰©æ–™Id查询明细
     * @param materialId
     * @return
     */
    List<PmsProcessBillMaterialsDetail> queryByMaterialId(String materialId);
    /**
@@ -27,4 +32,12 @@
     * @param collect
     */
    void saveBatchDetail(String materialsId, List<OrderBomDTO> collect);
    /**
     * ç‰©æ–™æ‹‰åŠ¨é€‰æ‹©ç‰©æ–™ä½¿ç”¨
     * æ ¹æ®æˆå“ã€åŠæˆå“ç‰©æ–™å· æŸ¥è¯¢å¯é€‰æ‹©çš„物料数据
     * @param materialNumber æˆå“ã€åŠæˆå“ç‰©æ–™ç¼–码
     * @return
     */
    List<PmsProcessBillMaterialsDetail> queryByMaterialNumber(String materialNumber);
}
src/main/java/org/jeecg/modules/pms/service/impl/PmsProcessBillMaterialsDetailServiceImpl.java
@@ -3,6 +3,7 @@
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.apache.commons.lang3.StringUtils;
import org.jeecg.modules.pms.entity.PmsProcessBillMaterialsDetail;
import org.jeecg.modules.pms.mapper.PmsProcessBillMaterialsDetailMapper;
import org.jeecg.modules.pms.service.IPmsProcessBillMaterialsDetailService;
@@ -10,6 +11,7 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@@ -46,4 +48,12 @@
        List<PmsProcessBillMaterialsDetail> list = collect.stream().map(orderBomDTO -> new PmsProcessBillMaterialsDetail(materialsId, orderBomDTO)).collect(Collectors.toList());
        super.saveBatch(list);
    }
    @Override
    public List<PmsProcessBillMaterialsDetail> queryByMaterialNumber(String materialNumber) {
        if (StringUtils.isBlank(materialNumber)) {
            return Collections.emptyList();
        }
        return this.getBaseMapper().queryByMaterialNumber(materialNumber);
    }
}