liweidong-hj 2 weeks ago
commit 954c32b4ce
  1. 44
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/dto/MesMacToolUseDTO.java
  2. 45
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/vo/MesMacToolUseVO.java
  3. 2
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/entity/InspectionItem.java
  4. 12
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java
  5. 8
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java
  6. 1
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/CraftAbilityEntity.java
  7. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/CraftAbilityController.java
  8. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java
  9. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/ReworkProcessController.java
  10. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/WorkProcessController.java
  11. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/DeductionPreserveMapper.xml
  12. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java
  13. 45
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml
  14. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java
  15. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/DeductionPreserveServiceImpl.java
  16. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  17. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MakeRecServiceImpl.java
  18. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/controller/InspectionItemController.java
  19. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/mapper/ReviewSheetMapper.xml
  20. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestService2.java
  21. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/CycleTestTaskService2.java
  22. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java
  23. 10
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java
  24. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.java
  25. 32
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/mapper/ErpDataProduceMapper.xml
  26. 4
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java
  27. 12
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java
  28. 5
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/dto/WorkOrderDto.java
  29. 3
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.java
  30. 19
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/mapper/WorkOrderMapper.xml
  31. 27
      blade-service/blade-scheduling/src/main/java/org/springblade/scheduling/scheduling/service/impl/WorkOrderServiceImpl.java

@ -0,0 +1,44 @@
package org.springblade.desk.produce.pojo.dto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.Date;
/**
* 同炉查询 数据传输对象实体类
*
* @author BladeX
* @since 2026-02-04
*/
@Data
public class MesMacToolUseDTO {
@Schema(description = "绑定编号")
private String code;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "物料号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "设备编号")
private String deviceCode;
@Schema(description = "挂具编号")
private String rsCode;
@Schema(description = "飞靶编号")
private String fsCode;
@Schema(description = "开始时间")
private Date startTime;
@Schema(description = "结束时间")
private Date endTime;
}

