liweidong-hj 2 weeks ago
commit 71ea03e845
  1. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkPlan.java
  2. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/ByCardNoByPlanVO.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/constant/ReviewSheetConst.java
  4. 13
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionTask.java
  5. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/ReviewSheet.java
  6. 23
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataLogisticsClient.java
  7. 10
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataLogisticsClientFallback.java
  8. 19
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/AiWebApiController.java
  9. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DisTaskingMapper.xml
  10. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IWorkOrderService.java
  11. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java
  12. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  13. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkPlanServiceImpl.java
  14. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/PlanTestController.java
  15. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.java
  16. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  17. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.java
  18. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/WorkPlanItemMapper.xml
  19. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IInspectionTaskService.java
  20. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/IWorkPlanItemService.java
  21. 20
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java
  22. 212
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java
  23. 15
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/WorkPlanItemServiceImpl.java
  24. 10
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataLogisticsClient.java
  25. 18
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataLogisticsMapper.java
  26. 221
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataLogisticsMapper.xml
  27. 18
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataLogisticsService.java
  28. 10
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataLogisticsServiceImpl.java

@ -159,7 +159,7 @@ public class WorkPlan extends BaseEntity {
* 不合格数量 * 不合格数量
*/ */
@Schema(description = "不合格数量") @Schema(description = "不合格数量")
private Integer unqualifiedQty; private Double unqualifiedQty;
/** /**
* 实际开始 * 实际开始
*/ */

@ -52,5 +52,7 @@ public class ByCardNoByPlanVO {
@Schema(description = "接收人名称") @Schema(description = "接收人名称")
private String userName; private String userName;
@Schema(description = "主加工班组")
private String mainTsName;
} }

@ -55,7 +55,7 @@ public interface ReviewSheetConst {
/** /**
* 初始化 * 初始化
*/ */
Integer REVIEW_STATUS_INIT = -1; Short REVIEW_STATUS_INIT = -1;
/** /**
* 让步接收 * 让步接收
*/ */

@ -180,6 +180,19 @@ public class InspectionTask extends BaseEntity {
*/ */
public static final String COL_PREPARE_WORK_MINUTE = "PREPARE_WORK_MINUTE"; public static final String COL_PREPARE_WORK_MINUTE = "PREPARE_WORK_MINUTE";
/**
* 未检验
*/
public static Integer CHECK_RESULT_NOT = -1;
/**
* 合格
*/
public static Integer CHECK_RESULT_OK = 1;
/**
* 不合格
*/
public static Integer CHECK_RESULT_NO = 2;
/** /**
* [检验任务]编码 * [检验任务]编码
*/ */

@ -306,7 +306,7 @@ public class ReviewSheet extends BaseEntity {
* 审理状态 * 审理状态
*/ */
@Schema(description = "审理状态") @Schema(description = "审理状态")
private Integer reviewStatus; private Short reviewStatus;
/** /**
* 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理; * 业务类型-[1]:内部审理返修;[2]:内部审理报废;[3]:ERP审理;
*/ */

@ -26,8 +26,11 @@ public interface IErpDataLogisticsClient {
String QUERY_ALLOCATION_MESS = API_PREFIX + "/queryAllocationMess"; String QUERY_ALLOCATION_MESS = API_PREFIX + "/queryAllocationMess";
String QUERY_ALLOCATION_MESS_NUM = API_PREFIX + "/queryAllocationMessNum"; String QUERY_ALLOCATION_MESS_NUM = API_PREFIX + "/queryAllocationMessNum";
String QUERY_ALLOCATION_STATISTICS = API_PREFIX + "/queryAllocationStatistics";
String QUERY_ALLOCATION_STATISTICS_NUM = API_PREFIX + "/queryAllocationStatisticsNum";
/** /**
* 查询调拨单 * 查询配套信息详情
* @param dto 查询条件 * @param dto 查询条件
* @return 调拨单 * @return 调拨单
*/ */
@ -35,10 +38,26 @@ public interface IErpDataLogisticsClient {
R<List<AllocationMessVO>> queryAllocationMess(@RequestBody AllocationMessPageDTO dto); R<List<AllocationMessVO>> queryAllocationMess(@RequestBody AllocationMessPageDTO dto);
/** /**
* 查询调拨单数量 * 查询配套信息详情数量
* @param dto 查询条件 * @param dto 查询条件
* @return 数量 * @return 数量
*/ */
@PostMapping(QUERY_ALLOCATION_MESS_NUM) @PostMapping(QUERY_ALLOCATION_MESS_NUM)
R<Integer> queryAllocationMessNum(@RequestBody AllocationMessPageDTO dto); R<Integer> queryAllocationMessNum(@RequestBody AllocationMessPageDTO dto);
/**
* 查询配套信息统计
* @param dto 查询条件
* @return 调拨单
*/
@PostMapping(QUERY_ALLOCATION_STATISTICS)
R<List<AllocationMessVO>> queryAllocationStatistics(@RequestBody AllocationMessPageDTO dto);
/**
* 查询配套信息统计数量
* @param dto 查询条件
* @return 数量
*/
@PostMapping(QUERY_ALLOCATION_STATISTICS_NUM)
R<Integer> queryAllocationStatisticsNum(@RequestBody AllocationMessPageDTO dto);
} }

@ -24,4 +24,14 @@ public class IErpDataLogisticsClientFallback implements IErpDataLogisticsClient{
public R<Integer> queryAllocationMessNum(AllocationMessPageDTO dto) { public R<Integer> queryAllocationMessNum(AllocationMessPageDTO dto) {
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }
@Override
public R<List<AllocationMessVO>> queryAllocationStatistics(AllocationMessPageDTO dto) {
return R.fail("获取数据失败");
}
@Override
public R<Integer> queryAllocationStatisticsNum(AllocationMessPageDTO dto) {
return R.fail("获取数据失败");
}
} }

@ -7,6 +7,7 @@ import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletRequest;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.common.exception.BusinessException;
import org.springblade.core.boot.ctrl.BladeController; import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.desk.oldv1.constant.Constant; import org.springblade.desk.oldv1.constant.Constant;
import org.springblade.desk.oldv1.pojo.ResultInfo; import org.springblade.desk.oldv1.pojo.ResultInfo;
@ -52,4 +53,22 @@ public class AiWebApiController extends BladeController {
return ResultInfo.ok(); return ResultInfo.ok();
} }
@PostMapping(value = "/deleteReviewOrder")
@Operation(summary = "审理结束回调接口")
public ResultInfo deleteReviewOrder(HttpServletRequest request) throws Exception {
JSONObject params = (JSONObject) request.getAttribute(Constant.WEBAPI_REQUEST_PARAMETERS);
// 添加 调试log
log.info("审理单删除调用接口 params = {}", params);
if (params == null || params.size() == 0) {
throw new BusinessException("参数传递异常!");
}
try {
String trialId = params.getString("trialId");
qcReviewSheetService.deleteReviewOrder(trialId);
} catch (Exception e) {
log.error("审理单删除调用接口{}", params.toJSONString(), e);
}
return ResultInfo.ok();
}
} }

