绑定记录维护接口

liweidong
李涛 5 days ago
parent d88e284eb3
commit aa43779801
  1. 84
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/MesDataMaintainLog.java
  2. 3
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClient.java
  3. 5
      blade-service-api/blade-erpdata-api/src/main/java/org/springblade/erpdata/feign/IErpDataProduceClientFallback.java
  4. 28
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/controller/WorkProcessController.java
  5. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.java
  6. 7
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MacToolUseMapper.xml
  7. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/MesDataMaintainLogMapper.java
  8. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.java
  9. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/mapper/WorkPlanMapper.xml
  10. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMacToolUseService.java
  11. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IMesDataMaintainLogService.java
  12. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/IPdaLoadService.java
  13. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MacToolUseServiceImpl.java
  14. 23
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/MesDataMaintainLogServiceImpl.java
  15. 75
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/PdaLoadServiceImpl.java
  16. 5
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/feign/ErpDataProduceClient.java
  17. 2
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/IErpDataProduceService.java
  18. 36
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpDataProduceServiceImpl.java

@ -0,0 +1,84 @@
package org.springblade.desk.produce.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.mp.base.BaseEntity;
import java.io.Serial;
import java.util.Date;
/**
* 数据维护记录 实体类
* @author litao
*/
@Data
@TableName("MES_DATA_MAINTAIN_LOG")
@Schema(description = "MesDataMaintainLog对象")
@EqualsAndHashCode(callSuper = true)
public class MesDataMaintainLog extends BaseEntity {
@Schema(description = "生产订单id")
private Long yoId;
@Schema(description = "修改前数量")
private Double qtyFront;
@Schema(description = "修改后数量")
private Double qtyAfter;
@Schema(description = "修改前面积")
private Double areaFront;
@Schema(description = "修改后面积")
private Double areaAfter;
@Schema(description = "修改前镀种")
private String plateFront;
@Schema(description = "修改后镀种")
private String plateAfter;
@Schema(description = "修改前镀层厚度")
private Double plateThicknessFront;
@Schema(description = "修改后镀层厚度")
private Double plateThicknessAfter;
@Schema(description = "修改前涂色标")
private String tsbFront;
@Schema(description = "修改后涂色标")
private String tsbAfter;
@Schema(description = "修改前涂色带")
private String tsdFront;
@Schema(description = "修改后涂色带")
private String tsdAfter;
@Schema(description = "修改前涂箭头")
private String tjtFront;
@Schema(description = "修改后涂箭头")
private String tjtAfter;
@Schema(description = "流程卡号")
private String cardNo;
@Schema(description = "零件号")
private String partCode;
@Schema(description = "批次号")
private String batchNo;
@Schema(description = "备注")
private String memo;
@Schema(description = "维护人")
@TableField(exist = false)
private String name;
}

@ -244,4 +244,7 @@ public interface IErpDataProduceClient {
@GetMapping(SELECT_MAX_WOCLSTOTQTY_BY_WONO)
R<Double> selectMaxWoclstotqtyByWono(@RequestParam(value = "code") String code);
R<String> erpUpdateMakeQty(@RequestParam(value = "woCode") String woCode, @RequestParam(value = "memo", required = false) String memo,
@RequestParam(value = "qtyAfter") Double qtyAfter, @RequestParam(value = "userName", required = false) String userName);
}

@ -143,4 +143,9 @@ public class IErpDataProduceClientFallback implements IErpDataProduceClient {
return R.fail("获取数据失败");
}
@Override
public R<String> erpUpdateMakeQty(String woCode, String memo, Double qtyAfter, String userName) {
return R.fail("获取数据失败");
}
}

