mirror of
http://192.168.1.205:9980/cf_devdept2/cf_imes_server.git
synced 2026-08-14 21:52:07 +08:00
禅道bug#1640修复,新增 已排订单分页未选择已开料查询 不显示已开料订单数据能力
This commit is contained in:
+1
-1
@@ -112,7 +112,7 @@ public class PlanController {
|
|||||||
@PutMapping("/setSort")
|
@PutMapping("/setSort")
|
||||||
@Operation(summary = "设置排单优先级")
|
@Operation(summary = "设置排单优先级")
|
||||||
@PreAuthorize("@ss.hasPermission('placeorder:priority')")
|
@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);
|
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.OrderPlanStatisticsAreaRespVO;
|
||||||
import com.cf.imes.module.executor.controller.admin.plan.vo.OrderPlanStatisticsCountRespVO;
|
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.PlateOptimize;
|
||||||
|
import com.cf.imes.module.executor.controller.admin.plan.vo.SortVO;
|
||||||
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
import com.cf.imes.module.executor.dal.dataobject.plan.PlanDO;
|
||||||
import org.apache.ibatis.annotations.Mapper;
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
import org.apache.ibatis.annotations.Param;
|
import org.apache.ibatis.annotations.Param;
|
||||||
@@ -159,4 +160,12 @@ public interface PlanMapper extends BaseMapperX<PlanDO> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Long> selectPlanOrderGoodsId(@Param("planId") Long planId, @Param("orderIds") List<Long> orderIds, @Param("organId") Long organId);
|
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.bean.BeanUtil;
|
||||||
import cn.hutool.core.collection.CollUtil;
|
import cn.hutool.core.collection.CollUtil;
|
||||||
|
import cn.hutool.core.collection.ListUtil;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
import co.elastic.clients.elasticsearch.ElasticsearchClient;
|
||||||
import co.elastic.clients.elasticsearch._types.FieldValue;
|
import co.elastic.clients.elasticsearch._types.FieldValue;
|
||||||
@@ -386,6 +387,7 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
planPageTurning(pageReqVO,planDOPageResult);
|
planPageTurning(pageReqVO,planDOPageResult);
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
|
List<Integer> statusList = pageReqVO.getStatus();
|
||||||
|
|
||||||
QueryWrapperX<PlanDO> queryWrapperX = new QueryWrapperX<>();
|
QueryWrapperX<PlanDO> queryWrapperX = new QueryWrapperX<>();
|
||||||
queryWrapperX
|
queryWrapperX
|
||||||
@@ -395,11 +397,15 @@ public class PlanServiceImpl implements PlanService {
|
|||||||
.eqIfPresent(FIELD_OP_ID, pageReqVO.getId())
|
.eqIfPresent(FIELD_OP_ID, pageReqVO.getId())
|
||||||
.eqIfPresent("op.sort", pageReqVO.getSort())
|
.eqIfPresent("op.sort", pageReqVO.getSort())
|
||||||
.eqIfPresent("op.type", pageReqVO.getType())
|
.eqIfPresent("op.type", pageReqVO.getType())
|
||||||
.inIfPresent("op.status", pageReqVO.getStatus())
|
.inIfPresent("op.status", statusList)
|
||||||
.betweenIfPresent("op.plan_time", pageReqVO.getPlanTime())
|
.betweenIfPresent("op.plan_time", pageReqVO.getPlanTime())
|
||||||
.likeIfPresent("op.order_nos", pageReqVO.getOrderNos())
|
.likeIfPresent("op.order_nos", pageReqVO.getOrderNos())
|
||||||
.likeIfPresent(FIELD_CUSTOMER, pageReqVO.getCustomer());
|
.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);
|
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> planIds = sortVos.stream().map(SortVO::getPlanId).toList();
|
||||||
|
|
||||||
List<Long> sorts = new ArrayList<>();
|
|
||||||
|
|
||||||
for (Long planId : planIds) {
|
for (Long planId : planIds) {
|
||||||
|
|
||||||
PlanDO planDO = planMapper.selectById(planId);
|
PlanDO planDO = planMapper.selectById(planId);
|
||||||
|
|
||||||
if(planDO == null){
|
if (planDO == null) {
|
||||||
throw new ServiceException(PLAN_NOT_DATA_EXISTS,planId);
|
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<>();
|
for (List<SortVO> batch : batches) {
|
||||||
|
planMapper.batchUpdatePlanSort(batch);
|
||||||
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);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+23
-3
@@ -20,9 +20,7 @@
|
|||||||
|
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
|
|
||||||
ORDER BY op.is_top DESC,
|
ORDER BY op.sort
|
||||||
CASE WHEN op.is_top = true THEN op.update_time END DESC,
|
|
||||||
CASE WHEN op.is_top = false THEN op.sort END ;
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
@@ -321,4 +319,26 @@
|
|||||||
</foreach>
|
</foreach>
|
||||||
</select>
|
</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>
|
</mapper>
|
||||||
Reference in New Issue
Block a user