@ -0,0 +1,45 @@
package org.springblade.desk.produce.pojo.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
/**
* 同炉查询 视图实体类
*
* @author BladeX
* @since 2026-02-04
*/
@Data
public class MesMacToolUseVO {
@Schema(description = "绑定编号")
private String code;
@Schema(description = "车间订单号")
private String woCode;
@Schema(description = "物料号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "数量")
private String makeQty;
@Schema(description = "设备编号")
private String deviceCode;
@Schema(description = "挂具编号")
private String rsCode;
@Schema(description = "飞靶编号")
private String fsCode;
@Schema(description = "绑定时间")
private String bindTime;
@Schema(description = "绑定人员")
private String name;
}

@ -104,7 +104,7 @@ public class InspectionItem extends BaseEntity {
* [检验项目]类型 * [检验项目]类型
*/ */
@Schema(description = "[检验项目]类型") @Schema(description = "[检验项目]类型")
private Long itemType; private String itemType;
/** /**
* [检验项目]名称 * [检验项目]名称
*/ */

@ -25,6 +25,7 @@ public interface IErpDataProduceClient {
String API_PREFIX = "/feign/erpdata/produce"; String API_PREFIX = "/feign/erpdata/produce";
String QUERY_BATCH = API_PREFIX + "/queryBatch"; String QUERY_BATCH = API_PREFIX + "/queryBatch";
String REWORK_ORDER = API_PREFIX + "/loadReworkOrder"; String REWORK_ORDER = API_PREFIX + "/loadReworkOrder";
String REWORK_ORDER_SIZE = API_PREFIX + "/loadReworkOrderSize";
String PRODUCT_APP_AREA = API_PREFIX + "/productAppArea"; String PRODUCT_APP_AREA = API_PREFIX + "/productAppArea";
String VERSION = API_PREFIX + "/version"; String VERSION = API_PREFIX + "/version";
String CUSTODIAN = API_PREFIX + "/getCustodian"; String CUSTODIAN = API_PREFIX + "/getCustodian";
@ -43,8 +44,17 @@ public interface IErpDataProduceClient {
@GetMapping(REWORK_ORDER) @GetMapping(REWORK_ORDER)
R<List<ReworkProcessVO>> loadReworkOrder(@RequestParam(value = "reworkCode", required = false) String reworkCode, R<List<ReworkProcessVO>> loadReworkOrder(@RequestParam(value = "reworkCode", required = false) String reworkCode,
@RequestParam(value = "partCode", required = false) String partCode, @RequestParam(value = "partCode", required = false) String partCode,
@RequestParam(value = "batchNo", required = false) String batchNo); @RequestParam(value = "batchNo", required = false) String batchNo,
@RequestParam(value = "current") Integer current,
@RequestParam(value = "size") Integer size);
/**
* 返工订单数量
*/
@GetMapping(REWORK_ORDER_SIZE)
R<Integer> loadReworkOrderSize(@RequestParam(value = "reworkCode", required = false) String reworkCode,
@RequestParam(value = "partCode", required = false) String partCode,
@RequestParam(value = "batchNo", required = false) String batchNo);
/** /**
* 获取产品区域 * 获取产品区域
*/ */

@ -1,5 +1,6 @@
package org.springblade.erpdata.feign; package org.springblade.erpdata.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.erpdata.pojo.vo.QueryBatchVO; import org.springblade.erpdata.pojo.vo.QueryBatchVO;
import org.springblade.erpdata.pojo.vo.ReworkProcessVO; import org.springblade.erpdata.pojo.vo.ReworkProcessVO;
@ -23,7 +24,12 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient {
} }
@Override @Override
public R<List<ReworkProcessVO>> loadReworkOrder(String reworkCode, String partCode, String batchNo) { public R<List<ReworkProcessVO>> loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size) {
return R.fail("获取数据失败");
}
@Override
public R<Integer> loadReworkOrderSize(String reworkCode, String partCode, String batchNo) {
return R.fail("获取数据失败"); return R.fail("获取数据失败");
} }

@ -99,7 +99,6 @@ public class CraftAbilityEntity extends BaseEntity {
// @TableField(exist = false) // @TableField(exist = false)
private String dispatcherName; private String dispatcherName;
@Schema(description = "局部镀订单面积") @Schema(description = "局部镀订单面积")
@JsonInclude(JsonInclude.Include.NON_NULL)
private BigDecimal localArea; private BigDecimal localArea;
@Schema(description = "外协限制") @Schema(description = "外协限制")
private String wxLimit; private String wxLimit;

@ -60,6 +60,7 @@ import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -196,6 +197,11 @@ public class CraftAbilityController extends BladeController {
if(craftAbilityService.count(queryWrapper) > 0){ if(craftAbilityService.count(queryWrapper) > 0){
return R.fail("编码已存在"); return R.fail("编码已存在");
} }
if(null == craftAbility.getLocalArea()){
craftAbility.setLocalArea(new BigDecimal("-1"));
}
return R.status(craftAbilityService.updateById(craftAbility)); return R.status(craftAbilityService.updateById(craftAbility));
} }

@ -371,7 +371,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 5. 设置结束工位ID并处理不同回库类型 // 5. 设置结束工位ID并处理不同回库类型
Long endWcId = returnToWarehouseDto.getEndWcId(); Long endWcId = returnToWarehouseDto.getEndWcId();
task.setWcId(endWcId); task.setWcId(endWcId);
if (!returnToWarehouseDto.getStationRegion().isEmpty()) { if (returnToWarehouseDto.getStationRegion()!=null) {
task.setStationRegion(returnToWarehouseDto.getStationRegion()); task.setStationRegion(returnToWarehouseDto.getStationRegion());
} }
if (endWcId == 0) { if (endWcId == 0) {
@ -870,8 +870,10 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
// 异常处理:回滚任务 // 异常处理:回滚任务
taskService.removeById(task); taskService.removeById(task);
List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().eq(Station::getId, task.getStationId())); List<Station> stationList = stationService.list(new LambdaQueryWrapper<Station>().eq(Station::getId, task.getStationId()));
stationList.get(0).setStationStatus(STATUS_FREE); if (stationList!=null&&stationList.size()!=0) {
stationService.updateById(stationList.get(0)); stationList.get(0).setStationStatus(STATUS_FREE);
stationService.updateById(stationList.get(0));
}
log.error("【AGV调度】任务{}调度异常,已回滚", task.getId(), e); log.error("【AGV调度】任务{}调度异常,已回滚", task.getId(), e);
return R.fail("AGV小车调用异常:" + e.getMessage()); return R.fail("AGV小车调用异常:" + e.getMessage());
} }

@ -71,12 +71,12 @@ public class ReworkProcessController extends BladeController {
// records.add(reworkProcessVO); // records.add(reworkProcessVO);
// page.setRecords(records); // page.setRecords(records);
// return R.data(page); // return R.data(page);
IPage<ReworkProcessVO> page = Condition.getPage(query); IPage<ReworkProcessVO> iPage = Condition.getPage(query);
String reworkCode = prReworkProcess.getReworkCode(); List<ReworkProcessVO> process = erpDataProduceClient.loadReworkOrder(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo(), query.getCurrent(), query.getSize()).getData();
String partCode = prReworkProcess.getPartCode(); iPage.setRecords(process);
String batchNo = prReworkProcess.getBatchNo(); int size = erpDataProduceClient.loadReworkOrderSize(prReworkProcess.getReworkCode(), prReworkProcess.getPartCode(), prReworkProcess.getBatchNo()).getData();
R<List<ReworkProcessVO>> listR = erpDataProduceClient.loadReworkOrder(reworkCode, partCode, batchNo); iPage.setTotal(size);
return R.data(page.setRecords(listR.getData())); return R.data(iPage);
} }
// @GetMapping("/treeProcess") // @GetMapping("/treeProcess")

