|
|
|
@ -10,18 +10,19 @@ import com.dxhy.base.constant.TaxSeparateConfig; |
|
|
|
|
import com.dxhy.base.utils.PriceTaxSeparationUtilNew; |
|
|
|
|
import com.dxhy.common.generatepdf.util.EwmUtil; |
|
|
|
|
import com.dxhy.order.baseservice.config.BaseServiceConfig; |
|
|
|
|
import com.dxhy.order.baseservice.module.base.service.BaseService; |
|
|
|
|
import com.dxhy.order.baseservice.module.buyer.model.BuyerEntity; |
|
|
|
|
import com.dxhy.order.baseservice.module.buyer.service.BuyerService; |
|
|
|
|
import com.dxhy.order.baseservice.module.commodity.dao.CommodityMapper; |
|
|
|
|
import com.dxhy.order.baseservice.module.commodity.model.CommodityCodeEntity; |
|
|
|
|
import com.dxhy.order.baseservice.module.groupmanagement.dao.GroupManagementMapper; |
|
|
|
|
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.user.model.DeptEntity; |
|
|
|
|
import com.dxhy.order.baseservice.module.thirdservice.user.service.UserInfoService; |
|
|
|
|
import com.dxhy.order.constant.ConfigureConstant; |
|
|
|
|
import com.dxhy.order.constant.OrderInfoContentEnum; |
|
|
|
|
import com.dxhy.order.constant.OrderInfoEnum; |
|
|
|
|
import com.dxhy.order.constant.OrderManagementConstant; |
|
|
|
|
import com.dxhy.order.baseservice.utils.BaseServiceBeanTransitionUtils; |
|
|
|
|
import com.dxhy.order.constant.*; |
|
|
|
|
import com.dxhy.order.consumer.dao.GroupCommodityCodeMapper; |
|
|
|
|
import com.dxhy.order.consumer.dao.GsClientMapper; |
|
|
|
|
import com.dxhy.order.consumer.dao.OrderBatchRequestMapper; |
|
|
|
@ -33,6 +34,7 @@ import com.dxhy.order.consumer.modules.order.model.PageInvoiceItem; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.model.PageKySlReq; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.model.PageKySlRsp; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.model.bo.YwlxCountTotalBO; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.model.vo.OrderInfoVo; |
|
|
|
|
import com.dxhy.order.consumer.modules.order.service.*; |
|
|
|
|
import com.dxhy.order.consumer.modules.validate.service.ValidateOrderInfoService; |
|
|
|
|
import com.dxhy.order.consumer.openapi.service.CommonInterfaceService; |
|
|
|
@ -164,15 +166,18 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
@Resource |
|
|
|
|
private TaxClassCodeMapper taxClassCodeMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private OrderBatchRequestMapper orderBatchRequestMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private GroupManagementMapper groupManagementMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private GsClientMapper gsClientMapper; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private BaseService baseService; |
|
|
|
|
|
|
|
|
|
@Resource |
|
|
|
|
private CommodityMapper commodityMapper; |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public PageUtils selectOrderInfo(Map<String, Object> map, List<String> shList, List<String> entList) { |
|
|
|
|
return orderProcessService.selectOrderInfo(map, shList, entList); |
|
|
|
@ -1840,8 +1845,8 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
if(collect1.size()==orderItemInfos.size()){ |
|
|
|
|
Map map = new HashMap(2); |
|
|
|
|
map.put("cpy","Y"); |
|
|
|
|
Integer integer = taxClassCodeMapper.countTaxClassCodeBySpbm(collect1, map); |
|
|
|
|
if(orderItemInfos.size()==integer.intValue()){ |
|
|
|
|
List<TaxClassCodeEntity> taxClassCodeEntities = taxClassCodeMapper.selectTaxClassCodeList(collect1, map); |
|
|
|
|
if(orderItemInfos.size()==taxClassCodeEntities.size()){ |
|
|
|
|
//更新order_info 清单标志为4
|
|
|
|
|
OrderInfo orderInfo = new OrderInfo(); |
|
|
|
|
orderInfo.setId(orderInfoId); |
|
|
|
@ -1855,6 +1860,123 @@ public class OrderInfoServiceImpl implements OrderInfoService { |
|
|
|
|
return R.ok(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R sycnCommodity(OrderInfoVo param) { |
|
|
|
|
//优先新增物料
|
|
|
|
|
//如果公司库存在,但是部分数据与公司库不一致
|
|
|
|
|
//如果当前明细行物料编码为空
|
|
|
|
|
//更新订单物料智能赋码标识
|
|
|
|
|
List<String> spbms = new ArrayList<>(); |
|
|
|
|
List<OrderItemInfo> orderItemInfo = param.getOrderItemInfo(); |
|
|
|
|
if(orderItemInfo == null && orderItemInfo.isEmpty() ){ |
|
|
|
|
return R.error("同步公司库必须勾选同步的明细"); |
|
|
|
|
} |
|
|
|
|
List<String> ending = orderItemInfo.stream().filter(t->StringUtils.isNotBlank(t.getSpbm())).map(t -> { |
|
|
|
|
spbms.add(t.getSpbm()); |
|
|
|
|
return t.getZxbm(); |
|
|
|
|
}).collect(Collectors.toList()); |
|
|
|
|
Map map = new HashMap(2); |
|
|
|
|
map.put("hzx","N"); |
|
|
|
|
List<String> spbm = spbms.stream().distinct().collect(Collectors.toList()); |
|
|
|
|
ending = ending.stream().distinct().collect(Collectors.toList()); |
|
|
|
|
|
|
|
|
|
List<TaxClassCodeEntity> taxClassCodeEntities = taxClassCodeMapper.selectTaxClassCodeList(spbm, map); |
|
|
|
|
Map<String, TaxClassCodeEntity> spbmMap = taxClassCodeEntities.stream().collect(Collectors.toMap(t -> t.getSpbm(), t -> t)); |
|
|
|
|
|
|
|
|
|
List<CommodityCodeEntity> commodityCodeEntities = null; |
|
|
|
|
if(ending.size() > 0){ |
|
|
|
|
commodityCodeEntities = commodityMapper.queryCommodityByencodings(ending, Arrays.asList(param.getEntId()), Arrays.asList(param.getXhfNsrsbh())); |
|
|
|
|
} |
|
|
|
|
Map<String, CommodityCodeEntity> collect = null; |
|
|
|
|
if(commodityCodeEntities != null && commodityCodeEntities.size() > 0){ |
|
|
|
|
collect = commodityCodeEntities.stream().collect(Collectors.toMap(t -> t.getZxbm(), t -> t)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
List<OrderItemInfo> items = new ArrayList<>(); |
|
|
|
|
StringBuffer sb = new StringBuffer(); |
|
|
|
|
|
|
|
|
|
for (OrderItemInfo itemInfo : orderItemInfo) { |
|
|
|
|
try { |
|
|
|
|
CommodityCodeEntity commodityCodeEntity = buildCommodity(itemInfo, param, spbmMap); |
|
|
|
|
//判断是否已存在
|
|
|
|
|
int i = 0; |
|
|
|
|
//公司不维护
|
|
|
|
|
CommodityCodeEntity commodityCodeOld = collect.get(itemInfo.getZxbm()); |
|
|
|
|
if(collect == null || commodityCodeOld == null){ |
|
|
|
|
commodityCodeEntity.setId(baseService.getGenerateShotKey()); |
|
|
|
|
commodityCodeEntity.setCreateTime(new Date()); |
|
|
|
|
commodityCodeEntity.setUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); |
|
|
|
|
i = commodityMapper.insertCommodity(commodityCodeEntity); |
|
|
|
|
} |
|
|
|
|
//公司库已维护的不更新
|
|
|
|
|
if(commodityCodeOld != null){ |
|
|
|
|
//判断税编、规格型号、单位
|
|
|
|
|
commodityCodeEntity.setId(commodityCodeOld.getId()); |
|
|
|
|
commodityCodeEntity.setModifyTime(new Date()); |
|
|
|
|
commodityCodeEntity.setModifyUserId(userInfoService.getUser().getUserId() != null ? userInfoService.getUser().getUserId().toString():"sync"); |
|
|
|
|
i = commodityMapper.updateCommodity(commodityCodeEntity,Arrays.asList(param.getXhfNsrsbh())); |
|
|
|
|
} |
|
|
|
|
if(i > 0){ |
|
|
|
|
OrderItemInfo item = new OrderItemInfo(); |
|
|
|
|
item.setId(itemInfo.getId()); |
|
|
|
|
item.setZnfm(ConfigureConstant.STRING_0); |
|
|
|
|
items.add(item); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} catch (Exception e) { |
|
|
|
|
sb.append(itemInfo.getSphxh()).append(","); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if(items.size() > 0){ |
|
|
|
|
orderItemInfoMapper.updateOrderItemId(items); |
|
|
|
|
} |
|
|
|
|
String substring = sb.substring(0, sb.length() - 1) + "税编有误请检查"; |
|
|
|
|
|
|
|
|
|
return sb.length() == 0 ? R.ok() :R.error(substring); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private CommodityCodeEntity buildCommodity(OrderItemInfo itemInfo,OrderInfoVo orderInfoVo,Map<String, TaxClassCodeEntity> spbm ) throws Exception{ |
|
|
|
|
CommodityCodeEntity comm = new CommodityCodeEntity(); |
|
|
|
|
comm.setCommodityId(comm.getId()); |
|
|
|
|
comm.setSortId(0L); |
|
|
|
|
comm.setXhfNsrsbh(orderInfoVo.getXhfNsrsbh()); |
|
|
|
|
TaxClassCodeEntity taxClassCodeEntity = spbm.get(itemInfo.getSpbm()); |
|
|
|
|
if(taxClassCodeEntity == null){ |
|
|
|
|
throw new Exception("商品税编有误"); |
|
|
|
|
} |
|
|
|
|
String spjc = taxClassCodeEntity.getSpjc(); |
|
|
|
|
String xmmc = itemInfo.getXmmc().replace("*" + spjc + "*", ""); |
|
|
|
|
comm.setXmmc(xmmc); |
|
|
|
|
comm.setZxbm(StringUtils.isNotBlank(itemInfo.getZxbm())?itemInfo.getZxbm():comm.getId()); |
|
|
|
|
comm.setSpsm(taxClassCodeEntity.getSm()); |
|
|
|
|
comm.setSpjm(""); |
|
|
|
|
comm.setSl(itemInfo.getSl());//不需要转换%
|
|
|
|
|
comm.setGgxh(StringUtils.isNotBlank(itemInfo.getGgxh())?BaseServiceBeanTransitionUtils.ggxhTransition(itemInfo.getGgxh()):"");//切除40
|
|
|
|
|
comm.setXmdw(itemInfo.getXmdw()); |
|
|
|
|
comm.setXmdj(StringUtils.isNotBlank(itemInfo.getXmdj())?itemInfo.getXmdj():""); |
|
|
|
|
comm.setHsbz(itemInfo.getHsbz()); |
|
|
|
|
comm.setYcbz(ConfigureConstant.STRING_0); |
|
|
|
|
comm.setYhzcbs(itemInfo.getYhzcbs()); |
|
|
|
|
comm.setSpbm(itemInfo.getSpbm()); |
|
|
|
|
comm.setSsflMc(spjc); |
|
|
|
|
comm.setLslbs(itemInfo.getLslbs()); |
|
|
|
|
comm.setZzstsgl(itemInfo.getZzstsgl()); |
|
|
|
|
//如果税编和简称对不上返回报错
|
|
|
|
|
comm.setXhfMc(orderInfoVo.getXhfMc()); |
|
|
|
|
comm.setDataSource(TaxClassCodeEnum.DATA_SOURCE_8.getKey()); |
|
|
|
|
comm.setMatchingState(TaxClassCodeEnum.MATCHING_STATE_0.getKey()); |
|
|
|
|
comm.setDataState(TaxClassCodeEnum.DATA_STATE_0.getKey()); |
|
|
|
|
comm.setSpjc(spjc); |
|
|
|
|
comm.setCollectIdent("0"); |
|
|
|
|
comm.setCpy(taxClassCodeEntity.getCpy()); |
|
|
|
|
comm.setJdc(taxClassCodeEntity.getJdc()); |
|
|
|
|
comm.setEntId(orderInfoVo.getEntId()); |
|
|
|
|
comm.setTswl(StringUtils.isBlank(itemInfo.getTswl())?ConfigureConstant.STRING_0:""); |
|
|
|
|
return comm; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public R mergeOrderItem(String entId, String orderInfoId,List<String> itemList) throws Exception{ |
|
|
|
|
|
|
|
|
|