mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-12 21:02:08 +08:00
禅道bug#1640修复,新增 已排订单分页未选择已开料查询 不显示已开料订单数据能力
This commit is contained in:
+1
-1
@@ -112,7 +112,7 @@ public class PlanController {
|
||||
@PutMapping("/setSort")
|
||||
@Operation(summary = "设置排单优先级")
|
||||
@PreAuthorize("@ss.hasPermission('placeorder:priority')")
|
||||
public CommonResult<Boolean> setSort(@Valid @NotEmpty(message = "参数不能空") @Size(max = 2,message = "最多两条数据") @RequestBody List<SortVO> sortVos) {
|
||||
public CommonResult<Boolean> setSort(@Valid @NotEmpty(message = "参数不能空") @RequestBody List<SortVO> sortVos) {
|
||||
|
||||
planService.setSort(sortVos);
|
||||
|
||||
|
||||
+9
@@ -12,6 +12,7 @@ import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanPlateStatis
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsAreaRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.PlateOptimize;
|
||||
import com.cf.imes.module.executor.controller.admin.plan.vo.SortVO;
|
||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
@@ -159,4 +160,12 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
||||
* @return
|
||||
*/
|
||||
List<Long> selectPlanOrderGoodsId(@Param("planId") Long planId, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
||||
|
||||
/**
|
||||
* 批量更新排单顺序
|
||||
*
|
||||
* @param sortVOList
|
||||
* @return
|
||||
*/
|
||||
int batchUpdatePlanSort(@Param("sortList") List<SortVO> sortVOList);
|
||||
}
|
||||
+14
-64
@@ -2,6 +2,7 @@ package com.cf.imes.module.executor.service.plan;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.ListUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||
@@ -386,6 +387,7 @@ public class PlanServiceImpl implements PlanService {
|
||||
planPageTurning(pageReqVO,planDOPageResult);
|
||||
|
||||
}else {
|
||||
List<Integer> statusList = pageReqVO.getStatus();
|
||||
|
||||
QueryWrapperX<PlanDO> queryWrapperX = new QueryWrapperX<>();
|
||||
queryWrapperX
|
||||
@@ -395,11 +397,15 @@ public class PlanServiceImpl implements PlanService {
|
||||
.eqIfPresent(FIELD_OP_ID, pageReqVO.getId())
|
||||
.eqIfPresent("op.sort", pageReqVO.getSort())
|
||||
.eqIfPresent("op.type", pageReqVO.getType())
|
||||
.inIfPresent("op.status", pageReqVO.getStatus())
|
||||
.inIfPresent("op.status", statusList)
|
||||
.betweenIfPresent("op.plan_time", pageReqVO.getPlanTime())
|
||||
.likeIfPresent("op.order_nos", pageReqVO.getOrderNos())
|
||||
.likeIfPresent(FIELD_CUSTOMER, pageReqVO.getCustomer());
|
||||
|
||||
// 如果状态没有显式选择已开料那么不显示已开料
|
||||
if (CollUtil.isEmpty(statusList) || !statusList.contains(PlanStatusEnum.OPENED.getStatus())) {
|
||||
queryWrapperX.ne("op.status", PlanStatusEnum.OPENED.getStatus());
|
||||
}
|
||||
|
||||
planDOPageResult = planMapper.selectPlanPageList(page,queryWrapperX);
|
||||
|
||||
@@ -895,78 +901,22 @@ public class PlanServiceImpl implements PlanService {
|
||||
|
||||
List<Long> planIds = sortVos.stream().map(SortVO::getPlanId).toList();
|
||||
|
||||
List<Long> sorts = new ArrayList<>();
|
||||
|
||||
for (Long planId : planIds) {
|
||||
|
||||
PlanDO planDO = planMapper.selectById(planId);
|
||||
|
||||
if(planDO == null){
|
||||
throw new ServiceException(PLAN_NOT_DATA_EXISTS,planId);
|
||||
if (planDO == null) {
|
||||
throw new ServiceException(PLAN_NOT_DATA_EXISTS, planId);
|
||||
}
|
||||
|
||||
sorts.add(planDO.getSort());
|
||||
}
|
||||
|
||||
|
||||
if(sortVos.size() == 1){
|
||||
|
||||
SortVO sortVO = sortVos.get(0);
|
||||
|
||||
if(sortVO.getIsOnePlan() != null || sortVO.getIsLastPln() != null){
|
||||
|
||||
PlanDO planDO = planMapper.selectById(sortVO.getPlanId());
|
||||
|
||||
Long sort = planDO.getSort();
|
||||
|
||||
PlanDO plan = new PlanDO();
|
||||
|
||||
if(Boolean.TRUE.equals(sortVO.getIsOnePlan())){
|
||||
plan = planMapper.selectSortOnePlan(sort, getUserOrganId());
|
||||
|
||||
}else if(Boolean.TRUE.equals(sortVO.getIsLastPln())){
|
||||
plan = planMapper.selectLastPlan(sort, getUserOrganId());
|
||||
}
|
||||
|
||||
|
||||
AssertUtils.notEmpty(plan,PLAN_SORT_DATA_ERROR);
|
||||
|
||||
planDO.setSort(plan.getSort());
|
||||
|
||||
plan.setSort(sort);
|
||||
|
||||
planMapper.updateById(planDO);
|
||||
planMapper.updateById(plan);
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
|
||||
planMapper.update(new LambdaUpdateWrapper<PlanDO>()
|
||||
.eq(PlanDO::getOrganId, getUserOrganId())
|
||||
.eq(PlanDO::getDeleted,false)
|
||||
.eq(PlanDO::getId,sortVO.getPlanId())
|
||||
.set(PlanDO::getIsTop,sortVO.getIsTopUp()));
|
||||
|
||||
return;
|
||||
|
||||
}
|
||||
|
||||
// 500条更新一次排单顺序
|
||||
List<List<SortVO>> batches = ListUtil.partition(sortVos, 500);
|
||||
|
||||
ArrayList<PlanDO> planDOS = new ArrayList<>();
|
||||
|
||||
sortVos.forEach(e -> {
|
||||
|
||||
planDOS.add(PlanDO.builder()
|
||||
.id(e.getPlanId())
|
||||
.sort(sorts.stream().filter(f -> !f.equals(e.getSort())).findFirst().orElse(e.getSort()))
|
||||
.build());
|
||||
|
||||
});
|
||||
|
||||
planMapper.updateBatch(planDOS);
|
||||
|
||||
for (List<SortVO> batch : batches) {
|
||||
planMapper.batchUpdatePlanSort(batch);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+23
-3
@@ -20,9 +20,7 @@
|
||||
|
||||
${ew.customSqlSegment}
|
||||
|
||||
ORDER BY op.is_top DESC,
|
||||
CASE WHEN op.is_top = true THEN op.update_time END DESC,
|
||||
CASE WHEN op.is_top = false THEN op.sort END ;
|
||||
ORDER BY op.sort
|
||||
</select>
|
||||
|
||||
|
||||
@@ -321,4 +319,26 @@
|
||||
</foreach>
|
||||
</select>
|
||||
|
||||
<update id="batchUpdatePlanSort">
|
||||
UPDATE order_plan
|
||||
|
||||
SET sort =
|
||||
CASE id
|
||||
<foreach collection="sortList" item="item">
|
||||
WHEN #{item.planId} THEN #{item.sort}
|
||||
</foreach>
|
||||
END
|
||||
|
||||
WHERE deleted = false
|
||||
AND status != 3
|
||||
AND id IN
|
||||
<foreach collection="sortList"
|
||||
item="item"
|
||||
open="("
|
||||
separator=","
|
||||
close=")">
|
||||
#{item.planId}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user