@ -9,7 +9,9 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO;
import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO;
import org.springblade.desk.produce.service.IMacToolUseService; import org.springblade.desk.produce.service.IMacToolUseService;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -29,8 +31,8 @@ public class WorkProcessController extends BladeController {
@GetMapping("/queryData") @GetMapping("/queryData")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@Operation(summary = "分页", description = "传入macToolUse") @Operation(summary = "分页", description = "传入macToolUse")
public R<IPage<MacToolUse>> page(MacToolUse macToolUse, Query query) { public R<IPage<MesMacToolUseVO>> page(MesMacToolUseDTO macToolUse, Query query) {
IPage<MacToolUse> pages = macToolUseService.queryMacToolUse(Condition.getPage(query), macToolUse); IPage<MesMacToolUseVO> pages = macToolUseService.queryMacToolUse(Condition.getPage(query), macToolUse);
return R.data(pages); return R.data(pages);
} }

@ -9,17 +9,21 @@
c.PART_CODE AS partCode, c.PART_CODE AS partCode,
b.BATCH_NO AS batchNo, b.BATCH_NO AS batchNo,
d.PPS_ID AS ppsId, d.PPS_ID AS ppsId,
e.NAME AS ppsName,
a.QTY AS qty, a.QTY AS qty,
a.TEST_QTY AS testQty, a.TEST_QTY AS testQty,
a.SCRAP_QTY AS scrapQty, a.SCRAP_QTY AS scrapQty,
a.LOSS_QTY AS lossQty, a.LOSS_QTY AS lossQty,
a.MEMO AS memo, a.MEMO AS memo,
a.CREATE_TIME AS maintenanceTime, a.CREATE_TIME AS maintenanceTime,
a.CREATE_USER AS maintenance a.CREATE_USER AS maintenance,
f.REAL_NAME AS maintenanceName
FROM MES_DEDUCTION_PRESERVE a FROM MES_DEDUCTION_PRESERVE 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
INNER JOIN MES_WORK_PLAN d ON a.WP_ID = d.ID INNER JOIN MES_WORK_PLAN d ON a.WP_ID = d.ID
LEFT JOIN BS_PROCESS_SET e ON d.PPS_ID = e.ID
LEFT JOIN BLADE_USER f ON a.CREATE_USER = f.ID
<where> <where>
a.IS_DELETED = 0 a.IS_DELETED = 0
<if test="query.woCode != null and query.woCode != ''"> <if test="query.woCode != null and query.woCode != ''">

@ -2,8 +2,10 @@ package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO;
import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import java.util.List; import java.util.List;
@ -17,7 +19,7 @@ import java.util.Map;
public interface MacToolUseMapper extends BaseMapper<MacToolUse> { public interface MacToolUseMapper extends BaseMapper<MacToolUse> {
MacToolUse getTcDataByWoId(Long woId); MacToolUse getTcDataByWoId(Long woId);
List<MacToolUse> queryMacToolUse(IPage<MacToolUse> page, MacToolUse macToolUse); List<MesMacToolUseVO> queryMacToolUse(IPage<MesMacToolUseVO> page, MesMacToolUseDTO macToolUse);
List<ProduceMonitorSlotListVO> listSlotInfo(Long id, int isGr, int isCx); List<ProduceMonitorSlotListVO> listSlotInfo(Long id, int isGr, int isCx);

@ -31,9 +31,7 @@
</resultMap> </resultMap>
<select id="queryMacToolUse" resultMap="mesMakeRecResultMap">
select * from MES_MAC_TOOL_USE where is_deleted = 0
</select>
<select id="listSlotInfo" resultType="org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO"> <select id="listSlotInfo" resultType="org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO">
SELECT SELECT
a.PART_CODE, a.BATCH_NO, a.WORK_QTY as qua, a.WORK_QTY as poQty, a.area, a.sumArea, a.sumArea as areaTotal, a.sumArea as totalArea, a.MTN_CODE as mtnCode, a.MTN_CODE as mtuCode, a.MTN_CODE as sameNo, a.PRODUCT_IDENT as prodIdent, a.wo_code, a.material, a.PART_CODE, a.BATCH_NO, a.WORK_QTY as qua, a.WORK_QTY as poQty, a.area, a.sumArea, a.sumArea as areaTotal, a.sumArea as totalArea, a.MTN_CODE as mtnCode, a.MTN_CODE as mtuCode, a.MTN_CODE as sameNo, a.PRODUCT_IDENT as prodIdent, a.wo_code, a.material,
@ -129,6 +127,45 @@
) )
ORDER BY a.create_time DESC) WHERE ROWNUM = 1 ORDER BY a.create_time DESC) WHERE ROWNUM = 1
</select> </select>
<select id="queryMacToolUse" resultType="org.springblade.desk.produce.pojo.vo.MesMacToolUseVO">
SELECT a.MTN_CODE AS code,
c.wo_code AS woCode,
c.PART_CODE AS partCode,
c.BATCH_NO AS batchNo,
a.BIND_TIME AS bindTime,
c.MAKE_QTY AS makeQty,
g.REAL_NAME AS name,
d.RS_CODE AS rsCode,
e.FS_CODE AS fsCode,
f.DEVICE_CODE AS deviceCode
FROM
MES_MAC_TOOL_USE a
INNER JOIN MES_WORK_PLAN b
ON a.wp_id = b.ID
INNER JOIN MES_WORK_ORDER c ON b.wo_id = c.ID
LEFT JOIN MES_RACK_SET d ON a.BS_RACK_SET = d.ID
LEFT JOIN MES_FEI_BA_SET e ON a.BS_FEI_BA_SET = e.ID
LEFT JOIN MES_EQUIPMENT f ON a.EQUIPMENT_CARD = f.ID
LEFT JOIN blade_user g ON a.CREATE_MAN = g.ID
<where>
a.is_deleted = 0
<if test="macToolUse.code != null and macToolUse.code != ''">
AND a.MTN_CODE LIKE '%' || #{macToolUse.code} || '%'
</if>
<if test="macToolUse.woCode != null and macToolUse.woCode != ''">
AND c.WO_CODE LIKE '%' || #{macToolUse.woCode} || '%'
</if>
<if test="macToolUse.partCode != null and macToolUse.partCode != ''">
AND c.PART_CODE LIKE '%' || #{macToolUse.partCode} || '%'
</if>
<if test="macToolUse.batchNo != null and macToolUse.batchNo != ''">
AND c.BATCH_NO LIKE '%' || #{macToolUse.batchNo} || '%'
</if>
<if test="macToolUse.startTime != null and macToolUse.endTime != null">
AND a.BIND_TIME BETWEEN #{macToolUse.startTime} AND #{macToolUse.endTime}
</if>
</where>
order by a.BIND_TIME DESC
</select>
</mapper> </mapper>

