|
@@ -634,22 +634,29 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
|
|
|
//遇到多个副条码的情况,只加第一个
|
|
|
otherMaterialMap.putIfAbsent(me.getMaterialId(), me);
|
|
|
}
|
|
|
- String nameStr = "名称*,规格,型号,颜色,品牌,类别,基础重量(kg),基本单位*,副单位,比例,多属性," +
|
|
|
- "状态*,序列号,系统sku,商品条码,默认采购价,默认销售价,自定义1,自定义2,自定义3,备注";
|
|
|
- List<String> nameList = StringUtil.strToStringList(nameStr);
|
|
|
+ //仓库1名
|
|
|
+ String depotName1 = "仓库1";
|
|
|
+ //仓库2名
|
|
|
+ String depotName2 = "仓库2";
|
|
|
//仓库列表
|
|
|
List<Depot> depotList = depotService.getAllList();
|
|
|
-// if (nameList != null) {
|
|
|
-// for(Depot depot: depotList) {
|
|
|
-// nameList.add(depot.getName());
|
|
|
-// }
|
|
|
-// }
|
|
|
+ depotName1 = depotList.get(0).getName();
|
|
|
+ if (depotList.size() > 1){
|
|
|
+ depotName2 = depotList.get(1).getName();
|
|
|
+ }
|
|
|
+// String nameStr = "名称*,规格,型号,颜色,品牌,类别,基础重量(kg),基本单位*,副单位,比例,多属性," +
|
|
|
+// "状态*,序列号,系统sku,商品条码,默认采购价,默认销售价,自定义1,自定义2,自定义3,备注";
|
|
|
+ String nameStr = "SPU编码(可留空),SKU编码(可留空),商品名称(SPU级)*,品牌,类目*,商品效期," + depotName1 + "*," + depotName2 + ",规格*,默认采购价*,默认销售价*," +
|
|
|
+ "基础单位*,是否启用*,UPC1*,UPC2,UPC3,UPC4,UPC5,单位1,单位1换算关系,单位2,单位2换算关系,单位3,单位3换算关系,单位4,单位4换算关系,单位5,单位5换算关系";
|
|
|
+ List<String> nameList = StringUtil.strToStringList(nameStr);
|
|
|
//期初库存缓存
|
|
|
List<MaterialInitialStock> misList = materialInitialStockMapperEx.getListExceptZero();
|
|
|
- Map<String, BigDecimal> misMap = new HashMap<>();
|
|
|
+ Map<String, String> misMap = new HashMap<>();
|
|
|
if (misList != null) {
|
|
|
for (MaterialInitialStock mis : misList) {
|
|
|
- misMap.put(mis.getMaterialId() + "_" + mis.getDepotId(), mis.getNumber());
|
|
|
+ String str = mis.getNumber().toString();
|
|
|
+ str += mis.getPosition() == null ? "" : "," + mis.getPosition();
|
|
|
+ misMap.put(mis.getMaterialId() + "_" + mis.getDepotId(), str);
|
|
|
}
|
|
|
}
|
|
|
String[] names = StringUtil.listToStringArray(nameList);
|
|
@@ -658,34 +665,42 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
|
|
|
if (null != dataList) {
|
|
|
for (MaterialVo4Unit m : dataList) {
|
|
|
String[] objs = new String[names.length];
|
|
|
- objs[0] = m.getName();
|
|
|
- objs[1] = m.getStandard();
|
|
|
- objs[2] = m.getModel();
|
|
|
- objs[3] = m.getColor();
|
|
|
- objs[4] = m.getBrand();
|
|
|
- objs[5] = m.getCategoryName();
|
|
|
- objs[6] = m.getWeight() == null ? "" : m.getWeight().setScale(3, BigDecimal.ROUND_HALF_UP).toString();
|
|
|
- objs[7] = m.getCommodityUnit();
|
|
|
- objs[8] = otherMaterialMap.get(m.getId()) == null ? "" : otherMaterialMap.get(m.getId()).getCommodityUnit();
|
|
|
- objs[9] = m.getRatio() == null ? "" : m.getRatio().toString();
|
|
|
- objs[10] = m.getSku();
|
|
|
- objs[11] = m.getEnabled() ? "1" : "0";
|
|
|
- objs[12] = m.getEnableSerialNumber();
|
|
|
- objs[13] = m.getSystemSpu();
|
|
|
- objs[14] = m.getBarCode();
|
|
|
- objs[15] = m.getDefaultPurchaseDecimal() == null ? "" : m.getDefaultPurchaseDecimal().toString();
|
|
|
- objs[16] = m.getDefaultWholesaleDecimal() == null ? "" : m.getDefaultWholesaleDecimal().toString();
|
|
|
- objs[17] = m.getOtherField1();
|
|
|
- objs[18] = m.getOtherField2();
|
|
|
- objs[19] = m.getOtherField3();
|
|
|
- objs[20] = m.getRemark();
|
|
|
- //仓库期初库存
|
|
|
- int i = 21;
|
|
|
-// for(Depot depot: depotList) {
|
|
|
-// BigDecimal number = misMap.get(m.getId() + "_" + depot.getId());
|
|
|
-// objs[i] = number == null ? "0" : number.setScale(2, BigDecimal.ROUND_HALF_UP).toString();
|
|
|
-// i++;
|
|
|
-// }
|
|
|
+ objs[0] = m.getSystemSpu();
|
|
|
+ objs[1] = m.getSku();
|
|
|
+ objs[2] = m.getName();
|
|
|
+ objs[3] = m.getBrand();
|
|
|
+ objs[4] = m.getCategoryName();
|
|
|
+ objs[5] = m.getExpiryNum().toString();
|
|
|
+ //仓库
|
|
|
+ objs[6] = misMap.get(m.getId() + "_" + depotList.get(0).getId());
|
|
|
+ objs[7] = depotList.get(1) == null ? "" : misMap.get(m.getId() + "_" + depotList.get(1).getId());
|
|
|
+ objs[8] = m.getStandard();
|
|
|
+ objs[9] = m.getDefaultPurchaseDecimal().toString();
|
|
|
+ objs[10] = m.getDefaultWholesaleDecimal().toString();
|
|
|
+ objs[11] = m.getCommodityUnit();
|
|
|
+ objs[12] = m.getEnabled() ? "是" : "否";
|
|
|
+ //upc
|
|
|
+ List<MaterialUpc> upcList = materialUpcService.list(new LambdaQueryWrapperX<MaterialUpc>()
|
|
|
+ .eq(MaterialUpc::getMaterialExtendId,m.getMeId())
|
|
|
+ .eq(MaterialUpc::getDeleteFlag,false));
|
|
|
+ for (int i = 0; i <= 5; i++) {
|
|
|
+ if (i == upcList.size()){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ objs[13 + i] = upcList.get(i).getUpc();
|
|
|
+ }
|
|
|
+ //单位
|
|
|
+ List<MaterialUnit> unitList = materialUnitService.list(new LambdaQueryWrapperX<MaterialUnit>()
|
|
|
+ .eq(MaterialUnit::getMaterialExtendId,m.getMeId())
|
|
|
+ .eq(MaterialUnit::getDeleteFlag,false));
|
|
|
+ for (int i = 1; i < 5; i++) {
|
|
|
+ if (i == unitList.size()){
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ int index = i * 2;
|
|
|
+ objs[17 - 1 + index ] = unitList.get(i).getName();
|
|
|
+ objs[17 + index ] = unitList.get(i).getRatio().toString();
|
|
|
+ }
|
|
|
objects.add(objs);
|
|
|
}
|
|
|
}
|
|
@@ -1263,18 +1278,19 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
|
|
|
materialExtend.setCreateSerial(user.getLoginName());
|
|
|
materialExtend.setUpdateSerial(user.getLoginName());
|
|
|
Long meId = 0L;
|
|
|
- if(StringUtil.isNotEmpty(materialExtend.getSku())){
|
|
|
- //含sku的商品,特殊逻辑
|
|
|
- meId = materialExtendService.selectIdByMaterialIdAndBarCode(mId, materialExtend.getBarCode());
|
|
|
- List<MaterialExtend> meList = materialExtendService.getListByMaterialIdAndDefaultFlagAndBarCode(mId, "1", materialExtend.getBarCode());
|
|
|
- if(meList.size() == 0) {
|
|
|
- materialExtend.setDefaultFlag("1");
|
|
|
- } else {
|
|
|
- materialExtend.setDefaultFlag("0");
|
|
|
- }
|
|
|
- } else {
|
|
|
- meId = materialExtendService.selectIdByMaterialIdAndDefaultFlag(mId, defaultFlag);
|
|
|
- }
|
|
|
+// if(StringUtil.isNotEmpty(materialExtend.getSku())){
|
|
|
+// //含sku的商品,特殊逻辑
|
|
|
+// meId = materialExtendService.selectIdByMaterialIdAndBarCode(mId, materialExtend.getBarCode());
|
|
|
+// List<MaterialExtend> meList = materialExtendService.getListByMaterialIdAndDefaultFlagAndBarCode(mId, "1", materialExtend.getBarCode());
|
|
|
+// if(meList.size() == 0) {
|
|
|
+// materialExtend.setDefaultFlag("1");
|
|
|
+// } else {
|
|
|
+// materialExtend.setDefaultFlag("0");
|
|
|
+// }
|
|
|
+// } else {
|
|
|
+// meId = materialExtendService.selectIdByMaterialIdAndDefaultFlag(mId, defaultFlag);
|
|
|
+// }
|
|
|
+ meId = materialExtendService.selectIdByMaterialIdAndDefaultFlag(mId, defaultFlag);
|
|
|
if(meId==0L){
|
|
|
materialExtendMapper.insertSelective(materialExtend);
|
|
|
} else {
|
|
@@ -2263,79 +2279,79 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
|
|
|
/**
|
|
|
* 解析excel表格数据为商品对象
|
|
|
*/
|
|
|
- private List<Material> parseMapByExcelData(List<MaterialWithInitStock> mList){
|
|
|
- List<Material> materials = new ArrayList<>();
|
|
|
- Map<String,Material> materialMap = new HashMap<>();
|
|
|
- for (MaterialWithInitStock m : mList) {
|
|
|
- String materialSku = "";
|
|
|
- JSONObject materialExObj = m.getMaterialExObj();
|
|
|
- JSONObject basicObj = materialExObj.getJSONObject("basic");
|
|
|
- if(materialExObj!=null && materialExObj.get("basic")!=null) {
|
|
|
- if(basicObj!=null && materialExObj.get("sku")!=null) {
|
|
|
- materialSku = basicObj.getString("sku");
|
|
|
- }
|
|
|
- }
|
|
|
- //名称,型号,品牌,规格,颜色,单位一样视为同一商品
|
|
|
- String str = m.getName()
|
|
|
-// +"-" + m.getModel()
|
|
|
-// + "-" + m.getStandard()
|
|
|
- + "-" + m.getBrand()
|
|
|
-// + "-" + m.getColor()
|
|
|
- + "-" + m.getUnit();
|
|
|
- if (materialMap.get(str) == null) {
|
|
|
- //商品主表不存在,创建商品主表
|
|
|
- Material material = m;
|
|
|
-// //名称
|
|
|
-// material.setName(m.getName());
|
|
|
-// //型号
|
|
|
-// material.setModel(m.getModel());
|
|
|
-// //规格
|
|
|
-// material.setStandard(m.getStandard());
|
|
|
-// //品牌
|
|
|
-// material.setBrand(m.getBrand());
|
|
|
-// //助记码
|
|
|
-// material.setMnemonic(m.getMnemonic());
|
|
|
-// //颜色
|
|
|
-// material.setColor(m.getColor());
|
|
|
-// //商品类别
|
|
|
-// material.setCategoryId(m.getCategoryId());
|
|
|
-// //单位-单个
|
|
|
-// material.setUnit(m.getUnit());
|
|
|
-// //计量单位Id
|
|
|
-// material.setUnitId(m.getUnitId());
|
|
|
-// //备注
|
|
|
-// material.setRemark(m.getRemark());
|
|
|
-// //基础重量
|
|
|
-// material.setWeight(m.getWeight());
|
|
|
-// //启用 0-禁用 1-启用
|
|
|
-// material.setEnabled(m.getEnabled());
|
|
|
-// //自定义1
|
|
|
-// material.setOtherField1(m.getOtherField1());
|
|
|
-// //自定义2
|
|
|
-// material.setOtherField2(m.getOtherField2());
|
|
|
-// //自定义3
|
|
|
-// material.setOtherField3(m.getOtherField3());
|
|
|
-// //是否开启序列号
|
|
|
-// material.setEnableSerialNumber(m.getEnableSerialNumber());
|
|
|
-// //系统sku
|
|
|
-// material.setSystemSku(m.getSystemSku());
|
|
|
- List<MaterialExtend> list = new ArrayList<>();
|
|
|
- material.setList(list);
|
|
|
- material.setDepotMap(m.getDepotMap());
|
|
|
- materialMap.put(str,material);
|
|
|
- }
|
|
|
- //添加子表信息
|
|
|
- MaterialExtend materialExtend = new MaterialExtend();
|
|
|
- //商品单位
|
|
|
- materialExtend.setCommodityUnit(basicObj.getString("commodityUnit"));
|
|
|
- //商品属性
|
|
|
- materialExtend.setSku(materialSku);
|
|
|
- //商品条码
|
|
|
- materialExtend.setBarCode(basicObj.getString("barCode"));
|
|
|
-
|
|
|
- materialMap.get(str).getList().add(materialExtend);
|
|
|
- }
|
|
|
- materialMap.values().forEach(v -> materials.add(v));
|
|
|
- return materials;
|
|
|
- }
|
|
|
+// private List<Material> parseMapByExcelData(List<MaterialWithInitStock> mList){
|
|
|
+// List<Material> materials = new ArrayList<>();
|
|
|
+// Map<String,Material> materialMap = new HashMap<>();
|
|
|
+// for (MaterialWithInitStock m : mList) {
|
|
|
+// String materialSku = "";
|
|
|
+// JSONObject materialExObj = m.getMaterialExObj();
|
|
|
+// JSONObject basicObj = materialExObj.getJSONObject("basic");
|
|
|
+// if(materialExObj!=null && materialExObj.get("basic")!=null) {
|
|
|
+// if(basicObj!=null && materialExObj.get("sku")!=null) {
|
|
|
+// materialSku = basicObj.getString("sku");
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //名称,型号,品牌,规格,颜色,单位一样视为同一商品
|
|
|
+// String str = m.getName()
|
|
|
+//// +"-" + m.getModel()
|
|
|
+//// + "-" + m.getStandard()
|
|
|
+// + "-" + m.getBrand()
|
|
|
+//// + "-" + m.getColor()
|
|
|
+// + "-" + m.getUnit();
|
|
|
+// if (materialMap.get(str) == null) {
|
|
|
+// //商品主表不存在,创建商品主表
|
|
|
+// Material material = m;
|
|
|
+//// //名称
|
|
|
+//// material.setName(m.getName());
|
|
|
+//// //型号
|
|
|
+//// material.setModel(m.getModel());
|
|
|
+//// //规格
|
|
|
+//// material.setStandard(m.getStandard());
|
|
|
+//// //品牌
|
|
|
+//// material.setBrand(m.getBrand());
|
|
|
+//// //助记码
|
|
|
+//// material.setMnemonic(m.getMnemonic());
|
|
|
+//// //颜色
|
|
|
+//// material.setColor(m.getColor());
|
|
|
+//// //商品类别
|
|
|
+//// material.setCategoryId(m.getCategoryId());
|
|
|
+//// //单位-单个
|
|
|
+//// material.setUnit(m.getUnit());
|
|
|
+//// //计量单位Id
|
|
|
+//// material.setUnitId(m.getUnitId());
|
|
|
+//// //备注
|
|
|
+//// material.setRemark(m.getRemark());
|
|
|
+//// //基础重量
|
|
|
+//// material.setWeight(m.getWeight());
|
|
|
+//// //启用 0-禁用 1-启用
|
|
|
+//// material.setEnabled(m.getEnabled());
|
|
|
+//// //自定义1
|
|
|
+//// material.setOtherField1(m.getOtherField1());
|
|
|
+//// //自定义2
|
|
|
+//// material.setOtherField2(m.getOtherField2());
|
|
|
+//// //自定义3
|
|
|
+//// material.setOtherField3(m.getOtherField3());
|
|
|
+//// //是否开启序列号
|
|
|
+//// material.setEnableSerialNumber(m.getEnableSerialNumber());
|
|
|
+//// //系统sku
|
|
|
+//// material.setSystemSku(m.getSystemSku());
|
|
|
+// List<MaterialExtend> list = new ArrayList<>();
|
|
|
+// material.setList(list);
|
|
|
+// material.setDepotMap(m.getDepotMap());
|
|
|
+// materialMap.put(str,material);
|
|
|
+// }
|
|
|
+// //添加子表信息
|
|
|
+// MaterialExtend materialExtend = new MaterialExtend();
|
|
|
+// //商品单位
|
|
|
+// materialExtend.setCommodityUnit(basicObj.getString("commodityUnit"));
|
|
|
+// //商品属性
|
|
|
+// materialExtend.setSku(materialSku);
|
|
|
+// //商品条码
|
|
|
+// materialExtend.setBarCode(basicObj.getString("barCode"));
|
|
|
+//
|
|
|
+// materialMap.get(str).getList().add(materialExtend);
|
|
|
+// }
|
|
|
+// materialMap.values().forEach(v -> materials.add(v));
|
|
|
+// return materials;
|
|
|
+// }
|
|
|
}
|