| | |
| | | package com.ruoyi.inspect.service.impl; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.Wrappers; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | |
| | | import com.ruoyi.common.enums.OrderType; |
| | | import com.ruoyi.common.utils.api.IfsApiUtils; |
| | | import com.ruoyi.inspect.dto.IfsPartPropsRecordDTO; |
| | | import com.ruoyi.inspect.mapper.IfsPartPropsRecordMapper; |
| | | import com.ruoyi.inspect.mapper.IfsSplitOrderRecordMapper; |
| | | import com.ruoyi.inspect.pojo.IfsPartPropsRecord; |
| | | import com.ruoyi.inspect.pojo.IfsSplitOrderRecord; |
| | | import com.ruoyi.inspect.service.IfsPartPropsRecordService; |
| | | import com.ruoyi.inspect.mapper.IfsPartPropsRecordMapper; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.beans.factory.annotation.Value; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | |
| | | @Autowired |
| | | private IfsSplitOrderRecordMapper ifsSplitOrderRecordMapper; |
| | | |
| | | @Value("${ifs.contract}") |
| | | public String contract; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = Exception.class) |
| | | public boolean saveOrUpdateProps(IfsPartPropsRecordDTO ifsPartPropsRecord) { |
| | | if(Objects.isNull(ifsPartPropsRecord)){ |
| | | throw new RuntimeException("参数不能为空"); |
| | | } |
| | | //判断是新增还是更新 |
| | | String actionType = Objects.isNull(ifsPartPropsRecord.getId())?"New":"Modify"; |
| | | Map<String, Object> inAttrMap = new HashMap<>(); |
| | | inAttrMap.put("RECORD_ID", UUID.randomUUID().toString()); |
| | | inAttrMap.put("SYSCODE", "LIMS"); |
| | | inAttrMap.put("SYSMODEL", "库存物料批次属性修改"); |
| | | HashMap<String, Object> batchInfoMap = new HashMap<>(); |
| | | batchInfoMap.put("CONTRACT","ZTNS");//域 |
| | | batchInfoMap.put("PART_NO",ifsPartPropsRecord.getPartNo());//零件号 |
| | | batchInfoMap.put("LOT_BATCH_NO",ifsPartPropsRecord.getLotBatchNo());//批次号 |
| | | batchInfoMap.put("ATTR1",ifsPartPropsRecord.getDrumNo());//载具编号 |
| | | batchInfoMap.put("ATTR2",ifsPartPropsRecord.getStartMeterMark().toString());//起始米标 |
| | | batchInfoMap.put("ATTR3",ifsPartPropsRecord.getEndMeterMark().toString());//截止米标 |
| | | batchInfoMap.put("ATTR4", ifsPartPropsRecord.getOuterColor());//外护颜色 |
| | | batchInfoMap.put("ATTR5",ifsPartPropsRecord.getInsulationColor());//绝缘颜色 |
| | | batchInfoMap.put("ATTR8",ifsPartPropsRecord.getLetteringInfo());//印字信息 |
| | | batchInfoMap.put("ATTR23","车间订单");//入库来源 |
| | | batchInfoMap.put("ATTR24","0");//分割预留数量 |
| | | batchInfoMap.put("ACTION_TYPE",actionType);//操作类型 |
| | | inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap)); |
| | | Result result = ifsApiUtils.importPartLotAttr(JSONUtil.toJsonStr(inAttrMap)); |
| | | if(result.getCode()!=200){ |
| | | throw new RuntimeException("库存物料批次属性更新失败:"+result.getMessage()); |
| | | //查询是否已有同批次同零件号的批次属性,没有才更新 |
| | | Long count = baseMapper.selectCountByPartNoAndLotBatchNo(ifsPartPropsRecord.getPartNo(),ifsPartPropsRecord.getLotBatchNo()); |
| | | if(count==0){ |
| | | //判断是新增还是更新 |
| | | String actionType = Objects.isNull(ifsPartPropsRecord.getId())?"New":"Modify"; |
| | | Map<String, Object> inAttrMap = new HashMap<>(); |
| | | inAttrMap.put("RECORD_ID", UUID.randomUUID().toString()); |
| | | inAttrMap.put("SYSCODE", "LIMS"); |
| | | inAttrMap.put("SYSMODEL", "库存物料批次属性修改"); |
| | | HashMap<String, Object> batchInfoMap = new HashMap<>(); |
| | | batchInfoMap.put("CONTRACT",contract);//域 |
| | | batchInfoMap.put("PART_NO",ifsPartPropsRecord.getPartNo());//零件号 |
| | | batchInfoMap.put("LOT_BATCH_NO",ifsPartPropsRecord.getLotBatchNo());//批次号 |
| | | batchInfoMap.put("ATTR1",ifsPartPropsRecord.getDrumNo());//载具编号 |
| | | batchInfoMap.put("ATTR2",ifsPartPropsRecord.getStartMeterMark().toString());//起始米标 |
| | | batchInfoMap.put("ATTR3",ifsPartPropsRecord.getEndMeterMark().toString());//截止米标 |
| | | batchInfoMap.put("ATTR4", ifsPartPropsRecord.getOuterColor());//外护颜色 |
| | | batchInfoMap.put("ATTR5",ifsPartPropsRecord.getInsulationColor());//绝缘颜色 |
| | | batchInfoMap.put("ATTR8",ifsPartPropsRecord.getLetteringInfo());//印字信息 |
| | | batchInfoMap.put("ATTR23","车间订单");//入库来源 |
| | | batchInfoMap.put("ATTR24","0");//分割预留数量 |
| | | batchInfoMap.put("ACTION_TYPE",actionType);//操作类型 |
| | | inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap)); |
| | | Result result = ifsApiUtils.importPartLotAttr(JSONUtil.toJsonStr(inAttrMap)); |
| | | if(result.getCode()!=200){ |
| | | throw new RuntimeException("库存物料批次属性更新失败:"+result.getMessage()); |
| | | } |
| | | } |
| | | return this.saveOrUpdate(ifsPartPropsRecord); |
| | | } |