@ -13,10 +13,14 @@ import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.desk.produce.pojo.dto.MesMacToolUseDTO;
import org.springblade.desk.produce.pojo.dto.SaveMacToolUseDto;
import org.springblade.desk.produce.pojo.entity.MesDataMaintainLog;
import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.MesMacToolUseVO;
import org.springblade.desk.produce.service.IMacToolUseService;
import org.springblade.desk.produce.service.IMesDataMaintainLogService;
import org.springblade.desk.produce.service.IPdaLoadService;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@ -35,6 +39,9 @@ public class WorkProcessController extends BladeController {
private final IMacToolUseService macToolUseService;
private final IPdaLoadService pdaLoadService;
private final IMesDataMaintainLogService mesDataMaintainLogService;
@GetMapping("/queryData")
@ApiOperationSupport(order = 1)
@Operation(summary = "分页", description = "传入macToolUse")
@ -45,8 +52,8 @@ public class WorkProcessController extends BladeController {
@GetMapping("/getMacToolUseByWpId")
@Operation(summary = "根据wpId获取绑定记录", description = "传入wpId")
public R<List<MesMacToolUseVO>> getMacToolUseByWpId(Long wpId) {
return R.data(macToolUseService.getMacToolUseByWpId(wpId));
public R<List<MesMacToolUseVO>> getMacToolUseByWpId(String cardNo) {
return R.data(macToolUseService.getMacToolUseByWpId(cardNo));
}
@PostMapping("/remove")
@ -84,4 +91,21 @@ public class WorkProcessController extends BladeController {
public R saveMacToolUse(@RequestBody SaveMacToolUseDto saveMacToolUseDto) {
return R.status(macToolUseService.saveMacToolUse(saveMacToolUseDto));
}
@PostMapping("/saveDataMaintainLog")
@Operation(summary = "数据维护记录保存")
public R saveDataMaintainLog(@RequestBody MesDataMaintainLog mesDataMaintainLog) {
return R.status(pdaLoadService.saveDataMaintainLog(mesDataMaintainLog));
}
@GetMapping("/pageDataMaintainLog")
@Operation(summary = "数据维护记录分页查询")
public R<IPage<MesDataMaintainLog>> pageMesDataMaintainLog(MesDataMaintainLog mesDataMaintainLog, Query query) {
IPage<MesDataMaintainLog> page = mesDataMaintainLogService.page(Condition.getPage(query), Condition.getQueryWrapper(mesDataMaintainLog));
for (MesDataMaintainLog record : page.getRecords()) {
User user = UserCache.getUser(record.getCreateUser());
record.setName(user != null ? user.getName() : null);
}
return R.data(page);
}
}

@ -44,7 +44,7 @@ public interface MacToolUseMapper extends BaseMapper<MacToolUse> {
*/
void updatePrintType(String deviceCode, String hangNum, String mtnCode);
List<MesMacToolUseVO> getMacToolUseByWpId(Long wpId);
List<MesMacToolUseVO> getMacToolUseByWpId(String cardNo);
List<MesMacToolUseVO> getBindMacToolUseByRsCode(String rsCode);

@ -220,14 +220,13 @@
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
INNER JOIN MES_WORK_PLAN b ON a.wp_id = b.ID
INNER JOIN MES_WORK_ORDER c ON b.id = c.wp_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 AND a.wp_id = #{wpId}
WHERE a.is_deleted = 0 AND c.is_deleted = 0 AND c.CARD_NO = #{cardNo}
order by a.BIND_TIME DESC
</select>
<select id="getBindMacToolUseByRsCode" resultType="org.springblade.desk.produce.pojo.vo.MesMacToolUseVO">

@ -0,0 +1,14 @@
package org.springblade.desk.produce.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.springblade.desk.produce.pojo.entity.MesDataMaintainLog;
/**
* 数据维护记录 Mapper 接口
*
* @author BladeX
*/
public interface MesDataMaintainLogMapper extends BaseMapper<MesDataMaintainLog> {
}

@ -98,4 +98,12 @@ public interface WorkPlanMapper extends BaseMapper<WorkPlan> {
List<AllWorkPlanVO> getByCardNoByPlanAll(Long id);
List<WorkPlanExpandVO> selectExpandByWoId(@Param("woId") Long woId);
void updateWorkPlan(double num, Long woId);
void updateMakeRec(double num, Long woId);
void updateInspection(double num, Long woId);
void updatePlateAround(double num, Long woId);
}

@ -50,6 +50,22 @@
<result column="PPS_NAME" property="ppsName"/>
<result column="CREATE_MAN" property="createMan"/>
</resultMap>
<update id="updateWorkPlan">
update mes_work_plan set QUALIFIED_QTY = QUALIFIED_QTY + #{num},a.work_qty = a.work_qty + #{num}
where wo_id = #{woId} and status > 2 and is_deleted = 0
</update>
<update id="updateMakeRec">
update MES_MAKE_REC set WORK_QTY = WORK_QTY + #{num}
where wp_id in (select a.ID from MES_WORK_PLAN a where a.WO_ID = #{woId}) and is_deleted = 0
</update>
<update id="updateInspection">
update QA_INSPECTION_TASK set QUALIFIED_QTY = qualified_qty + #{num}
where wp_id in (select a.ID from MES_WORK_PLAN a where a.WO_ID = #{woId}) and is_deleted = 0
</update>
<update id="updatePlateAround">
update MES_PLATE_AROUND set QUANTITY = QUANTITY + #{num}
where wp_id in (select a.ID from MES_WORK_PLAN a where a.WO_ID = #{woId}) and is_deleted = 0
</update>
<select id="selectByWoId" resultType="org.springblade.scheduling.pojo.entity.WorkPlanEntity">
select *

@ -89,7 +89,7 @@ public interface IMacToolUseService extends BaseService<MacToolUse> {
*/
List<MacToolUse> listByNoFinished();
List<MesMacToolUseVO> getMacToolUseByWpId(Long wpId);
List<MesMacToolUseVO> getMacToolUseByWpId(String cardNo);
MesMacToolUseVO getBindMacToolUseByRsCode(String rsCode);

@ -0,0 +1,13 @@
package org.springblade.desk.produce.service;
import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.produce.pojo.entity.MesDataMaintainLog;
/**
* 数据维护记录 服务类
*
* @author BladeX
*/
public interface IMesDataMaintainLogService extends BaseService<MesDataMaintainLog> {
}

@ -7,6 +7,7 @@ import org.springblade.desk.device.pojo.entity.EquipmentEntity;
import org.springblade.desk.device.pojo.entity.FeiBaSetEntity;
import org.springblade.desk.device.pojo.entity.RackSetEntity;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.produce.pojo.entity.MesDataMaintainLog;
import org.springblade.desk.produce.pojo.entity.WorkOrder;
import org.springblade.desk.produce.pojo.entity.WorkPlan;
import org.springblade.desk.produce.pojo.vo.BindModelVO;
@ -84,4 +85,6 @@ public interface IPdaLoadService extends BaseService<WorkPlan> {
Object epDosingRecByCode(String code);
BindModelVO getCurrentWorkPlan(String cardNo);
boolean saveDataMaintainLog(MesDataMaintainLog mesDataMaintainLog);
}

@ -357,8 +357,8 @@ public class MacToolUseServiceImpl extends BaseServiceImpl<MacToolUseMapper, Mac
}
@Override
public List<MesMacToolUseVO> getMacToolUseByWpId(Long wpId) {
return baseMapper.getMacToolUseByWpId(wpId);
public List<MesMacToolUseVO> getMacToolUseByWpId(String cardNo) {
return baseMapper.getMacToolUseByWpId(cardNo);
}
@Override

@ -0,0 +1,23 @@
package org.springblade.desk.produce.service.impl;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.desk.produce.mapper.MesDataMaintainLogMapper;
import org.springblade.desk.produce.pojo.entity.MesDataMaintainLog;
import org.springblade.desk.produce.service.IMesDataMaintainLogService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
/**
* 数据维护记录 服务实现类
*
* @author BladeX
*/
@Slf4j
@Service
@RequiredArgsConstructor
public class MesDataMaintainLogServiceImpl extends BaseServiceImpl<MesDataMaintainLogMapper, MesDataMaintainLog> implements IMesDataMaintainLogService {
}

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -26,7 +27,6 @@ import org.springblade.desk.device.service.IRackSetService;
import org.springblade.desk.energy.pojo.entity.BsSafePatrolInspectionEntity;
import org.springblade.desk.energy.service.IBsDosingRecService;
import org.springblade.desk.energy.service.IBsEpciuPatrolInspectionService;
import org.springblade.desk.energy.service.IBsSafeInspectionPointService;
import org.springblade.desk.energy.service.IBsSafePatrolInspectionService;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService;
@ -37,9 +37,7 @@ import org.springblade.desk.produce.pojo.vo.BindModelVO;
import org.springblade.desk.produce.pojo.vo.LoadSubOrderVO;
import org.springblade.desk.produce.pojo.vo.PdaProRelevantVO;
import org.springblade.desk.produce.service.*;
import org.springblade.desk.quality.constant.InspectionTaskConst;
import org.springblade.desk.quality.pojo.entity.InspectionItem;
import org.springblade.desk.quality.pojo.entity.InspectionTask;
import org.springblade.desk.quality.pojo.entity.WorkPlanItem;
import org.springblade.desk.quality.pojo.entity.WorkPlanItemDetail;
import org.springblade.desk.quality.pojo.vo.InspectionTaskDetailVO;
@ -49,6 +47,7 @@ import org.springblade.desk.quality.service.IInspectionItemService;
import org.springblade.desk.quality.service.IInspectionTaskService;
import org.springblade.desk.quality.service.IWorkPlanItemDetailService;
import org.springblade.desk.quality.service.IWorkPlanItemService;
import org.springblade.erpdata.feign.IErpDataProduceClient;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
@ -113,6 +112,13 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
private final IWorkPlanItemDetailService workPlanItemDetailService;
private final IMesDataMaintainLogService mesDataMaintainLogService;
private final IWorkOrderRunService workOrderRunService;
@Resource
private IErpDataProduceClient erpDataProduceClient;
// @Value("${request.device.prefixId}")
private String prefixId;
@ -576,4 +582,67 @@ public class PdaLoadServiceImpl extends BaseServiceImpl<WorkPlanMapper, WorkPlan
return this.createBindModel(workPlan);
}
@Override
public boolean saveDataMaintainLog(MesDataMaintainLog mesDataMaintainLog) {
if (mesDataMaintainLog.getYoId() == null) {
throw new ServiceException("参数异常");
}
YieldOrder yieldOrder = yieldOrderService.getById(mesDataMaintainLog.getYoId());
if (yieldOrder == null) {
throw new ServiceException("生产订单不存在");
}
// 修改单件面积
if (mesDataMaintainLog.getAreaAfter() != null) {
yieldOrder.setYpArea(mesDataMaintainLog.getAreaAfter());
}
// 修改镀种
if (StringUtils.isNotBlank(mesDataMaintainLog.getPlateAfter())) {
yieldOrder.setPlate(mesDataMaintainLog.getPlateAfter());
}
// 修改镀层厚度
if (mesDataMaintainLog.getPlateThicknessAfter() != null) {
yieldOrder.setPlateThickness1(mesDataMaintainLog.getPlateThicknessAfter());
}
// 修改涂色标
if (StringUtils.isNotBlank(mesDataMaintainLog.getTsbAfter())) {
yieldOrder.setTsbNum(mesDataMaintainLog.getTsbAfter());
}
// 修改涂色带
if (StringUtils.isNotBlank(mesDataMaintainLog.getTsdAfter())) {
yieldOrder.setTsdNum(mesDataMaintainLog.getTsdAfter());
}
// 修改涂箭头
if (StringUtils.isNotBlank(mesDataMaintainLog.getTjtAfter())) {
yieldOrder.setTjtNum(mesDataMaintainLog.getTjtAfter());
}
// 修改数量
if (mesDataMaintainLog.getQtyAfter() != null) {
yieldOrder.setYpQty(mesDataMaintainLog.getQtyAfter());
// 修改车间订单数量
WorkOrder workOrder = workOrderService.getWorkOrderByCardNo(yieldOrder.getCardNo());
if (workOrder != null) {
WorkOrderRun workOrderRun = workOrderRunService.getById(workOrder.getWorId());
try {
// erp接口调用更新数量
erpDataProduceClient.erpUpdateMakeQty(workOrderRun.getWoCode(), mesDataMaintainLog.getMemo(), mesDataMaintainLog.getQtyAfter(), AuthUtil.getUserName()).getData();
} catch (Exception e) {
throw new ServiceException("erp接口调用修改订单加工数量失败:" + e.getMessage());
}
double num = mesDataMaintainLog.getQtyAfter() - yieldOrder.getYpQty();
workOrderService.update(Wrappers.lambdaUpdate(WorkOrder.class).eq(WorkOrder::getId, workOrder.getId()).set(WorkOrder::getMakeQty, workOrder.getMakeQty() + num));
// 修改作业计划接收数量、报工数量
baseMapper.updateWorkPlan(num, workOrder.getId());
// 修改报工记录
baseMapper.updateMakeRec(num, workOrder.getId());
// 修改检验记录
baseMapper.updateInspection(num, workOrder.getId());
// 修改镀前镀后记录
baseMapper.updatePlateAround(num, workOrder.getId());
}
}
yieldOrderService.updateById(yieldOrder);
return mesDataMaintainLogService.save(mesDataMaintainLog);
}
}

@ -152,5 +152,10 @@ public class ErpDataProduceClient implements IErpDataProduceClient {
return R.data(erpDataProduceService.selectMaxWoclstotqtyByWono(code));
}
@Override
public R<String> erpUpdateMakeQty(String woCode, String memo, Double qtyAfter, String userName) {
return R.data(erpDataProduceService.erpUpdateMakeQty(woCode, memo, qtyAfter, userName));
}
}

@ -70,4 +70,6 @@ public interface IErpDataProduceService {
Double selectMaxWototqtyByWono(String code);
Double selectMaxWoclstotqtyByWono(String code);
String erpUpdateMakeQty(String woCode, String memo, Double qtyAfter, String userName);
}

@ -589,4 +589,40 @@ public class ErpDataProduceServiceImpl implements IErpDataProduceService {
public Double selectMaxWoclstotqtyByWono(String code) {
return erpDataProduceMapper.selectMaxWoclstotqtyByWono(code);
}
@Override
public String erpUpdateMakeQty(String woCode, String memo, Double qtyAfter, String userName) {
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
// 指定存储过程名(包含 DB Link)
.withProcedureName("dba_mgr.pro_rbupwxdata")
// 建议关闭元数据访问(通过 DB Link 访问时可避免权限/性能问题)
.withoutProcedureColumnMetaDataAccess()
// 显式声明参数
.declareParameters(
new SqlParameter("v_wono", Types.VARCHAR),
new SqlParameter("v_chgqty", Types.DOUBLE),
new SqlParameter("v_chgman", Types.VARCHAR),
new SqlParameter("v_chgdat", Types.DATE),
new SqlParameter("v_chgrsn", Types.VARCHAR),
new SqlOutParameter("v_excnote", Types.VARCHAR),
new SqlOutParameter("v_excflag", Types.VARCHAR)
);
// 2. 封装输入参数
Map<String, Object> inParams = new HashMap<>();
inParams.put("v_wono", woCode);
inParams.put("v_chgqty", qtyAfter);
inParams.put("v_chgman", userName);
inParams.put("v_chgdat", new Date());
inParams.put("v_chgrsn", memo);
// 3. 执行并获取结果 Map
Map<String, Object> resultMap = jdbcCall.execute(inParams);
// 4. 提取输出参数
String excflag = (String) resultMap.get("v_excflag");
String excnote = (String) resultMap.get("v_excnote");
if ("0".equals(excflag)) {
throw new ServiceException("修改订单加工数量错误:" + excnote);
}
return excflag;
}
}

Loading…
Cancel
Save