feature:订单编辑更新物料、接口开具取开票组织信息

release
gaorl 2 years ago
parent bae2a03b24
commit 7e815f1428
  1. 29
      order-management-base-service/src/main/java/com/dxhy/order/baseservice/module/thirdservice/user/service/impl/UserInfoServiceImpl.java
  2. 8
      order-management-common/src/main/java/com/dxhy/order/utils/CheckParamUtil.java
  3. 13
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/controller/OrderInfoController.java
  4. 2
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/OrderInfoService.java
  5. 123
      order-management-consumer/src/main/java/com/dxhy/order/consumer/modules/order/service/impl/OrderInfoServiceImpl.java
  6. 34
      order-management-invoice/src/main/resources/mybatis/mapper/OrderItemInfoMapper.xml

@ -447,21 +447,22 @@ public class UserInfoServiceImpl implements UserInfoService {
if (entityList != null && entityList.size() > 0) { if (entityList != null && entityList.size() > 0) {
//选出默认项 //选出默认项
Optional<GroupManagementEntity> groupManagementEntityOptional = entityList.stream() Optional<GroupManagementEntity> groupManagementEntityOptional = entityList.stream()
.filter(groupManagementEntity -> OrderInfoEnum.ORDER_KPZZGL_SFMRX_0.getKey().equals(groupManagementEntity.getDefaultItem())) .filter(groupManagementEntity -> OrderInfoEnum.ORDER_KPZZGL_SFMRX_0.getKey().equals(groupManagementEntity.getDefaultItem())).findFirst();
.findFirst();
GroupManagementEntity groupManagementEntity = groupManagementEntityOptional.orElseGet(() -> entityList.get(0)); GroupManagementEntity groupManagementEntity = groupManagementEntityOptional.orElseGet(() -> entityList.get(0));
deptEntityNew = new DeptEntity(); if(StringUtils.isNotBlank(groupManagementEntity.getXhfNsrsbh())){
deptEntityNew.setDeptId(deptEntity.getDeptId()); deptEntityNew = new DeptEntity();
deptEntityNew.setTaxpayerCode(groupManagementEntity.getXhfNsrsbh()); deptEntityNew.setDeptId(deptEntity.getDeptId());
//todo 虚拟组织:组织名称和销方名称公用此字段会有问题,后期优化 deptEntityNew.setTaxpayerCode(groupManagementEntity.getXhfNsrsbh());
deptEntityNew.setName(groupManagementEntity.getGroupName()); //todo 虚拟组织:组织名称和销方名称公用此字段会有问题,后期优化
deptEntityNew.setTaxpayerName(groupManagementEntity.getXhfMc()); deptEntityNew.setName(groupManagementEntity.getGroupName());
deptEntityNew.setTaxpayerAddress(groupManagementEntity.getXhfDz()); deptEntityNew.setTaxpayerName(groupManagementEntity.getXhfMc());
deptEntityNew.setTaxpayerPhone(groupManagementEntity.getXhfDh()); deptEntityNew.setTaxpayerAddress(groupManagementEntity.getXhfDz());
deptEntityNew.setTaxpayerBank(groupManagementEntity.getXhfYh()); deptEntityNew.setTaxpayerPhone(groupManagementEntity.getXhfDh());
deptEntityNew.setTaxpayerAccount(groupManagementEntity.getXhfZh()); deptEntityNew.setTaxpayerBank(groupManagementEntity.getXhfYh());
deptEntityNew.setInvoiceName(groupManagementEntity.getXhfMc()); deptEntityNew.setTaxpayerAccount(groupManagementEntity.getXhfZh());
deptEntityNew.setInvoiceNsrsbh(groupManagementEntity.getXhfNsrsbh()); deptEntityNew.setInvoiceName(groupManagementEntity.getXhfMc());
deptEntityNew.setInvoiceNsrsbh(groupManagementEntity.getXhfNsrsbh());
}
} }
return deptEntityNew; return deptEntityNew;
} }

