fix: 手工填开保存明细特殊物料;增加矿别name

release
liufeilong 2 years ago
parent 67ea1eaf34
commit 1f6c89e8c4
  1. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/model/PageOrderItemInfo.java
  2. 1
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/BeanTransServiceImpl.java
  3. 155
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java
  4. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/protocol/po/generateinvoice/sap/FpkjMxSap.java
  5. 8
      order-management-consumer/src/main/java/com/dxhy/order/consumer/openapi/service/impl/CommonInterfaceServiceImpl.java
  6. 4
      order-management-consumer/src/main/java/com/dxhy/order/consumer/utils/BeanTransitionUtils.java

@ -76,5 +76,9 @@ public class PageOrderItemInfo {
* kce
*/
private String kce;
/**
* 特殊物料
*/
private String tswl;
}

@ -196,6 +196,7 @@ public class BeanTransServiceImpl implements BeanTransService {
orderItemInfo.setSe(pageOrderItemInfo.getXmse());
orderItemInfo.setKce(pageOrderItemInfo.getKce());
orderItemInfo.setXhfNsrsbh(orderInfo.getXhfNsrsbh());
orderItemInfo.setTswl(pageOrderItemInfo.getTswl());
orderItemInfos.add(orderItemInfo);
i++;

@ -1654,4 +1654,159 @@ public class OrderInfoServiceImpl implements OrderInfoService {
pageKySlRsp.setSlMc(orderInfoEnum.getValue());
return pageKySlRsp;
}
/**
* 红字信息表不存在清单的对比订单和红字信息表
* @param order , hzxxb
* @return
*/
private Map<String,String> compareOrderAndHzxxb(CommonOrderInfo order,CommonOrderInfo hzxxb) {
OrderInfo orderOrderInfo = order.getOrderInfo();
OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo();
StringBuffer errorMsg = new StringBuffer();
Map<String,String> returnMap = new HashMap<>();
returnMap.put("code","0000");
returnMap.put("msg","success");
Map<String, String> gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb);
if("9999".equals(gxfCheckMap.get("code"))){
errorMsg.append(gxfCheckMap.get("msg"));
}
log.info("订单明细{}",JsonUtils.getInstance().toJsonString(order.getOrderItemInfo()));
log.info("红字信息表明细{}",JsonUtils.getInstance().toJsonString(hzxxb.getOrderItemInfo()));
if(hzxxb.getOrderItemInfo().size()!=order.getOrderItemInfo().size()){
errorMsg.append("红字信息表明细条数和订单明细条数不一致,红字信息表明细条数:"+hzxxb.getOrderItemInfo().size()+"订单明细条数:"+order.getOrderItemInfo().size());
returnMap.put("code","9999");
returnMap.put("msg",errorMsg.toString());
return returnMap;
}
hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem ->{
List<OrderItemInfo> filterItem= new ArrayList<>();
BigDecimal hzxxbJshj = new BigDecimal(hzxxbItem.getXmje()).add(new BigDecimal(hzxxbItem.getSe()));
for(OrderItemInfo orderItemInfo :order.getOrderItemInfo()){
BigDecimal orderJshj = new BigDecimal(orderItemInfo.getXmje()).add(new BigDecimal(orderItemInfo.getSe()));
if(hzxxbJshj.compareTo(orderJshj)==0 && hzxxbItem.getXmmc().contains(orderItemInfo.getXmmc()) && orderItemInfo.getSl().equals(hzxxbItem.getSl())){
filterItem.add(orderItemInfo);
}
}
if(filterItem.size() == 0){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],在订单中未匹配到对应明细;");
}
});
/*
hzxxb.getOrderItemInfo().stream().forEach(hzxxbItem -> {
List<OrderItemInfo> filterItem = order.getOrderItemInfo().stream().filter(orderItem ->hzxxbItem.getXmmc().contains(orderItem.getXmmc()) &&
((ObjectUtil.isNotNull(orderItem.getGgxh()) && ObjectUtil.isNotNull(hzxxbItem.getGgxh()) && orderItem.getGgxh().equals(hzxxbItem.getGgxh())) || (ObjectUtil.isNull(hzxxbItem.getGgxh()) && ObjectUtil.isNull(orderItem.getGgxh()))) && orderItem.getSl().equals(hzxxbItem.getSl()) &&
((ObjectUtil.isNotNull(orderItem.getXmdj()) && ObjectUtil.isNotNull(hzxxbItem.getXmdj()) && orderItem.getXmdj().equals(hzxxbItem.getXmdj())) || (ObjectUtil.isNull(hzxxbItem.getXmdj()) && ObjectUtil.isNull(orderItem.getXmdj())))).collect(Collectors.toList());
if(filterItem.size() == 0){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],在订单中未匹配到对应明细;");
}else {
OrderItemInfo oii = filterItem.get(0);
if(!hzxxbItem.getXmdw().equals(oii.getXmdw())){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],单位与订单中的单位不匹配;");
}
if(!hzxxbItem.getXmsl().equals(oii.getXmsl())){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],数量与订单中的数量不匹配;");
}
if(new BigDecimal(hzxxbItem.getXmje()).compareTo(new BigDecimal(oii.getXmje())) != 0){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],金额与订单中的金额不匹配;");
}
if(new BigDecimal(hzxxbItem.getSe()).compareTo(new BigDecimal(oii.getSe())) != 0){
errorMsg.append("红字信息表明细[").append(hzxxbItem.getXmmc()).append("-").append(hzxxbItem.getGgxh()).append("-").append(hzxxbItem.getSl()).append("-").append(hzxxbItem.getXmdj()).append("],税额与订单中的税额不匹配;");
}
}
});
*/
if(errorMsg.length() > 0){
returnMap.put("code","9999");
returnMap.put("msg",errorMsg.toString());
}
return returnMap;
}
/**
* 红字信息表存在清单的对比订单和红字信息表
* @param order , hzxxb
* @return
*/
private Map<String,String> compareOrderAndHzxxbQd(CommonOrderInfo order,CommonOrderInfo hzxxb) {
OrderInfo orderOrderInfo = order.getOrderInfo();
OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo();
StringBuffer errorMsg = new StringBuffer();
Map<String,String> returnMap = new HashMap<>();
returnMap.put("code","0000");
returnMap.put("msg","success");
Map<String, String> gxfCheckMap = compareOrderAndHzxxbGXF(order, hzxxb);
if("9999".equals(gxfCheckMap.get("code"))){
errorMsg.append(gxfCheckMap.get("msg"));
}
if(new BigDecimal(orderOrderInfo.getKphjje()).compareTo(new BigDecimal(hzxxbOrderInfo.getKphjje())) != 0){
errorMsg.append("订单与红字信息表的合计金额不一致;");
}
if(errorMsg.length() > 0){
returnMap.put("code","9999");
returnMap.put("msg",errorMsg.toString());
}
return returnMap;
}
/**
* 对比订单和红字信息表的购销方信息
* @param order , hzxxb
* @return
*/
private Map<String,String> compareOrderAndHzxxbGXF(CommonOrderInfo order,CommonOrderInfo hzxxb) {
StringBuffer errorMsg = new StringBuffer();
Map<String,String> returnMap = new HashMap<>();
returnMap.put("code","0000");
returnMap.put("msg","success");
OrderInfo orderOrderInfo = order.getOrderInfo();
OrderInfo hzxxbOrderInfo = hzxxb.getOrderInfo();
if(!orderOrderInfo.getXhfNsrsbh().equals(hzxxbOrderInfo.getXhfNsrsbh())){
errorMsg.append("订单销方纳税人识别号:").append(orderOrderInfo.getXhfNsrsbh()).append(" 红字信息表销方纳税人识别号:").append(hzxxbOrderInfo.getXhfNsrsbh()).append(" 不一致;");
}
if(!orderOrderInfo.getXhfMc().equals(hzxxbOrderInfo.getXhfMc())){
errorMsg.append("订单销方名称:").append(orderOrderInfo.getXhfMc()).append(" 红字信息表销方名称:").append(hzxxbOrderInfo.getXhfMc()).append(" 不一致;");
}
// if(!orderOrderInfo.getXhfDz().equals(hzxxbOrderInfo.getXhfDz())){
// errorMsg.append("订单销方地址:").append(orderOrderInfo.getXhfDz()).append(" 红字信息表销方地址:").append(hzxxbOrderInfo.getXhfDz()).append(" 不一致;");
// }
// if(!orderOrderInfo.getXhfDh().equals(hzxxbOrderInfo.getXhfDh())){
// errorMsg.append("订单销方电话:").append(orderOrderInfo.getXhfDh()).append(" 红字信息表销方电话:").append(hzxxbOrderInfo.getXhfDh()).append(" 不一致;");
// }
// if(!orderOrderInfo.getXhfYh().equals(hzxxbOrderInfo.getXhfYh())){
// errorMsg.append("订单销方银行:").append(orderOrderInfo.getXhfYh()).append(" 红字信息表销方银行:").append(hzxxbOrderInfo.getXhfYh()).append(" 不一致;");
// }
// if(!orderOrderInfo.getXhfZh().equals(hzxxbOrderInfo.getXhfZh())){
// errorMsg.append("订单销方账号:").append(orderOrderInfo.getXhfZh()).append(" 红字信息表销方账号:").append(hzxxbOrderInfo.getXhfZh()).append(" 不一致;");
// }
if(!orderOrderInfo.getGhfNsrsbh().equals(hzxxbOrderInfo.getGhfNsrsbh())){
errorMsg.append("订单购方纳税人识别号:").append(orderOrderInfo.getGhfNsrsbh()).append(" 红字信息表购方纳税人识别号:").append(hzxxbOrderInfo.getGhfNsrsbh()).append(" 不一致;");
}
if(!orderOrderInfo.getGhfMc().equals(hzxxbOrderInfo.getGhfMc())){
errorMsg.append("订单购方名称:").append(orderOrderInfo.getGhfMc()).append(" 红字信息表购方名称:").append(hzxxbOrderInfo.getGhfMc()).append(" 不一致;");
}
// if(!orderOrderInfo.getGhfDz().equals(hzxxbOrderInfo.getGhfDz())){
// errorMsg.append("订单购方地址:").append(orderOrderInfo.getGhfDz()).append(" 红字信息表购方地址:").append(hzxxbOrderInfo.getGhfDz()).append(" 不一致;");
// }
// if(!orderOrderInfo.getGhfDh().equals(hzxxbOrderInfo.getGhfDh())){
// errorMsg.append("订单购方电话:").append(orderOrderInfo.getGhfDh()).append(" 红字信息表购方电话:").append(hzxxbOrderInfo.getGhfDh()).append(" 不一致;");
// }
// if(!orderOrderInfo.getGhfYh().equals(hzxxbOrderInfo.getGhfYh())){
// errorMsg.append("订单购方银行:").append(orderOrderInfo.getGhfYh()).append(" 红字信息表购方银行:").append(hzxxbOrderInfo.getGhfYh()).append(" 不一致;");
// }
// if(!orderOrderInfo.getGhfZh().equals(hzxxbOrderInfo.getGhfZh())){
// errorMsg.append("订单购方账号:").append(orderOrderInfo.getGhfZh()).append(" 红字信息表购方账号:").append(hzxxbOrderInfo.getGhfZh()).append(" 不一致;");
// }
if(errorMsg.length() > 0){
returnMap.put("code","9999");
returnMap.put("msg",errorMsg.toString());
}
return returnMap;
}
}