@ -2,11 +2,13 @@ package org.springblade.desk.produce.service;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseService; import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO;
import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import java.util.List; import java.util.List;
@ -33,7 +35,7 @@ public interface IMacToolUseService extends BaseService<MacToolUse> {
*/ */
void unMacToolUseBind(List<MacToolUse> mtuList); void unMacToolUseBind(List<MacToolUse> mtuList);
IPage<MacToolUse> queryMacToolUse(IPage<MacToolUse> page, MacToolUse macToolUse); IPage<MesMacToolUseVO> queryMacToolUse(IPage<MesMacToolUseVO> page, MesMacToolUseDTO macToolUse);
MacToolUse getTcDataByWoId(Long woId); MacToolUse getTcDataByWoId(Long woId);

@ -98,10 +98,10 @@ public class DeductionPreserveServiceImpl extends BaseServiceImpl<DeductionPrese
this.save(deductionPreserve); this.save(deductionPreserve);
// 更新车间订单 // 更新车间订单
workOrder.setLossQty(workOrder.getLossQty()+lossQty); workOrder.setLossQty(workOrder.getLossQty() + lossQty);
workOrder.setScrapQty(workOrder.getScrapQty()+scrapQty); workOrder.setScrapQty(workOrder.getScrapQty() + scrapQty);
workOrder.setTestQty(workOrder.getTestQty()+testQty); workOrder.setTestQty(workOrder.getTestQty() + testQty);
workOrder.setMakeQty(workOrder.getMakeQty()-lossQty-scrapQty-testQty); workOrder.setMakeQty(workOrder.getMakeQty() - lossQty - scrapQty - testQty);
log.info("车间订单:{}, 扣除测试数量:{}", workOrder.getWoCode(), workOrder.getTestQty()); log.info("车间订单:{}, 扣除测试数量:{}", workOrder.getWoCode(), workOrder.getTestQty());
return workOrderService.updateById(workOrder); return workOrderService.updateById(workOrder);
} }

