vhbjknkm 2022-03-19 10:36 采纳率: 100%
浏览 43
已结题

仓库收货单拉采购到货单进行生单回写

回写是怎么做的
package com.yonyou.ucf.mdf.app.rule;

import blade.kit.logging.Logger;
import blade.kit.logging.LoggerFactory;
import com.yonyou.base.metadata.data.UFDouble;
import com.yonyou.ucf.mdd.common.model.rule.RuleExecuteResult;
import com.yonyou.ucf.mdd.ext.bill.dto.BillDataDto;
import com.yonyou.ucf.mdd.ext.bill.rule.base.AbstractCommonRule;
import com.yonyou.ucf.mdd.ext.model.BillContext;
import com.yonyou.ucf.mdf.app.common.ResultMessage;
import com.yonyou.ucf.mdf.app.controller.BidTransmitController;
import com.yonyou.ucf.mdf.app.controller.MddBillController;
import com.yonyou.ucf.mdf.app.dao.IAMToBipDao;
import com.yonyou.ucf.mdf.app.entity.AttachmentForm;
import com.yonyou.ucf.mdf.app.exceptions.BusinessException;
import com.yonyou.ucf.mdf.app.service.IIAMToBipService;
import lombok.SneakyThrows;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.apache.commons.lang3.StringUtils;
import org.imeta.orm.base.BizObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;


@Component("warehouseGoods")
public class WarehouseGoods extends AbstractCommonRule {
    @Autowired
    private IIAMToBipService iIAMToBip;
    @Autowired
    IIAMToBipService iIAMToBipService;
    @Autowired
    private IAMToBipDao iAMToBipDao;

    @Autowired
    JdbcTemplate jdbcTemplate;

    @Autowired
    IAMToBipDao iamToBipDao;

    private static Logger logger = LoggerFactory.getLogger(WarehouseGoods.class);

    @Override
    public RuleExecuteResult execute(BillContext billContext, Map<String, Object> paramMap) throws Exception {

        List<BizObject> bills = getBills(billContext, paramMap);
        String billnum = billContext.getBillnum();
        String fullname = billContext.getFullname();
        BillDataDto bill = (BillDataDto) getParam(paramMap);
        List<Map<String, Object>> data = (List<Map<String, Object>>) bill.getData();
        AttachmentForm attachmentForm = new  AttachmentForm();
        List<AttachmentForm>  lists = new ArrayList<>();
        ArrayList<BigDecimal> temp = new ArrayList<>();
        ArrayList<BizObject> objectlist = new ArrayList<>();
        List<Map<String, Object>> list = new ArrayList<>();
        for(int l=0;l<data.size();l++) {
            //判断是仓库收货拉单采购到货生单回写-有来源仓库收货单的业务流
            Map map=new HashMap ();
            map= data.get(l);
            boolean contains = map.containsKey("bizFlowName");
            //判断是否有业务流名称字段,没有跳过本条数据
            if (!contains){
                continue;
            }
            //判断业务流名称字段字段是否是本业务流名称字段,不是跳过
            else if(!data.get(l).get("bizFlowName").equals("有来源仓库收货单")){
                continue;
            }

            try {
                //判断单据来源是否为有来源仓库收货单
                if(!StringUtils.isEmpty((String) data.get(0).get("sourcechild_id"))) {
                    for (int i = 0; i < data.size(); i++) {
                        //attachmentForm.setFdFileName((String) data.get(i).get("bizFlowName"));
                        //List<Map<String, Object>> b = (List<Map<String, Object>>)  .get(i).get("bizFlowName");
                        if (data.get(i).get("bizFlowName").equals("有来源仓库收货单")) {
                            attachmentForm.setFdFileName((String) data.get(i).get("sourcechild_id"));
                            lists.add(attachmentForm);
                            objectlist = (ArrayList<BizObject>) data.get(0).get("receivebilldetailList");
                            //temp.add(objectlist.get(i).get("num"));
                            temp.add((BigDecimal)objectlist.get(i).get("num"));
                            logger.info("单据来源为有来源仓库收货单");
                        } else {
                            throw new BusinessException("保存失败,单据不是有来源的仓库收货单!");
                        }
                    }
                }
                String id = String.valueOf(lists.get(0).getFdFileName());
                list = iamToBipDao.findByListById(id);

                //回写累计数量
                //这里有个问题我没看出来
                for(int j=0;j<list.size();j++){
                    String sourcechildId = "";
                    String define4 = "";
                    String num = String.valueOf(temp.get(j));
                    if (list.contains(define4) == true) {
                        define4 = list.get(j).get("define4").toString();
                        sourcechildId = list.get(j).get("id").toString();
//                        num = String.valueOf(temp.get(j));
                        iamToBipDao.update(num, sourcechildId);
                        logger.error("回写成功");
                    } else {
                         //在这里会直接跳到 logger.error("生单失败!" + e);
                        BigDecimal bignum1 = new BigDecimal(num);
                        BigDecimal bignum2 = new BigDecimal(define4);
                        String amount = bignum1.add(bignum2).toString();
                        int result = amount.compareTo(num);
                        if (result >= 0) {
                            iamToBipDao.updates(amount, sourcechildId);
                            logger.error("回写成功");
                        } else {
                            logger.error("生单失败,超过最大收货数量!");
                            throw new BusinessException("生单失败,超过最大收货数量!");
                        }
                    }
                }
                }catch (Exception e) {
                    logger.error("生单失败!" + e);
                    throw new BusinessException("生单失败:"+e);
                }
        }
           return new RuleExecuteResult();
    }

}

img

  • 写回答

2条回答 默认 最新

  • 追风中的小少年 2022-03-19 10:54
    关注

    类型转换异常,请问下问题是?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月27日
  • 已采纳回答 3月19日
  • 修改了问题 3月19日
  • 修改了问题 3月19日
  • 展开全部

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改