Browse Source

feature 代码提交

xiahan 1 year ago
parent
commit
5e27bb44be

+ 2 - 0
cx-aps/cx-aps-common/src/main/java/com/rongwei/bscommon/sys/dao/ApsProductionOrderDao.java

@@ -17,6 +17,8 @@ public interface ApsProductionOrderDao extends BaseMapper<ApsProductionOrderDo>
 
     List<String> getStartWorkById(@Param("ids") List<String> ids);
 
+    List<String> getStartWorkByBlankId(@Param("ids") List<String> ids);
+
     List<ApsProductionOrderDo> getDataByBlankId(@Param("blankIds")List<String> blankids);
 }
 

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

@@ -125,10 +125,15 @@ public class ApsBlankOrderServiceImpl extends ServiceImpl<ApsBlankOrderDao, ApsB
             log.debug("坯料计划排程取消参数为空");
             return;
         }
+        // 判断批量计划是否存在已开工的数据
+        // 校验取消的订单中是否存在已加工的工序作业
+        List<String> startWorkOrderNo = apsProcessOperationDao.getStartWorkByBlankId(apsBlankIds);
+        if (!startWorkOrderNo.isEmpty()) {
+            throw new CustomException(CollUtil.join(startWorkOrderNo, ",") + " 以上客户所对应的订单存在已开工的坯料计划,不可以取消排程=!");
+        }
         //获取订单ID
         List<ApsBlankOrderDo> blankOrderDoList = this.list(new QueryWrapper<ApsBlankOrderDo>().lambda().in(ApsBlankOrderDo::getId, apsBlankIds));
         Set<String> orderIds = blankOrderDoList.stream().map(ApsBlankOrderDo::getProductionorderid).collect(Collectors.toSet());
-
         //清除排程备份
         deleteBackup(apsBlankIds, new ArrayList<>(orderIds));
     }

+ 16 - 0
cx-aps/cx-aps-common/src/main/resources/mybatis/ApsProductionOrderDao.xml

@@ -201,6 +201,22 @@
         </where>
         group by apo.CUSTOMNAME
     </select>
+    <select id="getStartWorkByBlankId" resultType="java.lang.String">
+        select DISTINCT CONCAT( apo.CUSTOMNAME,'-',GROUP_CONCAT(DISTINCT apo.ORDERNO )  )
+        from aps_production_order apo
+        left join aps_blank_order abo on apo.ID=abo.PRODUCTIONORDERID AND abo.DELETED='0'
+        <where>
+            apo.DELETED='0'
+            <if test="ids != null and ids.size() >0">
+                and abo.ID in
+                <foreach collection="ids" open="(" close=")" separator="," item="id">
+                    #{id}
+                </foreach>
+            </if>
+            and abo.PRODUCTSTATUS in ('40','50')
+        </where>
+        group by apo.CUSTOMNAME
+    </select>
     <select id="getDataByBlankId" resultType="com.rongwei.bsentity.domain.ApsProductionOrderDo">
         select * from aps_production_order where ID in(
         select PRODUCTIONORDERID from aps_blank_order where DELETED ='0' AND ID IN