Procházet zdrojové kódy

aps-换线前设备选择准备

sucheng před 6 měsíci
rodič
revize
fb69cec701

+ 4 - 1
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProcessOperationProcessEquDao.java

@@ -80,7 +80,8 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
     void publishCancel(@Param("productIdList") List<String> productIdList);
 
     List<OptionalEquipmentVo> getOptionalEquipmentById(@Param("idList")List<String> id,
-                                                       @Param("factoryId") String factoryId);
+                                                       @Param("factoryId") String factoryId,
+                                                       @Param("typeList") List<String> typeList);
 
     List<String> checkConflict(@Param("checkConflictVos") List<CheckConflictVo> checkConflictVos);
 
@@ -113,6 +114,8 @@ public interface ApsProcessOperationProcessEquDao extends BaseMapper<ApsProcessO
 
     @Select("select count(1) from aps_process_operation_process_equ where DELETED = 0 AND PROCESSDEVICEID = #{processdeviceid} AND ID != #{apsProcessOperationProcessEquDoId} AND WAITREPORTID IS NOT NULL AND WAITREPORTID != '' AND PLANSTARTDATE != #{planstartdate}")
     int selectOtherDeviceCount(@Param("processdeviceid") String processdeviceid,@Param("apsProcessOperationProcessEquDoId") String apsProcessOperationProcessEquDoId, @Param("planstartdate") Date planstartdate);
+
+    String getNeedSelectEquTypes(@Param("operationJobDetailsId") List<String> operationJobDetailsId);
 }
 
 

+ 14 - 6
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ApsProcessOperationProcessEquServiceImpl.java

@@ -603,12 +603,20 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
             return R.error("工序作业明细必选");
         }
         log.debug("根据工序作业明细:{},获取可选设备", operationJobDetailsId);
-        // 防止工序作业ID重复
-        operationJobDetailsId = operationJobDetailsId.stream().distinct().filter(StringUtils::isNotBlank).collect(Collectors.toList());
-        List<OptionalEquipmentVo> optionalEquipment = this.baseMapper.getOptionalEquipmentById(null, currentUserFactoryId);
+        //根据工序作业明细查询对应的工序的设备类型
+        String needSelectEquTypes = this.baseMapper.getNeedSelectEquTypes(operationJobDetailsId);
+        //过滤重复设备类型
+        HashSet<String> needSelectEquTypeSet = new HashSet<>();
+        if (StringUtils.isNotBlank(needSelectEquTypes)) {
+            needSelectEquTypeSet.addAll(Arrays.asList(needSelectEquTypes.split(",")));
+        }
+
+//        // 防止工序作业ID重复
+//        operationJobDetailsId = operationJobDetailsId.stream().distinct().filter(StringUtils::isNotBlank).collect(Collectors.toList());
+        List<OptionalEquipmentVo> optionalEquipment = this.baseMapper.getOptionalEquipmentById(null, currentUserFactoryId, new LinkedList<>(needSelectEquTypeSet));
         if (optionalEquipment.isEmpty()) {
-            log.error("当前所选作业不存在共同的加工设备");
-            return R.error("没有可共用的加工设备,无法合并换线");
+            log.error("当前所选作业不存在对应的可加工设备");
+            return R.error("当前所选作业不存在对应的可加工设备,无法合并换线");
         }
         return R.ok(optionalEquipment);
     }
@@ -1164,7 +1172,7 @@ public class ApsProcessOperationProcessEquServiceImpl extends ServiceImpl<ApsPro
                         if (two.getMinProductionStatus().equals(TO_BE_SCHEDULED)) {
                             blankOrderDo.setSchedulingstatus(SaveConstans.SchedulingStatus.TO_BE_SCHEDULED);
                             //存储日志
-                            apsConflictLogService.recordLog("","更新坯料计划状态为待排程,坯料计划ID为:"+blankOrderDo.getId(),"",2,null);
+                            apsConflictLogService.recordLog("", "更新坯料计划状态为待排程,坯料计划ID为:" + blankOrderDo.getId(), "", 2, null);
                         } else if (two.getMinProductionStatus().equals(TO_BE_PUBLISHED)) {
                             blankOrderDo.setSchedulingstatus(SaveConstans.SchedulingStatus.TO_BE_PUBLISHED);
                         } else {

+ 17 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProcessOperationProcessEquDao.xml

@@ -396,6 +396,13 @@
         aci.DELETED='0'
         and aci.TENANTID=#{factoryId}
         and IFNULL(DEVICESTATUS,'正常使用')!='停用' and IFNULL(DEVICESTATUS,'正常使用')!='报废'  and  PRODUCETYPE='1'
+        <if test="typeList != null and typeList.size > 0">
+            and aci.CHECKITEMTYPE IN
+            <foreach collection="typeList" separator="," item="item" open="(" close=")">
+                #{item}
+            </foreach>
+        </if>
+
         GROUP BY aci.ID
         ORDER BY aci.USEDEPTNAME,aci.CHECKITEMNAME,aci.CHECKITEMNAME ASC
         <!--        SELECT-->
@@ -542,4 +549,14 @@
             ORDER BY PLANSTARTDATE desc
         </where>
     </select>
+    <select id="getNeedSelectEquTypes" resultType="java.lang.String">
+        select GROUP_CONCAT(app.EQUIPMENTTYPE) AS 'needSelectEquTypes'
+        from aps_process_operation_process_equ apope
+                 LEFT JOIN aps_process_operation apo ON apo.DELETED = 0 AND apope.PROCESSID = apo.ID
+                 LEFT JOIN aps_production_processes app ON app.DELETED = 0 AND app.ID = apo.PROCESSID
+        where apope.DELETED = 0 AND apope.ID in
+        <foreach collection="operationJobDetailsId" open="(" close=")" item="item" separator=",">
+            #{item}
+        </foreach>
+    </select>
 </mapper>