@ -17,7 +17,8 @@
b.change_no as changeNo, b.change_no as changeNo,
b.craft_time as craftTime, b.craft_time as craftTime,
a.DIS_ASSIGN_TIME as taskTime, a.DIS_ASSIGN_TIME as taskTime,
case a.DIS_TASK_STATUS when 0 then '待分派' when 1 then '已分派' when 2 then '已处理' when 3 then '待质量处理' end as status case a.DIS_TASK_STATUS when 0 then '待分派' when 1 then '已分派' when 2 then '已处理' when 3 then '待质量处理'
end as status
FROM FROM
MES_DIS_TASKING a INNER JOIN DS_TASKING b ON a.DT_ID = b.ID MES_DIS_TASKING a INNER JOIN DS_TASKING b ON a.DT_ID = b.ID
<where> <where>
@ -58,13 +59,15 @@
a.WORK_QTY AS workQty, a.WORK_QTY AS workQty,
a.MAKE_TEAM AS tsId, a.MAKE_TEAM AS tsId,
e.TS_NAME AS tsName, e.TS_NAME AS tsName,
a.RECEIVE_MAN AS userId a.RECEIVE_MAN AS userId,
f.TS_NAME AS mainTsName
FROM FROM
MES_WORK_PLAN a MES_WORK_PLAN a
INNER JOIN MES_WORK_ORDER b ON a.WO_ID = b.ID INNER JOIN MES_WORK_ORDER b ON a.WO_ID = b.ID
INNER JOIN MES_YIELD_ORDER c ON b.yo_id = c.id INNER JOIN MES_YIELD_ORDER c ON b.yo_id = c.id
LEFT JOIN BS_PROCESS_SET d ON a.PPS_ID = d.ID LEFT JOIN BS_PROCESS_SET d ON a.PPS_ID = d.ID
LEFT JOIN BS_TEAM_SET e ON a.MAKE_TEAM = e.ID LEFT JOIN BS_TEAM_SET e ON a.MAKE_TEAM = e.ID
LEFT JOIN BS_TEAM_SET f ON b.TS_ID = f.ID
WHERE a.WO_ID = #{id} WHERE a.WO_ID = #{id}
ORDER BY a.ORDERS ORDER BY a.ORDERS
</select> </select>

@ -11,6 +11,7 @@ import org.springblade.desk.produce.pojo.vo.BatchPrepareVO;
import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO; import org.springblade.desk.produce.pojo.vo.QueryByReadStatusVO;
import org.springblade.desk.produce.pojo.vo.WorkOrderVO; import org.springblade.desk.produce.pojo.vo.WorkOrderVO;
import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO; import org.springblade.desk.produce.pojo.vo.WorkPlanRunVO;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.scheduling.pojo.entity.WorkOrderEntity; import org.springblade.scheduling.pojo.entity.WorkOrderEntity;
import org.springblade.desk.produce.pojo.vo.*; import org.springblade.desk.produce.pojo.vo.*;
import java.util.List; import java.util.List;
@ -217,7 +218,7 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
* @param wp 工单计划 * @param wp 工单计划
* @param wo 工单 * @param wo 工单
*/ */
void qualified(WorkPlan wp, WorkOrder wo, String userName); void qualified(WorkPlan wp, InspectionTask taskWorkOrder ,WorkOrder wo, String userName);
/** /**
* <p>方法名: setRbFilePreserveData </p> * <p>方法名: setRbFilePreserveData </p>
@ -263,9 +264,16 @@ public interface IWorkOrderService extends BaseService<WorkOrder> {
void launchTest(Map<String,Object> data, BladeUser user) throws Exception; void launchTest(Map<String,Object> data, BladeUser user) throws Exception;
/** /**
* 查询配信息 * 查询配信息
* @param dto 查询条件 * @param dto 查询条件
* @return 分配信息 * @return 分配信息
*/ */
Map<String,Object> queryAllocationMess(AllocationMessPageDTO dto); Map<String,Object> queryAllocationMess(AllocationMessPageDTO dto);
/**
* 查询配套统计信息
* @param dto 查询条件
* @return 分配信息
*/
Map<String, Object> queryAllocationStatistics(AllocationMessPageDTO dto);
} }