@ -15,11 +15,13 @@ import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.device.service.IEquipmentService; import org.springblade.desk.device.service.IEquipmentService;
import org.springblade.desk.device.service.IRackSetService; import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.produce.mapper.MacToolUseMapper; import org.springblade.desk.produce.mapper.MacToolUseMapper;
import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO;
import org.springblade.desk.produce.pojo.entity.MacToolUse; import org.springblade.desk.produce.pojo.entity.MacToolUse;
import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity; import org.springblade.desk.produce.pojo.entity.MesQcProduceRunEntity;
import org.springblade.desk.produce.pojo.entity.WorkOrder; import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan; import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.MacToolUseVO; import org.springblade.desk.produce.pojo.vo.MacToolUseVO;
import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO;
import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO; import org.springblade.desk.produce.pojo.vo.ProduceMonitorSlotListVO;
import org.springblade.desk.produce.service.IMacToolUseService; import org.springblade.desk.produce.service.IMacToolUseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -99,7 +101,7 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
} }
@Override @Override
public IPage<MacToolUse> queryMacToolUse(IPage<MacToolUse> page, MacToolUse macToolUse) { public IPage<MesMacToolUseVO> queryMacToolUse(IPage<MesMacToolUseVO> page, MesMacToolUseDTO macToolUse) {
return page.setRecords(baseMapper.queryMacToolUse(page, macToolUse)); return page.setRecords(baseMapper.queryMacToolUse(page, macToolUse));
} }

@ -303,7 +303,9 @@ public class MakeRecServiceImpl extends BaseServiceImpl<MakeRecMapper, MakeRec>
List<Long> ppsIds = new ArrayList<>(); List<Long> ppsIds = new ArrayList<>();
List<Long> makeTeams = new ArrayList<>(); List<Long> makeTeams = new ArrayList<>();
for (MesMakeRecVO record : records) { for (MesMakeRecVO record : records) {
ppsIds.add(record.getPpsId()); if (record.getPpsId() != null) {
ppsIds.add(record.getPpsId());
}
if (record.getFrontPpsId() != null) { if (record.getFrontPpsId() != null) {
ppsIds.add(record.getFrontPpsId()); ppsIds.add(record.getFrontPpsId());
} }

@ -146,6 +146,9 @@ public class InspectionItemController extends BladeController {
@ApiLog("修改检验项目") @ApiLog("修改检验项目")
@Operation(summary = "修改一条", description = "传入InspectionItem Obj") @Operation(summary = "修改一条", description = "传入InspectionItem Obj")
public R update(@Valid @RequestBody InspectionItem updateOne) { public R update(@Valid @RequestBody InspectionItem updateOne) {
if(null == updateOne.getStandardWorkMinute()){
updateOne.setStandardWorkMinute(-1D);
}
return R.status(service.updateById(updateOne)); return R.status(service.updateById(updateOne));
} }

@ -181,10 +181,10 @@
AND wo.CARD_NO = #{q.cardNo} AND wo.CARD_NO = #{q.cardNo}
</if> </if>
<if test="q.createTimeStart != null"> <!-- todo --> <if test="q.createTimeStart != null"> <!-- todo -->
AND rs.CREATE_TIME &gt;= #{q.createTimeStart} AND rs.CREATE_TIME &gt;= TO_DATE(#{q.createTimeStart}, 'YYYY-MM-DD HH24:MI:SS')
</if> </if>
<if test="q.createTimeEnd != null"> <!-- todo --> <if test="q.createTimeEnd != null"> <!-- todo -->
AND rs.CREATE_TIME &lt;= #{q.createTimeEnd} AND rs.CREATE_TIME &lt;= TO_DATE(#{q.createTimeEnd}, 'YYYY-MM-DD HH24:MI:SS')
</if> </if>
<if test="q.reviewTimeStart != null"> <if test="q.reviewTimeStart != null">
AND rs.REVIEW_DATE &gt;= #{q.reviewTimeStart} AND rs.REVIEW_DATE &gt;= #{q.reviewTimeStart}

@ -168,11 +168,11 @@ public class CycleTestService2 {
*/ */
public void setVOValue(CycleTestVO vo) { public void setVOValue(CycleTestVO vo) {
R<UserInfo> uiUP = userClient.userInfo(vo.getUpdateUser()); R<UserInfo> uiUP = userClient.userInfo(vo.getUpdateUser());
if (uiUP.isSuccess() && uiUP.getData().getUser() != null) { if (uiUP.isSuccess() && uiUP.getData() != null && uiUP.getData().getUser() != null) {
vo.setUpdateUserName(uiUP.getData().getUser().getName()); vo.setUpdateUserName(uiUP.getData().getUser().getName());
} }
R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId()); R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId());
if (uiPro.isSuccess() && uiPro.getData().getUser() != null) { if (uiPro.isSuccess() && uiPro.getData() != null && uiPro.getData().getUser() != null) {
vo.setProcessUserName(uiPro.getData().getUser().getName()); vo.setProcessUserName(uiPro.getData().getUser().getName());
} }
CycleTestItem item = itemService.getById(vo.getCycleTestItemId()); CycleTestItem item = itemService.getById(vo.getCycleTestItemId());

@ -435,8 +435,8 @@ public class CycleTestTaskService2 {
} }
} }
R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId()); R<UserInfo> uiPro = userClient.userInfo(vo.getProcessUserId());
if (uiPro.getData().getUser() != null) { if (uiPro != null && uiPro.getData() != null && uiPro.getData().getUser() != null) {
vo.setProcessUserName(uiPro.getData().getUser().getName()); vo.setProcessUserName(uiPro.getData().getUser().getRealName());
} }
{ {
Instant instant = vo.getCreateTime().toInstant(); Instant instant = vo.getCreateTime().toInstant();

@ -464,6 +464,11 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
rs.setMemo(memo); rs.setMemo(memo);
// 修改状态, 内部审理没有审理状态概念。 // 修改状态, 内部审理没有审理状态概念。
rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE); rs.setStatus(ReviewSheetConst.STATUS.S_COMPLETE);
if(1==selfReviewFlag){
rs.setReviewStatus(3);
}else{
rs.setReviewStatus(4);
}
BladeUser bu = AuthUtil.getUser(); BladeUser bu = AuthUtil.getUser();
log.info("ReviewSheet bu = {}", bu); log.info("ReviewSheet bu = {}", bu);
if (bu != null) { if (bu != null) {

@ -1,5 +1,6 @@
package org.springblade.erpdata.feign; package org.springblade.erpdata.feign;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.v3.oas.annotations.Hidden; import io.swagger.v3.oas.annotations.Hidden;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tenant.annotation.NonDS;
@ -35,8 +36,13 @@ public class ErpDataProduceClient implements IErpDataProduceClient {
@Override @Override
@GetMapping(REWORK_ORDER) @GetMapping(REWORK_ORDER)
public R<List<ReworkProcessVO>> loadReworkOrder(String reworkCode, String partCode, String batchNo) { public R<List<ReworkProcessVO>> loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size) {
return R.data(erpDataProduceService.loadReworkOrder(reworkCode, partCode, batchNo)); return R.data(erpDataProduceService.loadReworkOrder(reworkCode, partCode, batchNo, current, size));
}
@Override
public R<Integer> loadReworkOrderSize(String reworkCode, String partCode, String batchNo) {
return R.data(erpDataProduceService.loadReworkOrderSize(reworkCode, partCode, batchNo));
} }
@Override @Override

@ -18,11 +18,13 @@ public interface ErpDataProduceMapper extends Mapper {
QueryBatchVO queryBatch(String partCode); QueryBatchVO queryBatch(String partCode);
List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo); List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size);
Map<String, String> getProductAppareaByPartCode(String partCode); Map<String, String> getProductAppareaByPartCode(String partCode);
String getVersionByPartCode(String partCode); String getVersionByPartCode(String partCode);
String getCustodianByRecDept(String partCode, String recDept); String getCustodianByRecDept(String partCode, String recDept);
int loadReworkOrderSize(String reworkCode, String partCode, String batchNo);
} }

