| | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.vincent.rsf.framework.common.Cools; |
| | | import com.vincent.rsf.framework.common.R; |
| | | import com.vincent.rsf.framework.exception.CoolException; |
| | | import com.vincent.rsf.server.manager.enums.OrderType; |
| | |
| | | import com.vincent.rsf.server.manager.entity.Matnr; |
| | | import com.vincent.rsf.server.manager.entity.excel.AsnOrderTemplate; |
| | | import com.vincent.rsf.server.manager.enums.CompanysType; |
| | | import com.vincent.rsf.server.manager.enums.QlyIsptResult; |
| | | import com.vincent.rsf.server.manager.mapper.AsnOrderItemMapper; |
| | | import com.vincent.rsf.server.manager.entity.AsnOrderItem; |
| | | import com.vincent.rsf.server.manager.service.AsnOrderItemService; |
| | |
| | | import com.vincent.rsf.server.manager.service.CompanysService; |
| | | import com.vincent.rsf.server.manager.service.MatnrService; |
| | | import com.vincent.rsf.server.system.constant.SerialRuleCode; |
| | | import com.vincent.rsf.server.system.service.DictDataService; |
| | | import com.vincent.rsf.server.system.service.FieldsItemService; |
| | | import com.vincent.rsf.server.system.service.FieldsService; |
| | | import com.vincent.rsf.server.system.utils.SerialRuleUtils; |
| | |
| | | |
| | | @Autowired |
| | | private CompanysService companysService; |
| | | |
| | | @Autowired |
| | | private DictDataService dictDataService; |
| | | |
| | | @Override |
| | | public R generateBarcode(List<Long> orders) { |
| | |
| | | Map<String, List<AsnOrderTemplate>> listMap = resultList.stream().collect(Collectors.groupingBy(AsnOrderTemplate::getCode)); |
| | | StringBuffer sbFaild = new StringBuffer(); |
| | | for (String key : listMap.keySet()) { |
| | | if (StringUtils.isBlank(key)) { |
| | | throw new CoolException("单号不能为空!!"); |
| | | } |
| | | AsnOrderTemplate template = listMap.get(key).stream().findFirst().get(); |
| | | AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, key)); |
| | | if (!Objects.isNull(order)) { |
| | |
| | | if (Objects.isNull(date)) { |
| | | throw new CoolException("时间格式错误!!"); |
| | | } |
| | | if (Objects.isNull((OrderType.getTypeVal(template.getType())))) { |
| | | sbFaild.append(template.getCode()).append(",单据状态不存在!!"); |
| | | throw new CoolException(sbFaild.toString()); |
| | | } |
| | | if (Objects.isNull((OrderWorkType.getWorkType(template.getWkType())))) { |
| | | sbFaild.append(template.getCode()).append(",业务状态不存在!!"); |
| | | throw new CoolException(sbFaild.toString()); |
| | | } |
| | | |
| | | order.setCode(template.getCode()) |
| | | .setPoCode(template.getPoCode()) |
| | | .setMemo(template.getMemo()) |
| | |
| | | for (AsnOrderTemplate orderTemplate : listMap.get(key)) { |
| | | AsnOrderItem orderItem = new AsnOrderItem(); |
| | | if (StringUtils.isBlank(orderTemplate.getMatnrCode())) { |
| | | throw new CoolException(orderTemplate.getPoCode() + ":物料编码不能为空!!"); |
| | | throw new CoolException(orderTemplate.getCode() + ":物料编码不能为空!!"); |
| | | } |
| | | if (StringUtils.isBlank(orderTemplate.getAnfme())) { |
| | | throw new CoolException(orderTemplate.getCode() + ":数量不能为空!!"); |
| | | } |
| | | if (StringUtils.isBlank(orderTemplate.getType())) { |
| | | throw new CoolException(orderTemplate.getCode() + ":单据类型不能为空!!"); |
| | | } |
| | | if (StringUtils.isBlank(orderTemplate.getWkType())) { |
| | | throw new CoolException(orderTemplate.getCode() + ":业务类型不能为空!!"); |
| | | } |
| | | |
| | | Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>() |
| | | .eq(Matnr::getCode, orderTemplate.getMatnrCode())); |
| | | if (Objects.isNull(matnr)) { |
| | |
| | | .setSplrBatch(orderTemplate.getSplrBatch()) |
| | | .setPlatItemId(orderTemplate.getPlatItemId()) |
| | | .setAnfme(Double.parseDouble(orderTemplate.getAnfme())) |
| | | .setTrackCode(trackCode) |
| | | .setIsptResult(QlyIsptResult.getDescVal(orderTemplate.getIsptResult())) |
| | | // .setTrackCode(trackCode) |
| | | .setBarcode(trackCode) |
| | | .setPoCode(orderTemplate.getPoCode()) |
| | | .setPurUnit(matnr.getUnit()) |
| | |
| | | public boolean fieldsSave(Map<String, Object> params, Long loginUserId) { |
| | | AsnOrderItem asnOrderItem = JSONObject.parseObject(JSONObject.toJSONString(params), AsnOrderItem.class); |
| | | asnOrderItem.setUpdateBy(loginUserId).setCreateBy(loginUserId); |
| | | if (StringUtils.isBlank(asnOrderItem.getTrackCode())) { |
| | | String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem); |
| | | asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode); |
| | | } |
| | | // if (StringUtils.isBlank(asnOrderItem.getTrackCode())) { |
| | | // String ruleCode = SerialRuleUtils.generateRuleCode(SerialRuleCode.SYS_LABEL_CODE, asnOrderItem); |
| | | // asnOrderItem.setTrackCode(ruleCode).setBarcode(ruleCode); |
| | | // } |
| | | if (StringUtils.isNoneBlank(asnOrderItem.getSplrCode())) { |
| | | Companys companys = companysService.getOne(new LambdaQueryWrapper<Companys>() |
| | | .eq(Companys::getId, asnOrderItem.getSplrCode()) |
| | |
| | | // } |
| | | //保存扩展字段 |
| | | try { |
| | | String uuid16 = CommonUtil.randomUUID16(); |
| | | Boolean fields = FieldsUtils.saveFields(params, uuid16); |
| | | if (fields) { |
| | | if (Objects.isNull(asnOrderItem.getFieldsIndex()) || StringUtils.isBlank(asnOrderItem.getFieldsIndex())) { |
| | | StringBuffer sb = new StringBuffer(); |
| | | if (!asnOrderItem.getExtendFields().isEmpty()) { |
| | | Map<String, String> fields = asnOrderItem.getExtendFields(); |
| | | asnOrderItem.getExtendFields().keySet().forEach(key -> { |
| | | sb.append(fields.get(key)); |
| | | }); |
| | | } |
| | | sb.append(asnOrderItem.getAsnCode() + asnOrderItem.getMatnrId() + asnOrderItem.getSplrBatch() + asnOrderItem.getIsptResult$()); |
| | | //获取16位uuid |
| | | String uuid16 = Cools.md5Chinese(sb.toString()); |
| | | asnOrderItem.setFieldsIndex(uuid16); |
| | | if (FieldsUtils.saveFields(params, uuid16)) { |
| | | asnOrderItem.setFieldsIndex(uuid16); |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | throw new RuntimeException(e); |