@ -213,7 +213,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
if (wp.getStatus() <= WorkPlan.STATUS_START) { if (wp.getStatus() <= WorkPlan.STATUS_START) {
// 修改本序 // 修改本序
wp.setFactStartTime(null); wp.setFactStartTime(null);
wp.setUnqualifiedQty(0); wp.setUnqualifiedQty(0d);
wp.setStatus(WorkPlan.STATUS_NO_START); wp.setStatus(WorkPlan.STATUS_NO_START);
workPlanMapper.updateById(wp); workPlanMapper.updateById(wp);
WorkPlan frontWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>() WorkPlan frontWorkPlan = workPlanMapper.selectOne(new LambdaQueryWrapper<WorkPlan>()
@ -344,7 +344,7 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
wp.setMakeTeam(teamSet.getId()); wp.setMakeTeam(teamSet.getId());
wp.setOem(null); wp.setOem(null);
wp.setPlanStartTime(null); wp.setPlanStartTime(null);
wp.setUnqualifiedQty(0); wp.setUnqualifiedQty(0d);
wp.setWorkQty(0d); wp.setWorkQty(0d);
wp.setPlanEndTime(null); wp.setPlanEndTime(null);
wp.setSubsidiaryTeam(null); wp.setSubsidiaryTeam(null);

@ -2121,7 +2121,9 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
} }
@Override @Override
public void qualified(WorkPlan wp, WorkOrder wo, String userName) { public void qualified(WorkPlan wp, InspectionTask wc, WorkOrder wo, String userName) {
wc.setQualifiedQty(wo.getMakeQty());
wc.setCheckResult(InspectionTask.CHECK_RESULT_OK);
// 检验完成修改车间订单状态(注意如果wp中状态是已完成,则不更改订单状态和工序状态,只对后续工序的接收数和完工数进行更改) // 检验完成修改车间订单状态(注意如果wp中状态是已完成,则不更改订单状态和工序状态,只对后续工序的接收数和完工数进行更改)
WorkPlan nextWorkPlan = workPlanService.getById(wp.getNextWpId()); WorkPlan nextWorkPlan = workPlanService.getById(wp.getNextWpId());
if (wp.getStatus() < WorkPlan.STATUS_COMPLETE) { if (wp.getStatus() < WorkPlan.STATUS_COMPLETE) {
@ -2680,6 +2682,17 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
return result; return result;
} }
@Override
public Map<String,Object> queryAllocationStatistics(AllocationMessPageDTO dto) {
List<AllocationMessVO> allocationMessList = erpDataLogisticsClient.queryAllocationStatistics(dto).getData();
int totalAllocationMessNum = erpDataLogisticsClient.queryAllocationStatisticsNum(dto).getData();
Map<String,Object> result = new HashMap<>(3);
result.put("current",dto.getCurrent());
result.put("record",allocationMessList);
result.put("total",totalAllocationMessNum);
return result;
}
@Override @Override
public void launchTest(Map<String, Object> data, BladeUser user) throws Exception { public void launchTest(Map<String, Object> data, BladeUser user) throws Exception {
// 提取参数 // 提取参数

@ -100,7 +100,7 @@ public class WorkPlanServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPla
wp.setTestQty(0d); wp.setTestQty(0d);
wp.setScrapQty(0d); wp.setScrapQty(0d);
wp.setCreateTime(new Date()); wp.setCreateTime(new Date());
wp.setUnqualifiedQty(0); wp.setUnqualifiedQty(0d);
//判定工序是否特殊工序,如果是,则附属班组存在值 //判定工序是否特殊工序,如果是,则附属班组存在值
if (wp.getMakeTeam() != null) { if (wp.getMakeTeam() != null) {
BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId()); BsProcessSetEntity processSet = bsProcessSetService.getById(wp.getPpsId());

@ -316,4 +316,11 @@ public class PlanTestController extends BladeController {
public R<Map<String,Object>> queryAllocationMess(@RequestBody AllocationMessPageDTO allocationMessPageDTO) { public R<Map<String,Object>> queryAllocationMess(@RequestBody AllocationMessPageDTO allocationMessPageDTO) {
return R.data(workOrderService.queryAllocationMess(allocationMessPageDTO)); return R.data(workOrderService.queryAllocationMess(allocationMessPageDTO));
} }
@PostMapping(value = "/queryAllocationStatistics")
@ApiOperationSupport(order = 1)
@Operation(summary = "加载配套信息统计", description = "filterContext 查询参数")
public R<Map<String,Object>> queryAllocationStatistics(@RequestBody AllocationMessPageDTO allocationMessPageDTO) {
return R.data(workOrderService.queryAllocationStatistics(allocationMessPageDTO));
}
} }

@ -14,6 +14,7 @@ import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO; import org.springblade.desk.quality.pojo.dto.PpmReportDetailDTO;
import org.springblade.wms.pojo.entity.SyDockingLog;
import java.util.List; import java.util.List;
@ -61,4 +62,6 @@ public interface ReviewSheetMapper extends BaseMapper<ReviewSheet> {
List<PpmReportDetailDTO> listErpNew(IPage<PpmReportDetailDTO> page, List<PpmReportDetailDTO> listErpNew(IPage<PpmReportDetailDTO> page,
@Param("q") ReviewSheetErpSearch search); @Param("q") ReviewSheetErpSearch search);
List<SyDockingLog> queryGdByCode(String trialId);
} }

@ -346,4 +346,7 @@
and lotno like concat(concat('%', #{q.dutyBatNo}),'%') and lotno like concat(concat('%', #{q.dutyBatNo}),'%')
</if> </if>
</select> </select>
<select id="queryGdByCode" resultType="org.springblade.wms.pojo.entity.SyDockingLog">
select * from SY_DOCKING_LOG where read_type = '审理结束回调接口' and code = #{trialId}
</select>
</mapper> </mapper>

@ -37,4 +37,6 @@ public interface WorkPlanItemMapper extends BaseMapper<WorkPlanItem> {
* @return List<WorkPlanItemExcel> * @return List<WorkPlanItemExcel>
*/ */
List<WorkPlanItemExcel> exportWorkPlanItem(@Param("ew") Wrapper<WorkPlanItem> queryWrapper); List<WorkPlanItemExcel> exportWorkPlanItem(@Param("ew") Wrapper<WorkPlanItem> queryWrapper);
List<WorkPlanItem> listByWoId(Long woId);
} }

@ -37,4 +37,16 @@
SELECT * SELECT *
FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment} FROM QA_WORK_PLAN_ITEM ${ew.customSqlSegment}
</select> </select>
<select id="listByWoId" resultType="org.springblade.desk.quality.pojo.entity.WorkPlanItem">
SELECT
a.*
FROM
QA_WORK_PLAN_ITEM a
INNER JOIN mes_work_plan b ON a.wp_id = b.ID
LEFT JOIN BS_PROCESS_SET c ON b.PPS_ID = c.ID
WHERE
b.wo_id = #{woId}
AND a.ITEM_NAME != '单件包装材料数量'
AND c.NAME != '烧结包装防护'
</select>
</mapper> </mapper>

@ -16,6 +16,8 @@ import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.PrintThicknessCraftCard; import org.springblade.desk.produce.pojo.dto.PrintThicknessCraftCard;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveDetailEntity;
import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity; import org.springblade.desk.produce.pojo.entity.MesRbFilePreserveSlotEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.quality.excel.InspectionTaskExcel; import org.springblade.desk.quality.excel.InspectionTaskExcel;
import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.request.InspectionTaskSearch; import org.springblade.desk.quality.pojo.request.InspectionTaskSearch;
@ -131,5 +133,7 @@ public interface IInspectionTaskService extends BaseService<InspectionTask> {
List<PrintThicknessCraftCard> printThicknessList(List<Long> idArr); List<PrintThicknessCraftCard> printThicknessList(List<Long> idArr);
List<MesRbFilePreserveDetailEntity> getByRfpsIdMesNew(Long rfpsId); List<MesRbFilePreserveDetailEntity> getByRfpsIdMesNew(Long rfpsId);
public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo,Long rfpId); void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId);
void computeOrderQty(WorkPlan wp, InspectionTask task, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty);
} }

@ -55,4 +55,10 @@ public interface IWorkPlanItemService extends BaseService<WorkPlanItem> {
void saveCheckItem(WorkPlan wp, List<WorkPlanItem> checkItemList, List<Long> deleteIds, String s); void saveCheckItem(WorkPlan wp, List<WorkPlanItem> checkItemList, List<Long> deleteIds, String s);
void deleteItem(List<Long> deleteIds); void deleteItem(List<Long> deleteIds);
List<WorkPlanItem> listByWpId(Long wpId, Integer checkResultNo);
List<WorkPlanItem> listByWpId(Long wpId);
List<WorkPlanItem> listByWoId(Long woId);
} }

