|
@@ -6,6 +6,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
+import org.hibernate.engine.jdbc.Size;
|
|
|
import org.jeecg.common.api.vo.Result;
|
|
|
import org.jeecg.common.exception.JeecgBootException;
|
|
|
import org.jeecg.common.util.oConvertUtils;
|
|
@@ -233,51 +234,102 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
|
|
|
Map<String,String> mapId=new HashMap<>();//key为发运明细子表id,value为分组id
|
|
|
syPackingListTailoring.setTotalBoxes(new BigDecimal("0"));
|
|
|
syPackingListTailoring.setTotalPrice(new BigDecimal("0"));
|
|
|
- for(SyPackingListTailoringItem s1 : items){//调整面辅料云工厂接口,导入添加验证,改面辅料金额计算
|
|
|
- SyPreAssembledPackingListItem syPreAssembledPackingListItem=syPreAssembledPackingListItemMapper.selectById(s1.getSyPreAssembledPackingListItemId());
|
|
|
- if(syPreAssembledPackingListItem==null){
|
|
|
- throw new JeecgBootException("数据库找不到对应的预装箱单子表id"+s1.getSyPreAssembledPackingListItemId());
|
|
|
+ /**
|
|
|
+ * 获取所有的尺码和预装箱单子表id,创建map对象根据分组id,
|
|
|
+ * 循环map.size次,根据map的key随机获取一条数据,有尺码数据的就不更改了,,无尺码数据的只更换尺码和预装箱单id
|
|
|
+ * 最后在进行添加
|
|
|
+ */
|
|
|
+ Map<String,String> sizes=new HashMap<>();
|
|
|
+ Map<String,List<SyPackingListTailoringItem>> maps=new HashMap<>();
|
|
|
+ for (SyPackingListTailoringItem item : items){
|
|
|
+ if(!sizes.containsKey(item.getSize())){//获取所有的尺码和预装箱单子表id
|
|
|
+ sizes.put(item.getSize(),item.getSyPreAssembledPackingListItemId());
|
|
|
+ }
|
|
|
+ if(maps.containsKey(item.getGroupId())){//根据分组id创建map对象
|
|
|
+ maps.get(item.getGroupId()).add(item);
|
|
|
+ }else{
|
|
|
+ List<SyPackingListTailoringItem> items1=new ArrayList<>();
|
|
|
+ items1.add(item);
|
|
|
+ maps.put(item.getGroupId(),items1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ items=new ArrayList<>();
|
|
|
+ for (String groupId : maps.keySet()){
|
|
|
+ SyPackingListTailoringItem item1=maps.get(groupId).get(0);
|
|
|
+ Map<String,Integer> sizes1=new HashMap<>();//获取尺码和数量
|
|
|
+ List<SizeTable> sizeTables=new ArrayList<>();
|
|
|
+ for (SyPackingListTailoringItem item : maps.get(groupId)){//获取该分组的所有尺码
|
|
|
+ sizes1.put(item.getSize(),item.getActualPackingQty().intValue());
|
|
|
}
|
|
|
- s1.setId(null);
|
|
|
- s1.setDelFlag("0");
|
|
|
- BigDecimal total=s1.getTotal();
|
|
|
- s1.setTotal(s1.getActualPackingQty().multiply(s1.getBoxNumber()));//各尺码数量
|
|
|
- s1.setActualPackingQty(total);//合计
|
|
|
- s1.setSyPackingListTailoringId(syPackingListTailoring.getId());//主表id
|
|
|
- s1.setSyPreAssembledPackingListId(syPackingListTailoring.getSyPreAssembledPackingListId());//预装箱单主表id
|
|
|
-
|
|
|
- if(!mapId.containsKey(s1.getGroupId())){//如果这个发运明细id没有分组id,就生成一个新的分组id
|
|
|
- mapId.put(s1.getGroupId(), org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
|
|
|
- syPackingListTailoring.setTotalBoxes(syPackingListTailoring.getTotalBoxes().add(s1.getBoxNumber()));//总箱数
|
|
|
+ for (String size : sizes.keySet()){
|
|
|
+ SizeTable sizeTable=new SizeTable();
|
|
|
+ sizeTable.setSize(size);//获取尺码
|
|
|
+ sizeTable.setItemId(sizes.get(size));//获取预装箱单子表id
|
|
|
+ if(sizes1.containsKey(size)){//有尺码的获取数量
|
|
|
+ sizeTable.setProportion(sizes1.get(size));//获取数量
|
|
|
+ }else{//默认为0
|
|
|
+ sizeTable.setProportion(0);
|
|
|
+ }
|
|
|
+ sizeTables.add(sizeTable);
|
|
|
}
|
|
|
- s1.setGroupId(mapId.get(s1.getGroupId()));//获取id
|
|
|
- s1.setUnitPrice(syPreAssembledPackingListItem.getUnitPrice());//单价
|
|
|
- try{
|
|
|
- s1.setHod(new SimpleDateFormat("yyyy-MM-dd").parse(syPreAssembledPackingListItem.getHod()));//字符转化为日期,需要申明异常
|
|
|
- }catch (Exception e){
|
|
|
- e.printStackTrace();
|
|
|
+ item1.setSizeTables(sizeTables);
|
|
|
+ items.add(item1);
|
|
|
+ }
|
|
|
+ System.out.println("SyPackingListTailoringItem.size\t"+items.size());
|
|
|
+ for(SyPackingListTailoringItem s1 : items){
|
|
|
+ s1.setGroupId(org.jeecg.modules.system.util.oConvertUtils.getId());
|
|
|
+ syPackingListTailoring.setTotalBoxes(syPackingListTailoring.getTotalBoxes().add(s1.getBoxNumber()));//总箱数
|
|
|
+ for (SizeTable sizeTable : s1.getSizeTables()){//sizetable
|
|
|
+ SyPreAssembledPackingListItem syPreAssembledPackingListItem=syPreAssembledPackingListItemMapper.selectById(sizeTable.getItemId());
|
|
|
+ if(syPreAssembledPackingListItem==null){
|
|
|
+ throw new JeecgBootException("数据库找不到对应的预装箱单子表id"+s1.getSyPreAssembledPackingListItemId());
|
|
|
+ }
|
|
|
+ s1.setId(null);
|
|
|
+ s1.setDelFlag("0");
|
|
|
+ BigDecimal total=s1.getTotal();
|
|
|
+ s1.setTotal(new BigDecimal(sizeTable.getProportion()).multiply(s1.getBoxNumber()));//各尺码数量
|
|
|
+ s1.setSize(sizeTable.getSize());
|
|
|
+ s1.setActualPackingQty(total);//合计
|
|
|
+ s1.setSyPackingListTailoringId(syPackingListTailoring.getId());//主表id
|
|
|
+ s1.setSyPreAssembledPackingListId(syPackingListTailoring.getSyPreAssembledPackingListId());//预装箱单主表id
|
|
|
+
|
|
|
+ /*if(!mapId.containsKey(s1.getGroupId())){//如果这个发运明细id没有分组id,就生成一个新的分组id
|
|
|
+ mapId.put(s1.getGroupId(), org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
|
|
|
+ }*/
|
|
|
+ //s1.setGroupId(mapId.get(s1.getGroupId()));//获取id
|
|
|
+ s1.setUnitPrice(syPreAssembledPackingListItem.getUnitPrice());//单价
|
|
|
+ try{
|
|
|
+ s1.setHod(new SimpleDateFormat("yyyy-MM-dd").parse(syPreAssembledPackingListItem.getHod()));//字符转化为日期,需要申明异常
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ s1.setTotalPrice(s1.getTotal().multiply(s1.getUnitPrice()));//计算总价
|
|
|
+
|
|
|
+ s1.setSyOrderDataId(syPreAssembledPackingListItem.getSyOrderDataId());//订单数据子表id
|
|
|
+ s1.setSyOrderDataItemId(syPreAssembledPackingListItem.getSyOrderDataItemId());//订单数据子表id
|
|
|
+ s1.setOmpoAccount(syPreAssembledPackingListItem.getOmpoAccount());//采购委外账套号
|
|
|
+ s1.setOmpoId(syPreAssembledPackingListItem.getOmpoId());//采购委外主表id
|
|
|
+ s1.setOmpoIdItem(syPreAssembledPackingListItem.getOmpoIdItem());//采购委外子表id
|
|
|
+
|
|
|
+ s1.setSalesman(syPreAssembledPackingListItem.getSalesman());//业务员
|
|
|
+ s1.setSalesDepartment(syPreAssembledPackingListItem.getSalesDepartment());//业务部门
|
|
|
+ s1.setSpurOrSubOrder(syPreAssembledPackingListItem.getSpurOrSubOrder());//采购委外订单号
|
|
|
+ s1.setMasterMetering(syPreAssembledPackingListItem.getMasterMetering());//计量单位
|
|
|
+ s1.setFactoryUnitPrice(syPreAssembledPackingListItem.getFactoryUnitPrice());//工厂单价
|
|
|
+ s1.setInventoryCcode(syPreAssembledPackingListItem.getInventoryCcode());//物料分类
|
|
|
+ s1.setWithCode(syPreAssembledPackingListItem.getWithCode());//配码规则
|
|
|
+ s1.setPackId(syPreAssembledPackingListItem.getPackId());
|
|
|
+ s1.setSupplier(syPreAssembledPackingListItem.getSupplier());
|
|
|
+ s1.setSupplierCode(syPreAssembledPackingListItem.getSupplierCode());
|
|
|
+ s1.setYmoney(syPreAssembledPackingListItem.getYmoney());//佣金
|
|
|
+ s1.setElementsId(syPackingListTailoring.getElementsId());//申报要素id
|
|
|
+ syPackingListTailoring.setTotalPrice(syPackingListTailoring.getTotalPrice().add(s1.getTotalPrice()));//总价
|
|
|
+ syPackingListTailoring.setCreateTime(null);
|
|
|
+ if(s1.getTotal().doubleValue()==0){
|
|
|
+ s1.setTotal(null);
|
|
|
+ }
|
|
|
+ syPackingListTailoringItemMapper.insert(s1);//新增子表数据
|
|
|
}
|
|
|
- s1.setTotalPrice(s1.getTotal().multiply(s1.getUnitPrice()));//计算总价
|
|
|
- s1.setSyOrderDataId(syPreAssembledPackingListItem.getSyOrderDataId());//订单数据子表id
|
|
|
- s1.setSyOrderDataItemId(syPreAssembledPackingListItem.getSyOrderDataItemId());//订单数据子表id
|
|
|
- s1.setSalesman(syPreAssembledPackingListItem.getSalesman());//业务员
|
|
|
- s1.setSalesDepartment(syPreAssembledPackingListItem.getSalesDepartment());//业务部门
|
|
|
- s1.setSpurOrSubOrder(syPreAssembledPackingListItem.getSpurOrSubOrder());//采购委外订单号
|
|
|
- s1.setMasterMetering(syPreAssembledPackingListItem.getMasterMetering());//计量单位
|
|
|
- s1.setFactoryUnitPrice(syPreAssembledPackingListItem.getFactoryUnitPrice());//工厂单价
|
|
|
- s1.setInventoryCcode(syPreAssembledPackingListItem.getInventoryCcode());//物料分类
|
|
|
- s1.setWithCode(syPreAssembledPackingListItem.getWithCode());//配码规则
|
|
|
- s1.setOmpoAccount(syPreAssembledPackingListItem.getOmpoAccount());//采购委外账套号
|
|
|
- s1.setPackId(syPreAssembledPackingListItem.getPackId());
|
|
|
- s1.setSupplier(syPreAssembledPackingListItem.getSupplier());
|
|
|
- s1.setSupplierCode(syPreAssembledPackingListItem.getSupplierCode());
|
|
|
- s1.setYmoney(syPreAssembledPackingListItem.getYmoney());//佣金
|
|
|
- s1.setElementsId(syPackingListTailoring.getElementsId());//申报要素id
|
|
|
- s1.setOmpoId(syPreAssembledPackingListItem.getOmpoId());//采购委外主表id
|
|
|
- s1.setOmpoIdItem(syPreAssembledPackingListItem.getOmpoIdItem());//采购委外子表id
|
|
|
- syPackingListTailoring.setTotalPrice(syPackingListTailoring.getTotalPrice().add(s1.getTotalPrice()));//总价
|
|
|
- syPackingListTailoring.setCreateTime(null);
|
|
|
- syPackingListTailoringItemMapper.insert(s1);//新增子表数据
|
|
|
}
|
|
|
syPackingListTailoringMapper.updateById(syPackingListTailoring);
|
|
|
return syPackingListTailoring;
|