@ -39,6 +39,10 @@
a.prtno = #{partCode} a.prtno = #{partCode}
</select> </select>
<select id="loadReworkOrder" resultType="org.springblade.erpdata.pojo.vo.ReworkProcessVO"> <select id="loadReworkOrder" resultType="org.springblade.erpdata.pojo.vo.ReworkProcessVO">
SELECT *
FROM (
SELECT row_.*, ROWNUM rownum_
FROM (
SELECT SELECT
a.*, a.*,
b.usedept, b.usedept,
@ -51,16 +55,20 @@
<where> <where>
a.redono = b.redono AND a.splcode = b.splcode AND a.prtno = b.prtno AND a.amount = b.amount a.redono = b.redono AND a.splcode = b.splcode AND a.prtno = b.prtno AND a.amount = b.amount
<if test="reworkCode != null and reworkCode != ''"> <if test="reworkCode != null and reworkCode != ''">
AND a.redono LIKE concat(concat('%', #{query.reworkCode}),'%') AND a.redono LIKE concat(concat('%', #{reworkCode}),'%')
</if> </if>
<if test="partCode != null and partCode != ''"> <if test="partCode != null and partCode != ''">
AND a.prtno LIKE concat(concat('%', #{query.partCode}),'%') AND a.prtno LIKE concat(concat('%', #{partCode}),'%')
</if> </if>
<if test="batchNo != null and batchNo != ''"> <if test="batchNo != null and batchNo != ''">
AND a.splcode LIKE concat(concat('%', #{query.batchNo}),'%') AND a.splcode LIKE concat(concat('%', #{batchNo}),'%')
</if> </if>
</where> </where>
ORDER BY a.reqdate DESC ORDER BY a.reqdate DESC
) row_
WHERE ROWNUM &lt;= (#{current} * #{size})
)
WHERE rownum_ &gt; (#{current} - 1) * #{size}
</select> </select>
<select id="getProductAppareaByPartCode" resultType="java.util.Map"> <select id="getProductAppareaByPartCode" resultType="java.util.Map">
select nvl(b.productapparea,'无') as productapparea, nvl(b.cgzmark,'无') as cgzmark from ( select a.* from dba_mgr.t_prtbasdef a select nvl(b.productapparea,'无') as productapparea, nvl(b.cgzmark,'无') as cgzmark from ( select a.* from dba_mgr.t_prtbasdef a
@ -78,4 +86,22 @@
and b.prtno = #{partCode} and b.prtno = #{partCode}
and b.plndept = #{recDept} and b.plndept = #{recDept}
</select> </select>
<select id="loadReworkOrderSize" resultType="java.lang.Integer">
SELECT
count(*)
FROM
dba_mgr.v_mes_rb_redorout a
<where>
1 = 1
<if test="reworkCode != null and reworkCode != ''">
AND a.redono LIKE concat(concat('%', #{reworkCode}),'%')
</if>
<if test="partCode != null and partCode != ''">
AND a.prtno LIKE concat(concat('%', #{partCode}),'%')
</if>
<if test="batchNo != null and batchNo != ''">
AND a.splcode LIKE concat(concat('%', #{batchNo}),'%')
</if>
</where>
</select>
</mapper> </mapper>

@ -18,7 +18,7 @@ public interface IErpDataProduceService {
QueryBatchVO queryBatch(String partCode); QueryBatchVO queryBatch(String partCode);
List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo); List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size);
Map<String, String> getProductAppareaByPartCode(String partCode); Map<String, String> getProductAppareaByPartCode(String partCode);
@ -29,4 +29,6 @@ public interface IErpDataProduceService {
String chkSjjd(String ypCode, String batchNo); String chkSjjd(String ypCode, String batchNo);
String chkShjh(String woCode, String ypCode, String partCode, String productIdent, Double makeQty, String memo); String chkShjh(String woCode, String ypCode, String partCode, String productIdent, Double makeQty, String memo);
Integer loadReworkOrderSize(String reworkCode, String partCode, String batchNo);
} }

@ -3,6 +3,8 @@ package org.springblade.erpdata.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.erpdata.mapper.ErpDataProduceMapper; import org.springblade.erpdata.mapper.ErpDataProduceMapper;
import org.springblade.erpdata.pojo.dto.ReworkProcessDTO; import org.springblade.erpdata.pojo.dto.ReworkProcessDTO;
import org.springblade.erpdata.pojo.vo.QueryBatchVO; import org.springblade.erpdata.pojo.vo.QueryBatchVO;
@ -15,6 +17,7 @@ import org.springframework.jdbc.core.simple.SimpleJdbcCall;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.sql.Types; import java.sql.Types;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -38,8 +41,8 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService {
} }
@Override @Override
public List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo) { public List<ReworkProcessVO> loadReworkOrder(String reworkCode, String partCode, String batchNo, Integer current, Integer size) {
return erpDataProduceMapper.loadReworkOrder(reworkCode, partCode, batchNo); return erpDataProduceMapper.loadReworkOrder(reworkCode, partCode, batchNo, current, size);
} }
@Override @Override
@ -128,4 +131,9 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService {
return excflag; return excflag;
} }
@Override
public Integer loadReworkOrderSize(String reworkCode, String partCode, String batchNo) {
return erpDataProduceMapper.loadReworkOrderSize(reworkCode, partCode, batchNo);
}
} }

@ -37,7 +37,7 @@ public class WorkOrderDto {
private String makeQty; private String makeQty;
private String workCenterName; private String workCenterName;
private String workCenterId; private Long workCenterId;
private Integer totalCount; private Integer totalCount;
private Integer schedulingCount; private Integer schedulingCount;
private Integer unschedulingCount; private Integer unschedulingCount;
@ -54,4 +54,7 @@ public class WorkOrderDto {
private List<WorkOrderDto> workOrderList; private List<WorkOrderDto> workOrderList;
private List<Long> workCenterList;
} }

@ -91,4 +91,7 @@ public interface WorkOrderMapper extends BaseMapper<WorkOrderEntity> {
List<WorkPlanVO> selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan); List<WorkPlanVO> selectProcessExecuteDetailPage(IPage page, WorkPlanVO workPlan);
List<Long> selectUserCenter(@Param("userId") Long userId);
} }

@ -108,7 +108,8 @@
b.equip_code AS "equipCode", b.equip_code AS "equipCode",
a.status AS "orderStatus", a.status AS "orderStatus",
b.status AS "planStatus", b.status AS "planStatus",
b.team_members as "teamMembers" b.team_members as "teamMembers",
b.work_center_id as "workCenterId"
FROM FROM
MES_WORK_ORDER a MES_WORK_ORDER a
LEFT JOIN MES_WORK_PLAN b ON a.ID = b.WO_ID LEFT JOIN MES_WORK_PLAN b ON a.ID = b.WO_ID
@ -262,6 +263,12 @@
#{planStatus} #{planStatus}
</foreach> </foreach>
</if> </if>
<if test="workCenterList !=null">
and b.work_center_id IN
<foreach collection="workCenterList" item="workCenterId" index="index" open="(" close=")" separator=",">
#{workCenterId}
</foreach>
</if>
</where> </where>
GROUP BY GROUP BY
a.WO_CODE, a.WO_CODE,
@ -624,5 +631,15 @@
</where> </where>
</select> </select>
<select id="selectUserCenter" resultType="java.lang.Long">
SELECT DISTINCT
a.WC_ID
FROM
BS_CENTER_TEAM a
INNER JOIN BS_REL_TEAM_SET_USER b ON a.TS_ID = b.TEAM_SET_ID
WHERE
b.user_id = #{userId}
</select>
</mapper> </mapper>

@ -41,6 +41,8 @@ import org.apache.commons.lang3.time.DateFormatUtils;
import org.apache.commons.lang3.time.DateUtils; import org.apache.commons.lang3.time.DateUtils;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.jackson.JsonUtil; import org.springblade.core.tool.jackson.JsonUtil;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.desk.dashboard.constant.DsPartConstant; import org.springblade.desk.dashboard.constant.DsPartConstant;
@ -243,6 +245,8 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override @Override
public List<WorkOrderDto> schedulingBoard(WorkOrderDto workOrder) { public List<WorkOrderDto> schedulingBoard(WorkOrderDto workOrder) {
List<WorkOrderDto> list = baseMapper.selectWorkOrderList(workOrder); List<WorkOrderDto> list = baseMapper.selectWorkOrderList(workOrder);
String yesterday = DateFormatUtils.format(DateUtils.addDays(new Date(), -1), "yyyy-MM-dd"); String yesterday = DateFormatUtils.format(DateUtils.addDays(new Date(), -1), "yyyy-MM-dd");
String twodaysAgo = DateFormatUtils.format(DateUtils.addDays(new Date(), -2), "yyyy-MM-dd"); String twodaysAgo = DateFormatUtils.format(DateUtils.addDays(new Date(), -2), "yyyy-MM-dd");
@ -298,6 +302,23 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
LinkedHashMap::new LinkedHashMap::new
)); ));
} }
//非超级管理员,登陆人员只能看自己中心的数据
BladeUser user = AuthUtil.getUser();
if(!user.getRoleName().equals("administrator")){
Long userId = AuthUtil.getUserId();
List<Long> workCenterList = baseMapper.selectUserCenter(userId);
woCodeGroup = woCodeGroup.entrySet().stream()
.filter(entry -> {
return entry.getValue().stream()
.anyMatch(dto -> workCenterList.contains(dto.getWorkCenterId()));
})
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue,
LinkedHashMap::new
));
}
List<WorkOrderDto> resultList = new ArrayList<>(); List<WorkOrderDto> resultList = new ArrayList<>();
for (Map.Entry<String, List<WorkOrderDto>> entry : woCodeGroup.entrySet()) { for (Map.Entry<String, List<WorkOrderDto>> entry : woCodeGroup.entrySet()) {
//根据工序名称过滤订单 //根据工序名称过滤订单
@ -376,6 +397,12 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override @Override
public List<SchedulingBoardExcel> exportSchedulingBoard(WorkOrderDto workOrder) { public List<SchedulingBoardExcel> exportSchedulingBoard(WorkOrderDto workOrder) {
BladeUser user = AuthUtil.getUser();
if(!user.getRoleName().equals("administrator")){
Long userId = AuthUtil.getUserId();
List<Long> workCenterList = baseMapper.selectUserCenter(userId);
workOrder.setWorkCenterList(workCenterList);
}
return baseMapper.exportSchedulingBoard(workOrder); return baseMapper.exportSchedulingBoard(workOrder);
} }

Loading…
Cancel
Save