@ -189,7 +189,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
vo.setOrderInfo(detailDetail); vo.setOrderInfo(detailDetail);
if (null == detailDetail.getCurrentProcessName()) { if (null == detailDetail.getCurrentProcessName()) {
vo.setProcessName(""); vo.setProcessName("");
@ -590,7 +589,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
@Override @Override
public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) { public IPage<InspectionTaskListVO> listSearch(IPage<InspectionTaskListVO> page, InspectionTaskSearch search) {
List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search); List<InspectionTaskListVO> listVO = baseMapper.listSearch(page, search);
@ -978,7 +976,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
//222222222222222222222222222222222222222222222 //222222222222222222222222222222222222222222222
// 根据电子档案维护组装数据(线下) // 根据电子档案维护组装数据(线下)
@ -1536,10 +1533,9 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
task.setCheckUserId(AuthUtil.getUserId()); task.setCheckUserId(AuthUtil.getUserId());
task.setCheckDate(LocalDateTime.now()); task.setCheckDate(LocalDateTime.now());
this.computeOrderQty(wp, wo, sumCheckQ, sumTestQty, sumLossQty, 0); this.computeOrderQty(wp, task, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
// this.qualified(wp, wc, wo);
IWorkOrderService workOrderService = context.getBean(IWorkOrderService.class); IWorkOrderService workOrderService = context.getBean(IWorkOrderService.class);
workOrderService.qualified(wp,wo,AuthUtil.getUserName()); workOrderService.qualified(wp, task, wo, AuthUtil.getUserName());
} else if (countNA == itemList.size()) { // 全部item NA } else if (countNA == itemList.size()) { // 全部item NA
checkResult = InspectionTaskConst.CHECK_RESULT_NA; checkResult = InspectionTaskConst.CHECK_RESULT_NA;
} else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格 } else if (countNO >= 0 && countNO <= itemList.size()) { // 不合格
@ -1572,8 +1568,14 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
public void setApplicationContext(ApplicationContext context) { public void setApplicationContext(ApplicationContext context) {
this.context = context; this.context = context;
} }
public void computeOrderQty(WorkPlan wp, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
@Override
public void computeOrderQty(WorkPlan wp, InspectionTask wc, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
if (wc != null) {
wc.setScrapQty(wc.getScrapQty() + scrapQty);
wc.setCheckQty(wc.getCheckQty() + checkQ);
wc.setLossQty(wc.getLossQty() + lossQty);
}
if (wo != null) { if (wo != null) {
wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty)); wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty));
wo.setTestQty(wo.getTestQty() + testQty); wo.setTestQty(wo.getTestQty() + testQty);
@ -1761,6 +1763,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
return obj; return obj;
} }
public List<PrintChildCheck> getCheckListDetail(List<PrintChildCheck> checkList, List<WorkPlanItem> piLst, Boolean eleOrPrint) { public List<PrintChildCheck> getCheckListDetail(List<PrintChildCheck> checkList, List<WorkPlanItem> piLst, Boolean eleOrPrint) {
if (piLst != null && piLst.size() > 0) { if (piLst != null && piLst.size() > 0) {
@ -1813,7 +1816,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName); String checkManByNewErp = workPlanMapper.getCheckManByNewErpMes(userName);
if (eleOrPrint) { if (eleOrPrint) {
cc.setImgUrl(checkManByNewErp); cc.setImgUrl(checkManByNewErp);
} else { } else {
@ -1889,7 +1891,6 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
} }
@Override @Override
public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) { public Object pagePrintSjEleFiles(Long woId, Integer yieldType, List<Boolean> planList, List<Boolean> moduleList) {
@ -1971,6 +1972,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
List<MesRbFilePreserveDetailEntity> list = workPlanMapper.getByRfpsIdMesNew(id); List<MesRbFilePreserveDetailEntity> list = workPlanMapper.getByRfpsIdMesNew(id);
return list; return list;
} }
@Override @Override
public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId) { public void saveOrEditMes(List<MesRbFilePreserveSlotEntity> submitList, List<Long> deleteIds, BladeUser curUserInfo, Long rfpId) {
Map<String, Long> slotNameCountMap = submitList.stream() Map<String, Long> slotNameCountMap = submitList.stream()

@ -1,6 +1,3 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.service.impl; package org.springblade.desk.quality.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
@ -9,14 +6,15 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
@ -27,40 +25,41 @@ import org.springblade.desk.basic.constant.BaseRequest;
import org.springblade.desk.basic.constant.BaseValue; import org.springblade.desk.basic.constant.BaseValue;
import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl; import org.springblade.desk.basic.service.en.impl.EnBaseServiceImpl;
import org.springblade.desk.basic.util.IdUtil; import org.springblade.desk.basic.util.IdUtil;
import org.springblade.desk.order.mapper.YieldOrderMapper;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.mapper.WorkOrderRunMapper;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkOrderRun;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.service.IWorkOrderService;
import org.springblade.desk.produce.service.IWorkPlanService; import org.springblade.desk.produce.service.IWorkPlanService;
import org.springblade.desk.quality.constant.InspectionTaskConst; import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.constant.ReviewSheetConst; import org.springblade.desk.quality.constant.ReviewSheetConst;
import org.springblade.desk.quality.excel.ReviewSheetExcel; import org.springblade.desk.quality.excel.ReviewSheetExcel;
import org.springblade.desk.quality.mapper.ReviewSheetMapper; import org.springblade.desk.quality.mapper.ReviewSheetMapper;
import org.springblade.desk.quality.pojo.dto.*; import org.springblade.desk.quality.pojo.dto.*;
import org.springblade.desk.quality.pojo.entity.InspectionTask; import org.springblade.desk.quality.pojo.entity.*;
import org.springblade.desk.quality.pojo.entity.ReviewDuty;
import org.springblade.desk.quality.pojo.entity.ReviewFault;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetErpSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetInitSearch;
import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch; import org.springblade.desk.quality.pojo.request.ReviewSheetRedoScrapSearch;
import org.springblade.desk.quality.pojo.vo.*; import org.springblade.desk.quality.pojo.vo.*;
import org.springblade.desk.quality.service.IInspectionTaskService; import org.springblade.desk.quality.service.*;
import org.springblade.desk.quality.service.IReviewDutyService;
import org.springblade.desk.quality.service.IReviewFaultService;
import org.springblade.desk.quality.service.IReviewSheetService;
import org.springblade.desk.quality.wrapper.ReviewSheetDetailWrapper; import org.springblade.desk.quality.wrapper.ReviewSheetDetailWrapper;
import org.springblade.erpdata.feign.IErpMesRbPkpqryClient; import org.springblade.erpdata.feign.IErpMesRbPkpqryClient;
import org.springblade.system.feign.IDictClient; import org.springblade.system.feign.IDictClient;
import org.springblade.system.feign.ISysClient; import org.springblade.system.feign.ISysClient;
import org.springblade.system.feign.IUserClient; import org.springblade.system.feign.IUserClient;
import org.springblade.system.pojo.entity.User;
import org.springblade.system.pojo.entity.UserInfo; import org.springblade.system.pojo.entity.UserInfo;
import org.springblade.wms.pojo.entity.SyDockingLog;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope; import org.springframework.context.annotation.Lazy;
import org.springframework.http.HttpEntity;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.List; import java.util.List;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import org.springframework.http.HttpHeaders; import org.springframework.http.HttpHeaders;
@ -73,12 +72,9 @@ import org.springframework.http.MediaType;
*/ */
@Service @Service
@Data @Data
//@AllArgsConstructor
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@Slf4j @Slf4j
//@RefreshScope public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet> implements IReviewSheetService {
public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper, ReviewSheet>
implements IReviewSheetService {
@Value("${request.newErp.url}") @Value("${request.newErp.url}")
private String newErpUrl; private String newErpUrl;
@Resource @Resource
@ -99,6 +95,18 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
@Resource @Resource
private IErpMesRbPkpqryClient erpMesRbPkpqryClient; private IErpMesRbPkpqryClient erpMesRbPkpqryClient;
@Lazy
@Autowired
private IWorkOrderService workOrderService;
private final IInspectionTaskService inspectionTaskService;
private final WorkOrderRunMapper workOrderRunMapper;
private final YieldOrderMapper yieldOrderMapper;
private final IWorkPlanItemService workPlanItemService;
@Override @Override
public IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet) { public IPage<ReviewSheetDetailVO> selectReviewSheetPage(IPage<ReviewSheetDetailVO> page, ReviewSheetDetailVO reviewSheet) {
return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet)); return page.setRecords(baseMapper.selectReviewSheetPage(page, reviewSheet));
@ -283,44 +291,186 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
} }
@Override @Override
public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart, public void reviewResult(String trialId, Short resultStatus, String reviewMan, String liabilityPart, Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
Integer scrapQty, Integer reworkQty, Integer concedeQty, String memo) throws Exception {
ReviewSheet rs = getByTrialId(trialId); ReviewSheet rs = getByTrialId(trialId);
if (rs == null) { if (rs == null) {
throw new BusinessException("审理单信息不存在!"); throw new BusinessException("审理单信息不存在!");
} }
InspectionTask wc = taskService.getById(rs.getTaskId()); InspectionTask wc = taskService.getById(rs.getTaskId());
WorkPlan wp = workPlanService.getById(wc.getWpId());
WorkOrder wo = workOrderService.getById(wp.getWoId());
// rs.setReviewUserId(); "reviewMan" if (WorkOrder.RUN_STATUS_HANDOVER.equals(wo.getRunStatus())) {
log.error("车间订单状态为已交接,不处理审理单!{}", wo.getWoCode());
return;
}
List<User> users = userClient.userListByName(reviewMan);
rs.setReviewUserId(CollectionUtils.isNotEmpty(users) ? users.get(0).getId() : null);
rs.setMemo(memo); rs.setMemo(memo);
rs.setReviewDate(LocalDateTime.now()); rs.setReviewDate(LocalDateTime.now());
rs.setReviewStatus((int) resultStatus); // todo: rs.setReviewStatus(resultStatus);
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
// 装配模式 // 装配模式
if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) { if (ReviewSheetConst.MODE_ASSEMBLY.equals(rs.getReviewOrderMode())) {
// 如果相关零件号存在 报废数量直接扣除
if (StringUtils.isNotBlank(liabilityPart)) {
if (scrapQty != null && scrapQty > 0) {
//20250407 zxh 装配模式有报废且有相关零件时,校验订单加工数需大于报废数后再进行扣数
if (wo.getMakeQty() >= scrapQty) {
inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty);
}
}
} else { // 将报废数累加,不扣生产数量
if (scrapQty != null && scrapQty > 0) {
if (wc != null) {
wc.setScrapQty(wc.getScrapQty() + scrapQty);
}
if (wo != null) {
wo.setScrapQty(wo.getScrapQty() + scrapQty);
}
}
}
} }
// 零件模式 // 零件模式
if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) { else if (ReviewSheetConst.MODE_PART.equals(rs.getReviewOrderMode())) {
// 如果有报废数量直接扣除
if (scrapQty != null && scrapQty > 0) {
//20250329 zxh 审理单多次归档问题处理
List<SyDockingLog> queryGdByCode = baseMapper.queryGdByCode(trialId);
if (queryGdByCode != null && !queryGdByCode.isEmpty()) {
wo.setScrapQty(wo.getScrapQty() - wc.getScrapQty());
wo.setMakeQty(wo.getMakeQty() + wc.getScrapQty());
wp.setWorkQty(wp.getWorkQty() + wc.getScrapQty());
wp.setScrapQty(wp.getScrapQty() - wc.getScrapQty());
wc.setScrapQty(0d);
}
inspectionTaskService.computeOrderQty(wp, wc, wo, 0, 0, 0, scrapQty);
}
}
//如果有返工数量,则直接返工
if (reworkQty != null && reworkQty > 0) {
wc.setUnqualifiedQty(wo.getMakeQty());
wc.setReworkQty(Double.valueOf(reworkQty));
wp.setUnqualifiedQty(wo.getMakeQty());
} else {
//如果全部报废则更改车间订单为全部报废
if (wo.getMakeQty().intValue() <= 0) {
//检验完成修改车间订单
workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null);
} else {
// 查询此工序是否有试验项目,如果有说明是检验工序
List<WorkPlanItem> list = workPlanItemService.listByWpId(wp.getId());
if (list != null && !list.isEmpty()) {
//修改检验明细为合格
list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NO);
list.forEach(item -> item.setCheckResult(InspectionTask.CHECK_RESULT_OK));
//判定是否还有未检验,如果没有,修改检验为合格
list = workPlanItemService.listByWpId(wp.getId(), InspectionTask.CHECK_RESULT_NOT);
if (list.isEmpty()) {
// 扣除实验数、消耗数
List<WorkPlanItem> prWorkPlanItemList = workPlanItemService.listByWpId(wp.getId());
int sumCheckQ = 0, sumTestQty = 0, sumLossQty = 0;
for (WorkPlanItem wpi : prWorkPlanItemList) {
sumCheckQ += wpi.getCheckQty();
sumTestQty += wpi.getTestQty();
sumLossQty += wpi.getLossQty();
}
List<WorkPlanItem> prWorkPlanItems = workPlanItemService.listByWoId(wo.getId());
int sumAllTestQty = 0;
int sumAllLostQty = 0;
for (WorkPlanItem prWorkPlanItem : prWorkPlanItems) {
sumAllTestQty += prWorkPlanItem.getTestQty();
sumAllLostQty += prWorkPlanItem.getLossQty();
}
//周新昊 20241104 加日志
//zxh 20241128 审理单归档后扣除实验数前增加校验
//zxh 20250423 条件增加||损耗数校验
if (!(wo.getTestQty().equals(sumAllTestQty)) || !(wo.getLossQty().equals(sumAllLostQty))) {
inspectionTaskService.computeOrderQty(wp, wc, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
}
workOrderService.qualified(wp, wc, wo, userClient.userInfoById(wc.getCheckUserId()).getData().getRealName());
} else {
wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT);
// 如果还有未检验得试验项目、继续检验
wo.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理结束回调接口修改订单状态为检验中");
workOrderService.updateById(wo);
}
} else {
wc.setCheckResult(InspectionTask.CHECK_RESULT_NOT);
wo.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE);
workOrderService.updateById(wo);
}
if (wo.getMakeQty() < 1) {
//检验完成修改车间订单
workOrderService.updateStatus(Collections.singletonList(wo.getId()), WorkOrder.RUN_STATUS_SCRAP, null, null);
}
} }
}
//zxh 20250617 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格 //zxh 20250617 审理结论为让步接收时,将检验记录中不合格数清零,检验状态改为合格
if (resultStatus == 3) { if (resultStatus == 3) {
wc.setUnqualifiedQty(0d); wc.setUnqualifiedQty(0d);
wc.setCheckResult(InspectionTaskConst.CHECK_RESULT_OK); wc.setCheckResult(InspectionTaskConst.CHECK_RESULT_OK);
} }
WorkOrderRun wor = workOrderRunMapper.selectById(wo.getWorId());
YieldOrder yieldOrder = yieldOrderMapper.selectById(wo.getYoId());
if (wor != null && wor.getInCustomer() != null && !yieldOrder.getManualIncrease()) {
//外协交件单号为空不调用erp检验接口
if (StringUtils.isNotBlank(wor.getDeliverKey())) {
//调用erp检验接口
// erpMesRbPkpqryClient.checkCompleteErpBackFill(wor.getWoCode(), wor.getDeliverKey(), wp.getWorkQty(), 0, userClient.userInfoById(wc.getCheckUserId()).getData().getRealName());
}
}
} }
@Override @Override
public void deleteReviewOrder(String trialId) throws Exception { public void deleteReviewOrder(String trialId) {
ReviewSheet reviewSheet = getByTrialId(trialId); ReviewSheet reviewSheet = getByTrialId(trialId);
if (reviewSheet == null) { if (reviewSheet == null) {
throw new BusinessException("审理单信息不存在!"); throw new ServiceException("审理单信息不存在!");
} }
// todo: mes v1 //责任零件
dutyService.remove(Wrappers.lambdaQuery(ReviewDuty.class).eq(ReviewDuty::getReviewSheetId, reviewSheet.getId()));
//问题故障
faultService.remove(Wrappers.lambdaQuery(ReviewFault.class).eq(ReviewFault::getReviewSheetId, reviewSheet.getId()));
InspectionTask prWorkCheck = inspectionTaskService.getById(reviewSheet.getTaskId());
if (prWorkCheck != null) {
// 将审理状态改为初始值
prWorkCheck.setReviewStatus((short) 0);
inspectionTaskService.updateById(prWorkCheck);
WorkPlan workPlan = workPlanService.getById(prWorkCheck.getWpId());
if (workPlan != null) {
WorkOrder workOrder = workOrderService.getById(workPlan.getWoId());
if (workOrder != null && workOrder.getRunStatus() < WorkOrder.RUN_STATUS_COMPLETED) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_RECEIVE);
//zxh 20250522 增加记录订单变更为加工中日志
// 判定当前序是否还有未检验得项目,如果有修改状态未检验中,如果没有修改未加工中
List<WorkPlanItem> prWorkPlanItems;
prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NOT);
if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理单删除调用接口修改订单状态为检验中1");
} else if (prWorkPlanItems.isEmpty()) {
// 判断是否有试验项目不合格
prWorkPlanItems = workPlanItemService.listByWpId(prWorkCheck.getWpId(), InspectionTask.CHECK_RESULT_NO);
if (prWorkPlanItems != null && !prWorkPlanItems.isEmpty()) {
workOrder.setRunStatus(WorkOrder.RUN_STATUS_CHECK);
log.info("审理单删除调用接口修改订单状态为检验中2");
}
}
workOrderService.updateById(workOrder);
}
}
}
this.removeById(reviewSheet);
} }
@Override @Override
@ -494,10 +644,10 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
if(1==selfReviewFlag){ if(1==selfReviewFlag){
//通过 //通过
rs.setReviewStatus(3); rs.setReviewStatus((short) 3);
}else{ }else{
//驳回 //驳回
rs.setReviewStatus(4); rs.setReviewStatus((short) 4);
} }
BladeUser bu = AuthUtil.getUser(); BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu); log.info("ReviewSheet bu = {}", bu);

