skyouc
2025-05-09 18cee3f153e61fb04b17701d63fbd51a9276122a
rsf-server/src/main/java/com/vincent/rsf/server/manager/service/impl/AsnOrderItemServiceImpl.java
@@ -7,6 +7,7 @@
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;
@@ -21,6 +22,7 @@
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;
@@ -29,6 +31,7 @@
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;
@@ -61,6 +64,9 @@
    @Autowired
    private CompanysService companysService;
    @Autowired
    private DictDataService dictDataService;
    @Override
    public R generateBarcode(List<Long> orders) {
@@ -100,7 +106,7 @@
        StringBuffer sbFaild = new StringBuffer();
        for (String key : listMap.keySet()) {
            if (StringUtils.isBlank(key)) {
                throw new CoolException("单号不能能为空!!");
                throw new CoolException("单号不能为空!!");
            }
            AsnOrderTemplate template = listMap.get(key).stream().findFirst().get();
            AsnOrder order = asnOrderMapper.getOne(new LambdaQueryWrapper<AsnOrder>().eq(AsnOrder::getCode, key));
@@ -114,6 +120,15 @@
            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())
@@ -129,16 +144,16 @@
            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.getPoCode() + ":数量不能能为空!!");
                    throw new CoolException(orderTemplate.getCode() + ":数量不能为空!!");
                }
                if (StringUtils.isBlank(orderTemplate.getType())) {
                    throw new CoolException(orderTemplate.getPoCode() + ":单据类型不能为空!!");
                    throw new CoolException(orderTemplate.getCode() + ":单据类型不能为空!!");
                }
                if (StringUtils.isBlank(orderTemplate.getWkType())) {
                    throw new CoolException(orderTemplate.getPoCode() + ":业务类型不能为空!!");
                    throw new CoolException(orderTemplate.getCode() + ":业务类型不能为空!!");
                }
                Matnr matnr = matnrService.getOne(new LambdaQueryWrapper<Matnr>()
@@ -153,7 +168,8 @@
                        .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())
@@ -212,10 +228,10 @@
    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())
@@ -232,10 +248,21 @@
//        }
        //保存扩展字段
        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);