@ -239,4 +239,12 @@ public class CheckParamUtil {
return errorMap; return errorMap;
} }
public static void main(String[] args) {
try {
CheckParamUtil.checkParam(OrderInfoContentEnum.CHECK_ISS7PRI_107059, "塑料(ABS)_防静电_华信V-PRO矿工帽 带矿", "");
//System.out.println("塑料(ABS)_防静电_华信V-PRO矿工帽 带矿".getBytes("GBK").length);
} catch (Exception e) {
e.printStackTrace();
}
}
} }

@ -455,4 +455,17 @@ public class OrderInfoController {
return R.error("系统异常,请联系管理员"); return R.error("系统异常,请联系管理员");
} }
} }
@ApiOperation(value = "订单更新物料", notes = "订单信息管理-更新物料")
@PostMapping("/updateOrderItem")
@SysLog(operation = "订单更新物料", operationDesc = "订单更新物料", key = "订单更新物料")
public R updateOrderItem(@RequestParam("orderInfoId")String orderInfoId,@RequestParam("entId")String entId){
try {
return orderInfoService.updateOrderItem(orderInfoId,entId);
} catch (Exception e) {
log.error(e.getMessage());
return R.error("系统异常");
}
}
} }

@ -214,4 +214,6 @@ public interface OrderInfoService {
@Transactional @Transactional
R logicalDeleteByOrderInfoId(List<PageRequestVO> pageRequestList); R logicalDeleteByOrderInfoId(List<PageRequestVO> pageRequestList);
R updateOrderItem(String orderInfoId,String entId);
} }

