| | |
| | | package com.ruoyi.inspect.aspect; |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.json.JSONArray; |
| | | import cn.hutool.json.JSONObject; |
| | | import cn.hutool.json.JSONUtil; |
| | | import com.baomidou.mybatisplus.core.toolkit.StringUtils; |
| | | import com.ruoyi.basic.dto.IfsInventoryQuantityDto; |
| | |
| | | Object[] args = joinPoint.getArgs(); |
| | | if(Objects.nonNull(args) && args.length>0) { |
| | | Long ifsInventoryId = (Long)args[0]; |
| | | log.info("id:{}",ifsInventoryId); |
| | | IfsInventoryQuantity ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(ifsInventoryId); |
| | | //如果订单是KJNS域的外购订单,免检时同步ZTNS域的IFS批次属性 |
| | | if(StringUtils.equals(ContractType.KJNS.getValue(),ifsInventoryQuantity.getContract()) && StringUtils.equals(OrderType.WG.getValue(),ifsInventoryQuantity.getOrderType())){ |
| | | //查询ZTNS域的相同批次订单消息 |
| | | IfsInventoryQuantityDto ifsInventoryQuantityDto = new IfsInventoryQuantityDto(); |
| | | BeanUtil.copyProperties(ifsInventoryQuantity,ifsInventoryQuantityDto); |
| | | ifsInventoryQuantityDto.setContract(ContractType.ZTNS.getValue()); |
| | | IfsPartPropsRecordDTO oneByContract = ifsPartPropsRecordService.getOneByContract(ifsInventoryQuantityDto); |
| | | if(Objects.nonNull(oneByContract)){ |
| | | //更新IFS批次属性 |
| | | Map<String, Object> inAttrMap = new HashMap<>(); |
| | | String actionType = "New"; |
| | | inAttrMap.put("RECORD_ID", UUID.randomUUID().toString()); |
| | | inAttrMap.put("SYSCODE", "LIMS"); |
| | | inAttrMap.put("SYSMODEL", "库存物料批次属性修改"); |
| | | HashMap<String, Object> batchInfoMap = new HashMap<>(); |
| | | batchInfoMap.put("CONTRACT",ContractType.KJNS.getValue());//域 |
| | | batchInfoMap.put("PART_NO",oneByContract.getPartNo());//零件号 |
| | | batchInfoMap.put("LOT_BATCH_NO",oneByContract.getLotBatchNo());//批次号 |
| | | batchInfoMap.put("ATTR1",oneByContract.getDrumNo());//载具编号 |
| | | batchInfoMap.put("ATTR2",oneByContract.getStartMeterMark().toString());//起始米标 |
| | | batchInfoMap.put("ATTR3",oneByContract.getEndMeterMark().toString());//截止米标 |
| | | batchInfoMap.put("ATTR4", oneByContract.getOuterColor());//外护颜色 |
| | | batchInfoMap.put("ATTR5",oneByContract.getInsulationColor());//绝缘颜色 |
| | | batchInfoMap.put("ATTR8",oneByContract.getLetteringInfo());//印字信息 |
| | | batchInfoMap.put("ATTR23","车间订单");//入库来源 |
| | | batchInfoMap.put("ATTR24","0");//分割预留数量 |
| | | batchInfoMap.put("ACTION_TYPE",actionType);//操作类型 |
| | | inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap)); |
| | | Result result = ifsApiUtils.importPartLotAttr(ContractType.KJNS.getValue(), JSONUtil.toJsonStr(inAttrMap)); |
| | | if(result.getCode()!=200){ |
| | | throw new RuntimeException("库存物料批次属性更新失败:"+result.getMessage()); |
| | | //查询ifs批次属性记录,有则不执行操作 |
| | | Map<String, Object> queryMap = new HashMap<>(); |
| | | queryMap.put("LOT_BATCH_NO",ifsInventoryQuantity.getUpdateBatchNo()); |
| | | queryMap.put("PART_NO",ifsInventoryQuantity.getPartNo()); |
| | | Result queryPartLotResult = ifsApiUtils.queryPartLotAttr(ContractType.KJNS.getValue(), JSONUtil.toJsonStr(queryMap)); |
| | | if(queryPartLotResult.getCode()==200){ |
| | | JSONObject entries = JSONUtil.parseObj(queryPartLotResult.getData()); |
| | | JSONArray listInfo = entries.getJSONArray("LIST_INFO"); |
| | | //如果订单是KJNS域的外购订单,免检时同步ZTNS域的IFS批次属性 |
| | | if(StringUtils.equals(ContractType.KJNS.getValue(),ifsInventoryQuantity.getContract()) && StringUtils.equals(OrderType.WG.getValue(),ifsInventoryQuantity.getOrderType()) && listInfo.isEmpty()){ |
| | | //查询ZTNS域的相同批次订单消息 |
| | | IfsInventoryQuantityDto ifsInventoryQuantityDto = new IfsInventoryQuantityDto(); |
| | | BeanUtil.copyProperties(ifsInventoryQuantity,ifsInventoryQuantityDto); |
| | | ifsInventoryQuantityDto.setContract(ContractType.ZTNS.getValue()); |
| | | IfsPartPropsRecordDTO oneByContract = ifsPartPropsRecordService.getOneByContract(ifsInventoryQuantityDto); |
| | | if(Objects.nonNull(oneByContract)){ |
| | | //更新IFS批次属性 |
| | | Map<String, Object> inAttrMap = new HashMap<>(); |
| | | String actionType = "New"; |
| | | inAttrMap.put("RECORD_ID", UUID.randomUUID().toString()); |
| | | inAttrMap.put("SYSCODE", "LIMS"); |
| | | inAttrMap.put("SYSMODEL", "库存物料批次属性修改"); |
| | | HashMap<String, Object> batchInfoMap = new HashMap<>(); |
| | | batchInfoMap.put("CONTRACT",ContractType.KJNS.getValue());//域 |
| | | batchInfoMap.put("PART_NO",oneByContract.getPartNo());//零件号 |
| | | batchInfoMap.put("LOT_BATCH_NO",oneByContract.getLotBatchNo());//批次号 |
| | | batchInfoMap.put("ATTR1",oneByContract.getDrumNo());//载具编号 |
| | | batchInfoMap.put("ATTR2",oneByContract.getStartMeterMark().toString());//起始米标 |
| | | batchInfoMap.put("ATTR3",oneByContract.getEndMeterMark().toString());//截止米标 |
| | | batchInfoMap.put("ATTR4", oneByContract.getOuterColor());//外护颜色 |
| | | batchInfoMap.put("ATTR5",oneByContract.getInsulationColor());//绝缘颜色 |
| | | batchInfoMap.put("ATTR8",oneByContract.getLetteringInfo());//印字信息 |
| | | batchInfoMap.put("ATTR23","车间订单");//入库来源 |
| | | batchInfoMap.put("ATTR24","0");//分割预留数量 |
| | | batchInfoMap.put("ACTION_TYPE",actionType);//操作类型 |
| | | inAttrMap.put("BATCH_INFO", Collections.singletonList(batchInfoMap)); |
| | | Result result = ifsApiUtils.importPartLotAttr(ContractType.KJNS.getValue(), JSONUtil.toJsonStr(inAttrMap)); |
| | | if(result.getCode()!=200){ |
| | | throw new RuntimeException("库存物料批次属性更新失败:"+result.getMessage()); |
| | | } |
| | | } |
| | | ifsPartPropsRecordService.save(oneByContract); |
| | | } |
| | | ifsPartPropsRecordService.save(oneByContract); |
| | | } |
| | | } |
| | | } |