@ -228,4 +228,19 @@ public class WorkPlanItemServiceImpl extends BaseServiceImpl<WorkPlanItemMapper,
wpItemDetailService.remove(Wrappers.lambdaQuery(WorkPlanItemDetail.class).in(WorkPlanItemDetail::getWorkPlanItemId, deleteIds)); wpItemDetailService.remove(Wrappers.lambdaQuery(WorkPlanItemDetail.class).in(WorkPlanItemDetail::getWorkPlanItemId, deleteIds));
} }
} }
@Override
public List<WorkPlanItem> listByWpId(Long wpId, Integer checkResultNo) {
return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId).eq(WorkPlanItem::getCheckResult, checkResultNo));
}
@Override
public List<WorkPlanItem> listByWpId(Long wpId) {
return this.list(Wrappers.lambdaQuery(WorkPlanItem.class).eq(WorkPlanItem::getWpId, wpId));
}
@Override
public List<WorkPlanItem> listByWoId(Long woId) {
return baseMapper.listByWoId(woId);
}
} }

@ -34,4 +34,14 @@ public class ErpDataLogisticsClient implements IErpDataLogisticsClient {
public R<Integer> queryAllocationMessNum(AllocationMessPageDTO dto) { public R<Integer> queryAllocationMessNum(AllocationMessPageDTO dto) {
return R.data(erpDataLogisticsService.queryAllocationMessNum(dto)); return R.data(erpDataLogisticsService.queryAllocationMessNum(dto));
} }
@Override
public R<List<AllocationMessVO>> queryAllocationStatistics(AllocationMessPageDTO dto) {
return R.data(erpDataLogisticsService.queryAllocationStatistics(dto));
}
@Override
public R<Integer> queryAllocationStatisticsNum(AllocationMessPageDTO dto) {
return R.data(erpDataLogisticsService.queryAllocationStatisticsNum(dto));
}
} }