@ -4,6 +4,7 @@ import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.nacos.common.utils.CollectionUtils;
import com.dxhy.base.constant.OrderSeparationException; import com.dxhy.base.constant.OrderSeparationException;
import com.dxhy.base.constant.TaxSeparateConfig; import com.dxhy.base.constant.TaxSeparateConfig;
import com.dxhy.base.utils.PriceTaxSeparationUtilNew; import com.dxhy.base.utils.PriceTaxSeparationUtilNew;
@ -11,6 +12,9 @@ import com.dxhy.common.generatepdf.util.EwmUtil;
import com.dxhy.order.baseservice.config.BaseServiceConfig; import com.dxhy.order.baseservice.config.BaseServiceConfig;
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity; import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity;
import com.dxhy.order.baseservice.module.buyer.service.BuyerService; import com.dxhy.order.baseservice.module.buyer.service.BuyerService;
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity;
import com.dxhy.order.baseservice.module.taxclass.dao.TaxClassCodeMapper;
import com.dxhy.order.baseservice.module.taxclass.model.TaxClassCodeEntity;
import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService; import com.dxhy.order.baseservice.module.thirdservice.simsback.service.SimsBackService;
import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity; import com.dxhy.order.baseservice.module.thirdservice.user.model.DeptEntity;
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService;
@ -18,6 +22,7 @@ import com.dxhy.order.constant.ConfigureConstant;
import com.dxhy.order.constant.OrderInfoContentEnum; import com.dxhy.order.constant.OrderInfoContentEnum;
import com.dxhy.order.constant.OrderInfoEnum; import com.dxhy.order.constant.OrderInfoEnum;
import com.dxhy.order.constant.OrderManagementConstant; import com.dxhy.order.constant.OrderManagementConstant;
import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper;
import com.dxhy.order.consumer.dao.OrderBatchRequestMapper; import com.dxhy.order.consumer.dao.OrderBatchRequestMapper;
import com.dxhy.order.consumer.dao.OrderProcessInfoMapper; import com.dxhy.order.consumer.dao.OrderProcessInfoMapper;
import com.dxhy.order.consumer.model.OderDetailInfo; import com.dxhy.order.consumer.model.OderDetailInfo;
@ -154,6 +159,12 @@ public class OrderInfoServiceImpl implements OrderInfoService {
@Resource @Resource
private SpecialInvoiceReversalMapper specialInvoiceReversalMapper; private SpecialInvoiceReversalMapper specialInvoiceReversalMapper;
@Resource
private GroupCommodityCodeMapper commodityCodeMapper;
@Resource
private TaxClassCodeMapper taxClassCodeMapper;
@Resource @Resource
private OrderBatchRequestMapper orderBatchRequestMapper; private OrderBatchRequestMapper orderBatchRequestMapper;
@ -1792,6 +1803,118 @@ public class OrderInfoServiceImpl implements OrderInfoService {
return R.ok(); return R.ok();
} }
@Override
public R updateOrderItem(String orderInfoId,String entId){
//根据订单id查询明细数据
List<OrderItemInfo> orderItemInfos = orderItemInfoMapper.selectAllByOrderId(Arrays.asList(orderInfoId), null);
List<OrderItemInfo> orderItemInfoList = new ArrayList<>();
for (OrderItemInfo orderItemInfo : orderItemInfos) {
if(StringUtils.isNotBlank(orderItemInfo.getSpbm())){
continue;
}
CommodityCodeEntity commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), null, entId);
// 如果公司物料库匹配失败,从集团物料库匹配
if (commodityCodeEntity == null) {
// 如果匹配不到,则去集团物料库匹配
commodityCodeEntity = commodityCodeMapper.queryCommodityCodeByZxbmAndXhfNsrsbhAndEntId(orderItemInfo.getZxbm(), "-1",null);
}
if(commodityCodeEntity != null){
completeCommodityMessageBySpid(orderItemInfo, commodityCodeEntity);
orderItemInfo.setZnfm(ConfigureConstant.STRING_1);
orderItemInfo.setXmsl(null);
orderItemInfo.setXmdj(null);
}
orderItemInfoList.add(orderItemInfo);
}
if(!orderItemInfoList.isEmpty()){
orderItemInfoMapper.updateOrderItemId(orderItemInfoList);
}
return R.ok();
}
private void completeCommodityMessageBySpid(OrderItemInfo item, CommodityCodeEntity commodity) {
//商品编码
if (StringUtils.isBlank(item.getSpbm()) && StringUtils.isNotBlank(commodity.getSpbm())) {
item.setSpbm(commodity.getSpbm());
}
//自行编码
if (StringUtils.isBlank(item.getZxbm()) && StringUtils.isNotBlank(commodity.getZxbm())) {
item.setZxbm(commodity.getZxbm());
}
//优惠政策标识
if (StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isNotBlank(commodity.getYhzcbs())) {
item.setYhzcbs(commodity.getYhzcbs());
}else if(StringUtils.isBlank(item.getYhzcbs()) && StringUtils.isBlank(commodity.getYhzcbs())){
item.setYhzcbs(ConfigureConstant.STRING_0);
}
//零税率标识
if (StringUtils.isBlank(item.getLslbs()) && StringUtils.isNotBlank(commodity.getLslbs())) {
item.setLslbs(commodity.getLslbs());
}
//增值税特殊管理
if (StringUtils.isBlank(item.getZzstsgl()) && StringUtils.isNotBlank(commodity.getZzstsgl())) {
item.setZzstsgl(commodity.getZzstsgl());
}
//如果项目名称为空,使用底层返回数据进行补全,如果不为空,并且需要补全,则进行补全
String spmc = item.getXmmc();
StringBuilder stringBuilder = new StringBuilder();
if (StringUtils.isBlank(spmc)) {
if(StrUtil.isNotBlank(commodity.getInvoiceName())){
spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getInvoiceName()).toString();
}else{
spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(commodity.getXmmc()).toString();
}
} else if (StringUtil.checkStr(spmc, commodity.getSpjc())) {
spmc = stringBuilder.append("*").append(commodity.getSpjc()).append("*").append(spmc).toString();
}
item.setXmmc(spmc);
//发票行性质为折扣行,不补全,单价,数量,单位,规格型号
if (!OrderInfoEnum.FPHXZ_CODE_1.getKey().equals(item.getFphxz())) {
//规格型号
if (StringUtils.isBlank(item.getGgxh()) && StringUtils.isNotBlank(commodity.getGgxh())) {
item.setGgxh(commodity.getGgxh());
}
//单位
if (StringUtils.isBlank(item.getXmdw()) && StringUtils.isNotBlank(commodity.getXmdw())) {
item.setXmdw(commodity.getXmdw());
}
//商品数量
if (StringUtils.isBlank(item.getXmsl())) {
item.setXmsl("");
}
//单价
if (StringUtils.isBlank(item.getXmdj()) && StringUtils.isNotBlank(commodity.getXmdj())) {
item.setXmdj(commodity.getXmdj());
}
}
//含税标志
if (StringUtils.isBlank(item.getHsbz()) && StringUtils.isNotBlank(commodity.getHsbz())) {
item.setHsbz(commodity.getHsbz());
}
//如果税率为空使用查询到的税率否则使用原税率
if (StringUtils.isBlank(item.getSl()) && StringUtils.isNotBlank(commodity.getSl())) {
item.setSl(CommonUtils.formatSl(commodity.getSl()));
}
if(StringUtils.isBlank(item.getTswl()) && StringUtils.isNotBlank(commodity.getTswl())){
item.setTswl(commodity.getTswl());
}
//税额
if (StringUtils.isBlank(item.getSe())) {
item.setSe("");
}
}
private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){ private PageKySlRsp getDefaultKySlList(OrderInfoEnum orderInfoEnum){
PageKySlRsp pageKySlRsp = new PageKySlRsp(); PageKySlRsp pageKySlRsp = new PageKySlRsp();
pageKySlRsp.setSl(orderInfoEnum.getKey()); pageKySlRsp.setSl(orderInfoEnum.getKey());

@ -274,18 +274,44 @@
<foreach collection="list" item="item" separator=";"> <foreach collection="list" item="item" separator=";">
UPDATE order_item_info UPDATE order_item_info
<set> <set>
<if test="item.xmsl != null "> <if test="item.xmsl != null and item.xmsl != ''">
xmsl = #{item.xmsl,jdbcType=VARCHAR}, xmsl = #{item.xmsl,jdbcType=VARCHAR},
</if> </if>
<if test="item.xmdj != null "> <if test="item.xmdj != null and item.xmdj != ''">
xmdj = #{item.xmdj,jdbcType=VARCHAR}, xmdj = #{item.xmdj,jdbcType=VARCHAR},
</if> </if>
<if test="item.xmdw != null "> <if test="item.xmdw != null and item.xmdw != ''">
xmdw = #{item.xmdw,jdbcType=VARCHAR}, xmdw = #{item.xmdw,jdbcType=VARCHAR},
</if> </if>
<if test="item.znfm != null "> <if test="item.znfm != null and item.znfm != ''">
znfm = #{item.znfm,jdbcType=VARCHAR}, znfm = #{item.znfm,jdbcType=VARCHAR},
</if> </if>
<if test="item.xmmc != null and item.znfm != ''">
xmmc = #{item.xmmc,jdbcType=VARCHAR},
</if>
<if test="item.ggxh != null and item.znfm != ''">
ggxh = #{item.ggxh,jdbcType=VARCHAR},
</if>
<if test="item.hsbz != null and item.znfm != ''">
hsbz = #{item.hsbz,jdbcType=VARCHAR},
</if>
<if test="item.spbm != null and item.znfm != ''">
spbm = #{item.spbm,jdbcType=VARCHAR},
</if>
<if test="item.yhzcbs != null and item.znfm != ''">
yhzcbs = #{item.yhzcbs,jdbcType=VARCHAR},
</if>
<if test="item.lslbs != null and item.znfm != ''">
lslbs = #{item.lslbs,jdbcType=VARCHAR},
</if>
<if test="item.zzstsgl != null and item.znfm != ''">
zzstsgl = #{item.zzstsgl,jdbcType=VARCHAR},
</if>
<if test="item.tswl != null and item.znfm != ''" >
tswl = #{item.tswl,jdbcType=VARCHAR},
</if>
</set> </set>
<where> <where>
id = #{item.id,jdbcType=VARCHAR} id = #{item.id,jdbcType=VARCHAR}

Loading…
Cancel
Save