fix:工艺流程删除功能逻辑完善

This commit is contained in:
zhangxuanming 2024-12-19 10:18:45 +08:00
parent 0187881979
commit f9de0aaba3
3 changed files with 79 additions and 2 deletions

View File

@ -2,7 +2,8 @@ package com.ktg.mes.pro.mapper;
import java.util.List; import java.util.List;
import com.ktg.mes.pro.domain.ProRouteProcess; import com.ktg.mes.pro.domain.ProRouteProcess;
import org.springframework.security.core.parameters.P; import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/** /**
* 工艺组成Mapper接口 * 工艺组成Mapper接口
@ -73,4 +74,20 @@ public interface ProRouteProcessMapper
* @return * @return
*/ */
public int deleteByRouteId(Long routeId); public int deleteByRouteId(Long routeId);
/**
* 根据recordIds查询相关工艺组成对象
* @param recordIds
* @return
*/
List<ProRouteProcess> selectByRecordId(Long recordIds);
/**
* 根据routeId查询相关工艺组成对象
* @param routeId
* @return
*/
List<ProRouteProcess> selectByRouteId(Long routeId);
void updateBatch(@Param("entity") List<ProRouteProcess> list);
} }

View File

@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ktg.mes.pro.mapper.ProRouteProcessMapper; import com.ktg.mes.pro.mapper.ProRouteProcessMapper;
import com.ktg.mes.pro.service.IProRouteProcessService; import com.ktg.mes.pro.service.IProRouteProcessService;
import org.springframework.transaction.annotation.Transactional;
/** /**
* 工艺组成Service业务层处理 * 工艺组成Service业务层处理
@ -167,9 +168,31 @@ public class ProRouteProcessServiceImpl implements IProRouteProcessService
* @return 结果 * @return 结果
*/ */
@Override @Override
@Transactional
public int deleteProRouteProcessByRecordIds(Long[] recordIds) public int deleteProRouteProcessByRecordIds(Long[] recordIds)
{ {
return proRouteProcessMapper.deleteProRouteProcessByRecordIds(recordIds); List<ProRouteProcess> ProRouteProcessList = proRouteProcessMapper.selectByRecordId(recordIds[0]);
Long routeId = ProRouteProcessList.get(0).getRouteId();
int status = proRouteProcessMapper.deleteProRouteProcessByRecordIds(recordIds);
List<ProRouteProcess> list = proRouteProcessMapper.selectByRouteId(routeId);
if (list != null && list.size() > 0) {
// 重新生成工序
for (int i = 0; i < list.size(); i++) {
ProRouteProcess proRouteProcess = list.get(i);
if ((i + 1) >= list.size()) {
proRouteProcess.setNextProcessId(0L);
proRouteProcess.setNextProcessName("");
} else {
ProRouteProcess next = list.get(i + 1);
proRouteProcess.setNextProcessId(next.getProcessId());
proRouteProcess.setNextProcessCode(next.getProcessCode());
proRouteProcess.setNextProcessName(next.getProcessName());
}
}
// 批量更新
proRouteProcessMapper.updateBatch(list);
}
return status;
} }
/** /**

View File

@ -108,6 +108,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</choose> </choose>
ORDER BY order_num ASC LIMIT 1 ORDER BY order_num ASC LIMIT 1
</select> </select>
<select id="selectByRecordId" resultType="ProRouteProcess" resultMap="ProRouteProcessResult">
select * from pro_route_process where record_id = #{recordIds}
</select>
<select id="selectByRouteId" resultType="ProRouteProcess" resultMap="ProRouteProcessResult">
select * from pro_route_process where route_id = #{routeId}
</select>
<insert id="insertProRouteProcess" parameterType="ProRouteProcess" useGeneratedKeys="true" keyProperty="recordId"> <insert id="insertProRouteProcess" parameterType="ProRouteProcess" useGeneratedKeys="true" keyProperty="recordId">
insert into pro_route_process insert into pro_route_process
@ -192,6 +198,37 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</trim> </trim>
where record_id = #{recordId} where record_id = #{recordId}
</update> </update>
<update id="updateBatch">
<foreach collection="entity" item="item" separator=";">
update pro_route_process
<trim prefix="SET" suffixOverrides=",">
<if test="item.routeId != null">route_id = #{item.routeId},</if>
<if test="item.processId != null">process_id = #{item.processId},</if>
<if test="item.processCode != null">process_code = #{item.processCode},</if>
<if test="item.processName != null">process_name = #{item.processName},</if>
<if test="item.orderNum != null">order_num = #{item.orderNum},</if>
<if test="item.nextProcessId != null">next_process_id = #{item.nextProcessId},</if>
<if test="item.nextProcessCode != null">next_process_code = #{item.nextProcessCode},</if>
<if test="item.nextProcessName != null">next_process_name = #{item.nextProcessName},</if>
<if test="item.linkType != null">link_type = #{item.linkType},</if>
<if test="item.defaultPreTime != null">default_pre_time = #{item.defaultPreTime},</if>
<if test="item.defaultSufTime != null">default_suf_time = #{item.defaultSufTime},</if>
<if test="item.keyFlag !=null">key_flag = #{item.keyFlag},</if>
<if test="item.isCheck !=null">is_check = #{item.isCheck},</if>
<if test="item.colorCode != null">color_code = #{item.colorCode},</if>
<if test="item.remark != null">remark = #{item.remark},</if>
<if test="item.attr1 != null">attr1 = #{item.attr1},</if>
<if test="item.attr2 != null">attr2 = #{item.attr2},</if>
<if test="item.attr3 != null">attr3 = #{item.attr3},</if>
<if test="item.attr4 != null">attr4 = #{item.attr4},</if>
<if test="item.createBy != null">create_by = #{item.createBy},</if>
<if test="item.createTime != null">create_time = #{item.createTime},</if>
<if test="item.updateBy != null">update_by = #{item.updateBy},</if>
<if test="item.updateTime != null">update_time = #{item.updateTime},</if>
</trim>
where record_id = #{item.recordId}
</foreach>
</update>
<delete id="deleteProRouteProcessByRecordId" parameterType="Long"> <delete id="deleteProRouteProcessByRecordId" parameterType="Long">
delete from pro_route_process where record_id = #{recordId} delete from pro_route_process where record_id = #{recordId}