@ -14,16 +14,30 @@ import java.util.List;
public interface ErpDataLogisticsMapper extends Mapper { public interface ErpDataLogisticsMapper extends Mapper {
/** /**
* 查询调拨单 * 查询配置信息详情
* @param dto 查询条件 * @param dto 查询条件
* @return 调拨单列表 * @return 调拨单列表
*/ */
List<AllocationMessVO> queryAllocationMess(@Param("dto") AllocationMessPageDTO dto); List<AllocationMessVO> queryAllocationMess(@Param("dto") AllocationMessPageDTO dto);
/** /**
* 查询调拨单数量 * 查询配置信息详情数量
* @param dto 查询条件 * @param dto 查询条件
* @return 调拨单数量 * @return 调拨单数量
*/ */
Integer queryAllocationMessNum(@Param("dto") AllocationMessPageDTO dto); Integer queryAllocationMessNum(@Param("dto") AllocationMessPageDTO dto);
/**
* 查询配置信息统计
* @param dto 查询条件
* @return 调拨单列表
*/
List<AllocationMessVO> queryAllocationStatistics(@Param("dto") AllocationMessPageDTO dto);
/**
* 查询配置信息统计数量
* @param dto 查询条件
* @return 调拨单数量
*/
Integer queryAllocationStatisticsNum(@Param("dto") AllocationMessPageDTO dto);
} }

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.springblade.erpdata.mapper.ErpDataLogisticsMapper"> <mapper namespace="org.springblade.erpdata.mapper.ErpDataLogisticsMapper">
<!-- 查询调拨单列表 --> <!-- 查询配套明细列表 -->
<select id="queryAllocationMess" resultType="org.springblade.desk.logistics.pojo.vo.AllocationMessVO"> <select id="queryAllocationMess" resultType="org.springblade.desk.logistics.pojo.vo.AllocationMessVO">
SELECT * FROM ( SELECT * FROM (
SELECT t1.*, ROWNUM no FROM ( SELECT t1.*, ROWNUM no FROM (
@ -20,6 +20,24 @@
<if test="dto.prtlotno != null and dto.prtlotno != ''"> <if test="dto.prtlotno != null and dto.prtlotno != ''">
AND a.prtlotno = #{dto.prtlotno} AND a.prtlotno = #{dto.prtlotno}
</if> </if>
<if test="dto.pkreqdat != null and dto.pkreqdat != ''">
AND a.pkreqdat = #{dto.pkreqdat}
</if>
<if test="dto.fjSplcode != null and dto.fjSplcode != ''">
AND a.fj_splcode = #{dto.fjSplcode}
</if>
<if test="dto.fjPkavqty != null and dto.fjPkavqty != ''">
AND a.fj_pkavqty = #{dto.fjPkavqty}
</if>
<if test="dto.serialno != null and dto.serialno != ''">
AND a.serialno = #{dto.serialno}
</if>
<if test="dto.prtmdept != null and dto.prtmdept != ''">
AND a.prtmdept = #{dto.prtmdept}
</if>
<if test="dto.plnsign != null and dto.plnsign != ''">
AND a.plnsign = #{dto.plnsign}
</if>
<if test="dto.mono != null and dto.mono != ''"> <if test="dto.mono != null and dto.mono != ''">
AND a.mono = #{dto.mono} AND a.mono = #{dto.mono}
</if> </if>
@ -29,12 +47,21 @@
<if test="dto.planner1 != null and dto.planner1 != ''"> <if test="dto.planner1 != null and dto.planner1 != ''">
AND a.planner1 = #{dto.planner1} AND a.planner1 = #{dto.planner1}
</if> </if>
<if test="dto.subpkdate != null and dto.subpkdate != ''">
AND a.subpkdate = #{dto.subpkdate}
</if>
<if test="dto.warctlr != null and dto.warctlr != ''"> <if test="dto.warctlr != null and dto.warctlr != ''">
AND a.warctlr = #{dto.warctlr} AND a.warctlr = #{dto.warctlr}
</if> </if>
<if test="dto.barcodeno != null and dto.barcodeno != ''">
AND a.barcodeno = #{dto.barcodeno}
</if>
<if test="dto.plandept != null and dto.plandept != ''"> <if test="dto.plandept != null and dto.plandept != ''">
AND a.plandept = #{dto.plandept} AND a.plandept = #{dto.plandept}
</if> </if>
<if test="dto.remark != null and dto.remark != ''">
AND a.remark LIKE '%' || #{dto.remark} || '%'
</if>
<if test="dto.prtclass != null and dto.prtclass != ''"> <if test="dto.prtclass != null and dto.prtclass != ''">
AND a.prtclass = #{dto.prtclass} AND a.prtclass = #{dto.prtclass}
</if> </if>
@ -47,41 +74,211 @@
</select> </select>
<!-- 查询调拨单数量 --> <!-- 查询配套明细数量 -->
<select id="queryAllocationMessNum" resultType="java.lang.Integer"> <select id="queryAllocationMessNum" resultType="java.lang.Integer">
SELECT COUNT(1) FROM dba_mgr.v_mes_rb_pkpqry SELECT COUNT(1) FROM dba_mgr.v_mes_rb_pkpqry
<where> <where>
<if test="dto.pkno != null and dto.pkno != ''"> <if test="dto.pkno != null and dto.pkno != ''">
AND pkno LIKE CONCAT('%', #{dto.pkno}, '%') AND a.pkno LIKE '%' || #{dto.pkno} || '%'
</if>
<if test="dto.prntno != null and dto.prntno != ''">
AND a.prntno LIKE '%' || #{dto.prntno} || '%'
</if>
<if test="dto.mtltmrk != null and dto.mtltmrk != ''">
AND a.mtltmrk = #{dto.mtltmrk}
</if>
<if test="dto.prtlotno != null and dto.prtlotno != ''">
AND a.prtlotno = #{dto.prtlotno}
</if>
<if test="dto.pkreqdat != null and dto.pkreqdat != ''">
AND a.pkreqdat = #{dto.pkreqdat}
</if>
<if test="dto.fjSplcode != null and dto.fjSplcode != ''">
AND a.fj_splcode = #{dto.fjSplcode}
</if>
<if test="dto.fjPkavqty != null and dto.fjPkavqty != ''">
AND a.fj_pkavqty = #{dto.fjPkavqty}
</if>
<if test="dto.serialno != null and dto.serialno != ''">
AND a.serialno = #{dto.serialno}
</if>
<if test="dto.prtmdept != null and dto.prtmdept != ''">
AND a.prtmdept = #{dto.prtmdept}
</if>
<if test="dto.plnsign != null and dto.plnsign != ''">
AND a.plnsign = #{dto.plnsign}
</if>
<if test="dto.mono != null and dto.mono != ''">
AND a.mono = #{dto.mono}
</if>
<if test="dto.schemer != null and dto.schemer != ''">
AND a.schemer = #{dto.schemer}
</if>
<if test="dto.planner1 != null and dto.planner1 != ''">
AND a.planner1 = #{dto.planner1}
</if>
<if test="dto.subpkdate != null and dto.subpkdate != ''">
AND a.subpkdate = #{dto.subpkdate}
</if>
<if test="dto.warctlr != null and dto.warctlr != ''">
AND a.warctlr = #{dto.warctlr}
</if>
<if test="dto.barcodeno != null and dto.barcodeno != ''">
AND a.barcodeno = #{dto.barcodeno}
</if>
<if test="dto.plandept != null and dto.plandept != ''">
AND a.plandept = #{dto.plandept}
</if>
<if test="dto.remark != null and dto.remark != ''">
AND a.remark LIKE '%' || #{dto.remark} || '%'
</if>
<if test="dto.prtclass != null and dto.prtclass != ''">
AND a.prtclass = #{dto.prtclass}
</if>
</where>
</select>
<select id="queryAllocationStatistics" resultType="org.springblade.desk.logistics.pojo.vo.AllocationMessVO">
SELECT * FROM (
SELECT t.*, ROWNUM no FROM (
SELECT
a.prtmdept,
a.subpkdate,
SUM(NVL(a.fj_pkavqty, 0)) AS fjpkavqty
FROM dba_mgr.v_mes_rb_pkpqry a
<where>
<if test="dto.pkno != null and dto.pkno != ''">
AND a.pkno LIKE '%' || #{dto.pkno} || '%'
</if>
<if test="dto.prntno != null and dto.prntno != ''">
AND a.prntno LIKE '%' || #{dto.prntno} || '%'
</if>
<if test="dto.mtltmrk != null and dto.mtltmrk != ''">
AND a.mtltmrk = #{dto.mtltmrk}
</if>
<if test="dto.prtlotno != null and dto.prtlotno != ''">
AND a.prtlotno = #{dto.prtlotno}
</if>
<if test="dto.pkreqdat != null and dto.pkreqdat != ''">
AND a.pkreqdat = #{dto.pkreqdat}
</if>
<if test="dto.fjSplcode != null and dto.fjSplcode != ''">
AND a.fj_splcode = #{dto.fjSplcode}
</if>
<if test="dto.fjPkavqty != null and dto.fjPkavqty != ''">
AND a.fj_pkavqty = #{dto.fjPkavqty}
</if>
<if test="dto.serialno != null and dto.serialno != ''">
AND a.serialno = #{dto.serialno}
</if>
<if test="dto.prtmdept != null and dto.prtmdept != ''">
AND a.prtmdept = #{dto.prtmdept}
</if>
<if test="dto.plnsign != null and dto.plnsign != ''">
AND a.plnsign = #{dto.plnsign}
</if>
<if test="dto.mono != null and dto.mono != ''">
AND a.mono = #{dto.mono}
</if>
<if test="dto.schemer != null and dto.schemer != ''">
AND a.schemer = #{dto.schemer}
</if>
<if test="dto.planner1 != null and dto.planner1 != ''">
AND a.planner1 = #{dto.planner1}
</if>
<if test="dto.subpkdate != null and dto.subpkdate != ''">
AND a.subpkdate = #{dto.subpkdate}
</if>
<if test="dto.warctlr != null and dto.warctlr != ''">
AND a.warctlr = #{dto.warctlr}
</if>
<if test="dto.barcodeno != null and dto.barcodeno != ''">
AND a.barcodeno = #{dto.barcodeno}
</if>
<if test="dto.plandept != null and dto.plandept != ''">
AND a.plandept = #{dto.plandept}
</if>
<if test="dto.remark != null and dto.remark != ''">
AND a.remark LIKE '%' || #{dto.remark} || '%'
</if>
<if test="dto.prtclass != null and dto.prtclass != ''">
AND a.prtclass = #{dto.prtclass}
</if>
</where>
GROUP BY a.prtmdept, a.subpkdate
ORDER BY a.subpkdate DESC, a.prtmdept DESC
) t
WHERE ROWNUM &lt;= #{dto.current} * #{dto.size}
)
WHERE no &gt;= (#{dto.current} - 1) * #{dto.size} + 1
</select>
<select id="queryAllocationStatisticsNum" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM (
SELECT 1
FROM dba_mgr.v_mes_rb_pkpqry a
<where>
<if test="dto.pkno != null and dto.pkno != ''">
AND a.pkno LIKE '%' || #{dto.pkno} || '%'
</if> </if>
<if test="dto.prntno != null and dto.prntno != ''"> <if test="dto.prntno != null and dto.prntno != ''">
AND prntno LIKE CONCAT('%', #{dto.prntno}, '%') AND a.prntno LIKE '%' || #{dto.prntno} || '%'
</if> </if>
<if test="dto.mtltmrk != null and dto.mtltmrk != ''"> <if test="dto.mtltmrk != null and dto.mtltmrk != ''">
AND mtltmrk = #{dto.mtltmrk} AND a.mtltmrk = #{dto.mtltmrk}
</if> </if>
<if test="dto.prtlotno != null and dto.prtlotno != ''"> <if test="dto.prtlotno != null and dto.prtlotno != ''">
AND prtlotno = #{dto.prtlotno} AND a.prtlotno = #{dto.prtlotno}
</if>
<if test="dto.pkreqdat != null and dto.pkreqdat != ''">
AND a.pkreqdat = #{dto.pkreqdat}
</if>
<if test="dto.fjSplcode != null and dto.fjSplcode != ''">
AND a.fj_splcode = #{dto.fjSplcode}
</if>
<if test="dto.fjPkavqty != null and dto.fjPkavqty != ''">
AND a.fj_pkavqty = #{dto.fjPkavqty}
</if>
<if test="dto.serialno != null and dto.serialno != ''">
AND a.serialno = #{dto.serialno}
</if>
<if test="dto.prtmdept != null and dto.prtmdept != ''">
AND a.prtmdept = #{dto.prtmdept}
</if>
<if test="dto.plnsign != null and dto.plnsign != ''">
AND a.plnsign = #{dto.plnsign}
</if> </if>
<if test="dto.mono != null and dto.mono != ''"> <if test="dto.mono != null and dto.mono != ''">
AND mono = #{dto.mono} AND a.mono = #{dto.mono}
</if> </if>
<if test="dto.schemer != null and dto.schemer != ''"> <if test="dto.schemer != null and dto.schemer != ''">
AND schemer = #{dto.schemer} AND a.schemer = #{dto.schemer}
</if> </if>
<if test="dto.planner1 != null and dto.planner1 != ''"> <if test="dto.planner1 != null and dto.planner1 != ''">
AND planner1 = #{dto.planner1} AND a.planner1 = #{dto.planner1}
</if>
<if test="dto.subpkdate != null and dto.subpkdate != ''">
AND a.subpkdate = #{dto.subpkdate}
</if> </if>
<if test="dto.warctlr != null and dto.warctlr != ''"> <if test="dto.warctlr != null and dto.warctlr != ''">
AND warctlr = #{dto.warctlr} AND a.warctlr = #{dto.warctlr}
</if>
<if test="dto.barcodeno != null and dto.barcodeno != ''">
AND a.barcodeno = #{dto.barcodeno}
</if> </if>
<if test="dto.plandept != null and dto.plandept != ''"> <if test="dto.plandept != null and dto.plandept != ''">
AND plandept = #{dto.plandept} AND a.plandept = #{dto.plandept}
</if>
<if test="dto.remark != null and dto.remark != ''">
AND a.remark LIKE '%' || #{dto.remark} || '%'
</if> </if>
<if test="dto.prtclass != null and dto.prtclass != ''"> <if test="dto.prtclass != null and dto.prtclass != ''">
AND prtclass = #{dto.prtclass} AND a.prtclass = #{dto.prtclass}
</if> </if>
</where> </where>
GROUP BY a.prtmdept, a.subpkdate
) c
</select> </select>
</mapper> </mapper>

@ -13,16 +13,30 @@ import java.util.List;
public interface IErpDataLogisticsService { public interface IErpDataLogisticsService {
/** /**
* 查询调拨单 * 查询配置信息明细
* @param dto 查询参数 * @param dto 查询参数
* @return 调拨单 * @return 调拨单
*/ */
List<AllocationMessVO> queryAllocationMess(AllocationMessPageDTO dto); List<AllocationMessVO> queryAllocationMess(AllocationMessPageDTO dto);
/** /**
* 查询调拨单数量 * 查询配置信息明细数量
* @param dto 查询参数 * @param dto 查询参数
* @return 调拨单 * @return 调拨单
*/ */
Integer queryAllocationMessNum(AllocationMessPageDTO dto); Integer queryAllocationMessNum(AllocationMessPageDTO dto);
/**
* 查询配置信息统计
* @param dto 查询参数
* @return 调拨单
*/
List<AllocationMessVO> queryAllocationStatistics(AllocationMessPageDTO dto);
/**
* 查询配置信息统计数量
* @param dto 查询参数
* @return 调拨单
*/
Integer queryAllocationStatisticsNum(AllocationMessPageDTO dto);
} }

@ -31,4 +31,14 @@ public class ErpDataLogisticsServiceImpl implements IErpDataLogisticsService {
public Integer queryAllocationMessNum(AllocationMessPageDTO dto) { public Integer queryAllocationMessNum(AllocationMessPageDTO dto) {
return erpDataLogisticsServiceMapper.queryAllocationMessNum(dto); return erpDataLogisticsServiceMapper.queryAllocationMessNum(dto);
} }
@Override
public List<AllocationMessVO> queryAllocationStatistics(AllocationMessPageDTO dto) {
return erpDataLogisticsServiceMapper.queryAllocationStatistics(dto);
}
@Override
public Integer queryAllocationStatisticsNum(AllocationMessPageDTO dto) {
return erpDataLogisticsServiceMapper.queryAllocationStatisticsNum(dto);
}
} }

Loading…
Cancel
Save