|
@@ -83,7 +83,7 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM
|
|
|
//设置单据号(F2206201305854)
|
|
|
if(oConvertUtils.isEmpty(syId)){
|
|
|
SimpleDateFormat sf = new SimpleDateFormat("yyMMddHHmmss");
|
|
|
- SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ SimpleDateFormat sf1 = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
String createTime = sf.format(new Date());
|
|
|
syShippingDetails.setDocumentNo("F"+createTime);
|
|
|
syShippingDetails.setState("0");//状态
|
|
@@ -97,23 +97,39 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM
|
|
|
//订单子表明细ID集合(单条)
|
|
|
List<String> stringList = new ArrayList<>();
|
|
|
|
|
|
- QueryWrapper<OrderDataVo> queryWrapper = new QueryWrapper<>();
|
|
|
+ List<String> paramList = new ArrayList<>();
|
|
|
Page<OrderDataVo> page = new Page<OrderDataVo>(1, -1);
|
|
|
//查询订单数据
|
|
|
List<String> itemId = syShippingDetails.getItemId();
|
|
|
for(String ids:itemId){
|
|
|
-
|
|
|
+ //报关要素ID
|
|
|
+ String elementId = "";
|
|
|
+ //根据每一行分组订单ID进行拆分
|
|
|
String itemIdSplit[] = ids.split(",");
|
|
|
+
|
|
|
for (String li:itemIdSplit){
|
|
|
stringList.add(li);
|
|
|
+ paramList.add(li);
|
|
|
}
|
|
|
- queryWrapper.in("b.id",stringList).eq("a.del_flag",0);
|
|
|
+ //查询每条订单明细
|
|
|
+ QueryWrapper<OrderDataVo> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("b.id",stringList).eq("a.del_flag",0).orderByDesc("b.create_time");
|
|
|
IPage<OrderDataVo> pageList = syShippingDetailsMapper.displayDetails(page, queryWrapper);
|
|
|
|
|
|
- //清空集合
|
|
|
- stringList.clear();
|
|
|
+
|
|
|
String gourpid = oConvertUtils.id();
|
|
|
|
|
|
+ //获取报关要素ID
|
|
|
+ //根据条件查询报关要素信息(2023.03.14现改为:订单号+款号+账套+物料)
|
|
|
+ QueryWrapper<SyDeclarationElements> elementsQueryWrapper = new QueryWrapper<>();
|
|
|
+ elementsQueryWrapper.eq("order_number",pageList.getRecords().get(0).getOrderNumber()).eq("ac_set_no",pageList.getRecords().get(0).getOmpoAccount()).eq("item_number",pageList.getRecords().get(0).getItemNumber()).eq("del_flag",0).eq("inventory_code",pageList.getRecords().get(0).getInventoryCode());
|
|
|
+ elementsQueryWrapper.orderByDesc("create_time");
|
|
|
+ List<SyDeclarationElements> elementsList = syDeclarationElementsService.list(elementsQueryWrapper);
|
|
|
+ if(elementsList.size() != 0){
|
|
|
+ //获取最新一条ID
|
|
|
+ elementId = elementsList.get(0).getId();
|
|
|
+ }
|
|
|
+
|
|
|
for (OrderDataVo li:pageList.getRecords()){
|
|
|
//实现构造函数方法赋值
|
|
|
SyShippingDetailsItem entity = new SyShippingDetailsItem(li);
|
|
@@ -125,16 +141,21 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM
|
|
|
|
|
|
//设置物料成分 和 是否TC
|
|
|
//根据款号物料名称查询相同数据并赋值,(2023.03.14现改为:订单号+款号+账套+物料)
|
|
|
- QueryWrapper<SyShippingDetailsItem> queryWrapper1 = new QueryWrapper<>();
|
|
|
- queryWrapper1.eq("item_number",li.getItemNumber()).eq("order_number",li.getOrderNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode());
|
|
|
- queryWrapper1.orderByDesc("create_time");
|
|
|
- List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(queryWrapper1);
|
|
|
- if(list.size()!=0){
|
|
|
- SyShippingDetailsItem itemEntity = list.get(0);
|
|
|
- entity.setMaterialComposition(itemEntity.getMaterialComposition());
|
|
|
- entity.setIsTc(itemEntity.getIsTc());
|
|
|
+// QueryWrapper<SyShippingDetailsItem> queryWrapper1 = new QueryWrapper<>();
|
|
|
+// queryWrapper1.eq("item_number",li.getItemNumber()).eq("order_number",li.getOrderNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode());
|
|
|
+// queryWrapper1.orderByDesc("create_time");
|
|
|
+// List<SyShippingDetailsItem> list = syShippingDetailsItemService.list(queryWrapper1);
|
|
|
+// if(list.size()!=0){
|
|
|
+// SyShippingDetailsItem itemEntity = list.get(0);
|
|
|
+// entity.setMaterialComposition(itemEntity.getMaterialComposition());
|
|
|
+// entity.setIsTc(itemEntity.getIsTc());
|
|
|
+// }
|
|
|
+ //设置物料成份
|
|
|
+ if(entity.getInventoryCcode().substring(0,2).equals("19")){
|
|
|
+ entity.setMaterialComposition(entity.getSpecificationAndModel());//取规格型号
|
|
|
+ }else{
|
|
|
+ entity.setMaterialComposition(entity.getInventoryName());//取存货名称
|
|
|
}
|
|
|
-
|
|
|
//设置排序
|
|
|
entity.setSort(sort);
|
|
|
//设置主表自建
|
|
@@ -152,36 +173,36 @@ public class SyShippingDetailsServiceImpl extends ServiceImpl<SyShippingDetailsM
|
|
|
BigDecimal customsDeclarationUnitPrice = li.getUnitPriceIncludingTax().subtract(yj);
|
|
|
entity.setCustomsDeclarationUnitPrice(customsDeclarationUnitPrice);
|
|
|
|
|
|
- //获取报关要素ID
|
|
|
- //根据条件查询报关要素信息(2023.03.14现改为:订单号+款号+账套+物料)
|
|
|
- QueryWrapper<SyDeclarationElements> elementsQueryWrapper = new QueryWrapper<>();
|
|
|
- elementsQueryWrapper.eq("order_number",li.getOrderNumber()).eq("ac_set_no",li.getOmpoAccount()).eq("item_number",li.getItemNumber()).eq("del_flag",0).eq("inventory_code",li.getInventoryCode());
|
|
|
- elementsQueryWrapper.orderByDesc("create_time");
|
|
|
- List<SyDeclarationElements> elementsList = syDeclarationElementsService.list(elementsQueryWrapper);
|
|
|
- if(elementsList.size() != 0){
|
|
|
- //获取最新一条ID
|
|
|
- String elementId = elementsList.get(0).getId();
|
|
|
- entity.setElementsId(elementId);
|
|
|
- }
|
|
|
+ //报关要素
|
|
|
+ entity.setElementsId(elementId);
|
|
|
|
|
|
syShippingDetailsItemList.add(entity);
|
|
|
+
|
|
|
//设置主表客户
|
|
|
syShippingDetails.setCustomer(li.getCustomerName());
|
|
|
|
|
|
- //回写订单剩余数量
|
|
|
- //查询订单子表信息
|
|
|
- SyOrderDataItem orderDataItem = syOrderDataItemService.getById(li.getSyOrderDataItemId());
|
|
|
+ //SyOrderDataItem orderDataItem = syOrderDataItemService.getById(li.getSyOrderDataItemId());
|
|
|
//直接设置为0,因为参照直接生成单据,数量不能更改,所以剩余数量会全部参照完
|
|
|
- orderDataItem.setSurplusNum(orderDataItem.getSurplusNum().subtract(li.getQuantity()));
|
|
|
- syOrderDataItemService.updateById(orderDataItem);
|
|
|
+ //orderDataItem.setSurplusNum(orderDataItem.getSurplusNum().subtract(li.getQuantity()));
|
|
|
+ //syOrderDataItemService.updateById(orderDataItem);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ // syShippingDetailsMapper.updateSurplusNum(stringList);
|
|
|
+ //清空集合
|
|
|
+ stringList.clear();
|
|
|
}
|
|
|
+ //回写订单剩余数量,直接设置为0
|
|
|
+ QueryWrapper<SyOrderDataItem> queryWrapper = new QueryWrapper<>();
|
|
|
+ queryWrapper.in("id", paramList);
|
|
|
+ SyOrderDataItem dataItem = new SyOrderDataItem();
|
|
|
+ dataItem.setSurplusNum(BigDecimal.ZERO);
|
|
|
+ syOrderDataItemService.update(dataItem, queryWrapper);
|
|
|
+
|
|
|
if(syShippingDetailsItemList.size()!=0){
|
|
|
syShippingDetailsItemService.saveBatch(syShippingDetailsItemList);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
+ }
|
|
|
boolean ok = save(syShippingDetails);
|
|
|
if(ok){
|
|
|
return syShippingDetails;
|