@ -65,4 +65,8 @@ public class FpkjMxSap {
* 矿别
*/
private String KTYPE;
/**
* 矿别名称
*/
private String KNAME;
}

@ -532,8 +532,12 @@ public class CommonInterfaceServiceImpl implements CommonInterfaceService {
* 2.1 商品编码不为空使用商品编码补全
* 2.2 商品编码为空项目名称不为空使用商品名称补全
*/
item.setZnfm(ConfigureConstant.STRING_1);
item.setTswl(ConfigureConstant.STRING_0);
if(StrUtil.isBlank(item.getZnfm())){
item.setZnfm(ConfigureConstant.STRING_1);
}
if(StrUtil.isBlank(item.getTswl())){
item.setTswl(ConfigureConstant.STRING_0);
}
if (StringUtils.isNotBlank(item.getSpId())) {
R r = commodityService.queryCommodityById(item.getSpId(), shList);
if (ConfigureConstant.STRING_0000.equals(r.get(OrderManagementConstant.CODE))) {

@ -3499,7 +3499,7 @@ public class BeanTransitionUtils {
ddtxxBO.setPZGZRQ(req.getZGZRQ());
ddtxxBO.setYZFP(ConfigureConstant.STRING_0);
ddtxxBO.setORIGINDDH(req.getZJSDH());
ddtxxBO.setKB(req.getITITEM().get(0).getKTYPE());
ddtxxBO.setKB(req.getITITEM().get(0).getKTYPE()+":"+req.getITITEM().get(0).getKNAME());
//TODO lfl 清单标志怎么处理?
ddtxxBO.setQDBZ("0");
if(ConfigureConstant.STRING_1.equals(req.getZSFHZ())){
@ -3538,7 +3538,7 @@ public class BeanTransitionUtils {
ddmxxxBO.setHSBZ(ConfigureConstant.STRING_1);
ddmxxxBO.setSE(detail.getZZSE());
ddmxxxBO.setPH(detail.getCHARG());
ddmxxxBO.setKB(detail.getKTYPE());
ddmxxxBO.setKB(detail.getKTYPE()+":"+detail.getKNAME());
//TODO lfl 优惠政策标识 取税编对应的优惠政策标识!
ddmxxxBO.setYHZCBS("0");
ddmxList.add(ddmxxxBO);

Loading…
Cancel
Save