1
0
فهرست منبع

产品备案信息修改

hj123456 3 سال پیش
والد
کامیت
7472806543
21فایلهای تغییر یافته به همراه666 افزوده شده و 162 حذف شده
  1. 13 5
      kmall-admin/src/main/java/com/kmall/admin/controller/GoodsProductController.java
  2. 3 1
      kmall-admin/src/main/java/com/kmall/admin/dao/GoodsProductDao.java
  3. 4 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysCusNationCodeDao.java
  4. 4 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SysCusUnitCodeDao.java
  5. 60 0
      kmall-admin/src/main/java/com/kmall/admin/dto/GoodsProductDto.java
  6. 1 1
      kmall-admin/src/main/java/com/kmall/admin/service/GoodsProductService.java
  7. 6 0
      kmall-admin/src/main/java/com/kmall/admin/service/SysCusNationCodeService.java
  8. 6 0
      kmall-admin/src/main/java/com/kmall/admin/service/SysCusUnitCodeService.java
  9. 209 17
      kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsProductServiceImpl.java
  10. 15 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/SysCusNationCodeServiceImpl.java
  11. 15 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/SysCusUnitCodeServiceImpl.java
  12. 19 19
      kmall-admin/src/main/resources/XmlTemplate/GoodsProductDtoList.xml
  13. 246 103
      kmall-admin/src/main/resources/mybatis/mapper/GoodsProductDao.xml
  14. 17 0
      kmall-admin/src/main/resources/mybatis/mapper/SysCusNationCodeDao.xml
  15. 15 0
      kmall-admin/src/main/resources/mybatis/mapper/SysCusUnitCodeDao.xml
  16. 4 4
      kmall-admin/src/main/webapp/WEB-INF/page/shop/goodsproduct.html
  17. 10 10
      kmall-admin/src/main/webapp/js/shop/goodsproduct.js
  18. BIN
      kmall-admin/src/main/webapp/statics/file/goods_product_import_yyyy_mm_dd_v1.0.0.xlsx
  19. 10 0
      kmall-manager/src/main/java/com/kmall/manager/manager/merch/OmsMerchProperties.java
  20. 8 2
      kmall-manager/src/main/resources/conf/oms-merch.properties
  21. 1 0
      kmall-manager/src/main/resources/spring/spring-oms-merch.xml

+ 13 - 5
kmall-admin/src/main/java/com/kmall/admin/controller/GoodsProductController.java

@@ -182,8 +182,13 @@ public class GoodsProductController {
                 builder.put("declCurrencyCode", "申报币种代码");
                 builder.put("netWeight", "净重(kg)");
                 builder.put("declPrice", "申报价格(RMB)");
-                builder.put("legalUnit1Qty", "第一法定单位数量");
-                builder.put("legalUnit2Qty", "第二法定单位数量");
+                builder.put("supplierName", "供应商企业名称");
+                builder.put("supplierCntCode", "供应商国别名称");
+                builder.put("prodCompName", "生产企业名称");
+                builder.put("prodCompCntCode", "生产国别名称");
+                builder.put("emsClassCode", "账册分类代码");
+//                builder.put("legalUnit1Qty", "第一法定单位数量");
+//                builder.put("legalUnit2Qty", "第二法定单位数量");
                 R r = ValidatorUtil.isEmpty(builder.build(), valideDate);
                 if (Integer.valueOf(r.get("code").toString()) != 0) {
                     throw new RRException(r.get("msg").toString());
@@ -194,12 +199,15 @@ public class GoodsProductController {
             }
         }
         try {
-            goodsProductService.uploadExcel(goodsProductDtoList);
+            int i = goodsProductService.uploadExcel(goodsProductDtoList);
+            if (i > 0) {
+                return R.ok("成功导入" + i + "条产品信息成功!请发送OMS系统进行审核!");
+            }
         } catch (Exception e) {
+            e.printStackTrace();
             return R.error(e.getMessage());
         }
-        //上传文件
-        return R.ok();
+        return R.error("导入失败!");
     }
 
     @RequestMapping("/generalGoodsImgUploadByZip")

+ 3 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/GoodsProductDao.java

@@ -18,7 +18,7 @@ import java.util.Map;
 public interface GoodsProductDao extends BaseDao<GoodsProductEntity> {
 
     GoodsProductEntity selectByParams(@Param("sku") String sku,@Param("merchSn") String merchSn,
-                                      @Param("thirdMerchSn") String thirdMerchSn);
+                                      @Param("thirdMerchSn") String thirdMerchSn,@Param("prodBarcode") String prodBarcode);
 
     List<GoodsProductEntity> selectByMallGoodsProductSns(@Param("mallGoodsProductSns") Integer[] mallGoodsProductSns);
 
@@ -27,4 +27,6 @@ public interface GoodsProductDao extends BaseDao<GoodsProductEntity> {
     GoodsProductEntity selectByBarcode(String barCode);
 
     int updateStatusBySkuBatch(@Param("list") List<String> skuList, @Param("map") Map<String, Object> map);
+
+    int updateBatch(List<GoodsProductEntity> list);
 }

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysCusNationCodeDao.java

@@ -4,6 +4,8 @@ import com.kmall.admin.entity.SysCusNationCodeEntity;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 国别地区代码Dao
  *
@@ -16,4 +18,6 @@ public interface SysCusNationCodeDao extends BaseDao<SysCusNationCodeEntity> {
     SysCusNationCodeEntity queryObjectByName(@Param("nationName")String nationName);
 
     SysCusNationCodeEntity queryObjectByCode(@Param("code")String code);
+
+    List<SysCusNationCodeEntity> queryAll();
 }

+ 4 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SysCusUnitCodeDao.java

@@ -4,6 +4,8 @@ import com.kmall.admin.entity.SysCusUnitCodeEntity;
 import com.kmall.manager.dao.BaseDao;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 /**
  * 计量单位代码Dao
  *
@@ -16,4 +18,6 @@ public interface SysCusUnitCodeDao extends BaseDao<SysCusUnitCodeEntity> {
     SysCusUnitCodeEntity queryObjectByName(@Param("unitName")String unitName);
 
     SysCusUnitCodeEntity queryObjectByCode(@Param("code")String code);
+
+    List<SysCusUnitCodeEntity> queryAll();
 }

+ 60 - 0
kmall-admin/src/main/java/com/kmall/admin/dto/GoodsProductDto.java

@@ -149,6 +149,18 @@ public class GoodsProductDto implements Serializable {
 
     private String operateFlag; // 1、新增 2、修改
 
+    private String upImg;
+
+    private String downImg;
+
+    private String leftImg;
+
+    private String rightImg;
+
+    private String beforeImg;
+
+    private String afterImg;
+
     public String getBatchNo() {
         return batchNo;
     }
@@ -612,4 +624,52 @@ public class GoodsProductDto implements Serializable {
     public void setMallGoodsProductSn(String mallGoodsProductSn) {
         this.mallGoodsProductSn = mallGoodsProductSn;
     }
+
+    public String getUpImg() {
+        return upImg;
+    }
+
+    public void setUpImg(String upImg) {
+        this.upImg = upImg;
+    }
+
+    public String getDownImg() {
+        return downImg;
+    }
+
+    public void setDownImg(String downImg) {
+        this.downImg = downImg;
+    }
+
+    public String getLeftImg() {
+        return leftImg;
+    }
+
+    public void setLeftImg(String leftImg) {
+        this.leftImg = leftImg;
+    }
+
+    public String getRightImg() {
+        return rightImg;
+    }
+
+    public void setRightImg(String rightImg) {
+        this.rightImg = rightImg;
+    }
+
+    public String getBeforeImg() {
+        return beforeImg;
+    }
+
+    public void setBeforeImg(String beforeImg) {
+        this.beforeImg = beforeImg;
+    }
+
+    public String getAfterImg() {
+        return afterImg;
+    }
+
+    public void setAfterImg(String afterImg) {
+        this.afterImg = afterImg;
+    }
 }

+ 1 - 1
kmall-admin/src/main/java/com/kmall/admin/service/GoodsProductService.java

@@ -73,7 +73,7 @@ public interface GoodsProductService {
      */
     int deleteBatch(Integer[]mallGoodsProductSns);
 
-    void uploadExcel(List<GoodsProductDto> goodsProductDtoList);
+    int uploadExcel(List<GoodsProductDto> goodsProductDtoList);
 
     String sendSelectProduct(Integer[] mallGoodsProductSns,String operateFlag);
 

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/service/SysCusNationCodeService.java

@@ -69,4 +69,10 @@ public interface SysCusNationCodeService {
      * @return 删除条数
      */
     int deleteBatch(String[] sns);
+
+    SysCusNationCodeEntity getCusNationByName(String name);
+
+    SysCusNationCodeEntity getCusNationByCode(String code);
+
+    List<SysCusNationCodeEntity> findCusNationByAll();
 }

+ 6 - 0
kmall-admin/src/main/java/com/kmall/admin/service/SysCusUnitCodeService.java

@@ -69,4 +69,10 @@ public interface SysCusUnitCodeService {
      * @return 删除条数
      */
     int deleteBatch(String[] sns);
+
+    SysCusUnitCodeEntity getUnitCode(String code);
+
+    SysCusUnitCodeEntity getUnitName(String name);
+
+    List<SysCusUnitCodeEntity> getAll();
 }

+ 209 - 17
kmall-admin/src/main/java/com/kmall/admin/service/impl/GoodsProductServiceImpl.java

@@ -3,16 +3,22 @@ package com.kmall.admin.service.impl;
 import com.alibaba.fastjson.JSON;
 import com.google.common.base.Joiner;
 import com.google.gson.Gson;
+import com.google.gson.internal.LinkedTreeMap;
 import com.kmall.admin.dao.GoodsProductDao;
 import com.kmall.admin.dto.GoodsProductDto;
 import com.kmall.admin.dto.PdProductDtoInfo;
 import com.kmall.admin.entity.GoodsProductEntity;
+import com.kmall.admin.entity.SysCusNationCodeEntity;
+import com.kmall.admin.entity.SysCusUnitCodeEntity;
 import com.kmall.admin.service.GoodsProductService;
 import com.kmall.admin.service.GoodsService;
+import com.kmall.admin.service.SysCusNationCodeService;
+import com.kmall.admin.service.SysCusUnitCodeService;
 import com.kmall.admin.utils.ShiroUtils;
 import com.kmall.admin.utils.data.response.ResponseMessage;
 import com.kmall.admin.utils.oms.OmsSign;
 import com.kmall.common.constant.Dict;
+import com.kmall.common.utils.DateUtils;
 import com.kmall.common.utils.R;
 import com.kmall.common.utils.RRException;
 import com.kmall.manager.manager.merch.OmsMerchProperties;
@@ -50,6 +56,11 @@ public class GoodsProductServiceImpl implements GoodsProductService {
     @Autowired
     private OmsMerchProperties omsMerchProperties;
 
+    @Autowired
+    private SysCusNationCodeService sysCusNationCodeService;
+    @Autowired
+    private SysCusUnitCodeService sysCusUnitCodeService;
+
     @Override
     public GoodsProductEntity queryObject(Integer mallGoodsProductSn) {
         return goodsProductDao.queryObject(mallGoodsProductSn);
@@ -123,9 +134,13 @@ public class GoodsProductServiceImpl implements GoodsProductService {
 
     @Override
     @Transactional
-    public void uploadExcel(List<GoodsProductDto> goodsProductDtoList) {
+    public int uploadExcel(List<GoodsProductDto> goodsProductDtoList) {
+        //获取 原产国信息
+        List<SysCusNationCodeEntity> cusNationCodeEntityList = sysCusNationCodeService.findCusNationByAll();
+        // 获取单位代码
+        List<SysCusUnitCodeEntity> cusUnitCodeEntityList = sysCusUnitCodeService.getAll();
         if (Objects.nonNull(goodsProductDtoList) && goodsProductDtoList.size() > 0) {
-            int count = 1;
+            int count = 0;
             for (GoodsProductDto goodsProductDto : goodsProductDtoList) {
                 if (StringUtils.isEmpty(goodsProductDto.getMerchSn())) {
                     throw new RRException("第" + count + "行的商户编号为空!");
@@ -141,6 +156,9 @@ public class GoodsProductServiceImpl implements GoodsProductService {
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getProdName())) {
                     throw new RRException("第" + count + "行的商品中文名为空!");
+                }else {
+                    String prodName = goodsProductDto.getProdName();
+                    goodsProductDto.setProdRecordName(prodName);
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getProdEname())) {
                     throw new RRException("第" + count + "行的商品英文名为空!");
@@ -152,7 +170,7 @@ public class GoodsProductServiceImpl implements GoodsProductService {
                     throw new RRException("第" + count + "行的品牌中文或品牌英文必填其中之一!");
                 }
                 if (!StringUtils.isEmpty(goodsProductDto.getProdBrandCn()) && !StringUtils.isEmpty(goodsProductDto.getProdBrandEn())) {
-                    goodsProductDto.setProdBrand(goodsProductDto.getProdBrandCn() + "#&#" + goodsProductDto.getProdBrandEn());
+                    goodsProductDto.setProdBrand(goodsProductDto.getProdBrandCn() + goodsProductDto.getProdBrandEn());
                 } else if (!StringUtils.isEmpty(goodsProductDto.getProdBrandCn()) && StringUtils.isEmpty(goodsProductDto.getProdBrandEn())) {
                     goodsProductDto.setProdBrand(goodsProductDto.getProdBrandCn());
                 } else {
@@ -160,15 +178,40 @@ public class GoodsProductServiceImpl implements GoodsProductService {
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getUnitCode())) {
                     throw new RRException("第" + count + "行的计量单位为空!");
+                }else {
+                    String unitCode = goodsProductDto.getUnitCode();
+                    for (SysCusUnitCodeEntity sysCusUnitCodeEntity : cusUnitCodeEntityList) {
+                        String code = sysCusUnitCodeEntity.getCode();
+                        String name = sysCusUnitCodeEntity.getName();
+                        if (unitCode.equals(name)) {
+                            goodsProductDto.setUnitCode(code);
+                        }
+                    }
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getCusGoodsCode())) {
                     throw new RRException("第" + count + "行的海关商品编码为空!");
+                }else {
+                    String cusGoodsCode = goodsProductDto.getCusGoodsCode();
+                    cusGoodsCode = new BigDecimal(cusGoodsCode).toPlainString();
+                    goodsProductDto.setCusGoodsCode(cusGoodsCode);
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getCusDeclEle())) {
                     throw new RRException("第" + count + "行的申报要素为空!");
+                }else {
+                    String trim = goodsProductDto.getCusDeclEle().trim();
+                    goodsProductDto.setCusDeclEle(trim);
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getOriCntCode())) {
                     throw new RRException("第" + count + "行的原产国代码为空!");
+                }else {
+                    String oriCntCode = goodsProductDto.getOriCntCode();
+                    for (SysCusNationCodeEntity sysCusNationCodeEntity : cusNationCodeEntityList) {
+                        String code = sysCusNationCodeEntity.getCode();
+                        String name = sysCusNationCodeEntity.getName();
+                        if (oriCntCode.equals(name)) {
+                            goodsProductDto.setOriCntCode(code);
+                        }
+                    }
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getCiqProdModel())) {
                     throw new RRException("第" + count + "行的规格型号为空!");
@@ -185,20 +228,55 @@ public class GoodsProductServiceImpl implements GoodsProductService {
                 if (StringUtils.isEmpty(goodsProductDto.getDeclPrice())) {
                     throw new RRException("第" + count + "行的申报价格为空!");
                 }
-                if (StringUtils.isEmpty(goodsProductDto.getLegalUnit1Qty())) {
+                /*if (StringUtils.isEmpty(goodsProductDto.getLegalUnit1Qty())) {
                     throw new RRException("第" + count + "行的第一法定单位数量为空!");
                 }
                 if (StringUtils.isEmpty(goodsProductDto.getLegalUnit2Qty())) {
                     throw new RRException("第" + count + "行的第二法定单位数量为空!");
+                }*/
+                if (StringUtils.isEmpty(goodsProductDto.getSupplierName())){
+                    throw new RRException("第" + count + "行的供应商企业名称为空!");
+                }
+                if (StringUtils.isEmpty(goodsProductDto.getSupplierCntCode())){
+                    throw new RRException("第" + count + "行的供应商国别名称为空!");
+                }else {
+                    String supplierCntCode = goodsProductDto.getSupplierCntCode();
+                    for (SysCusNationCodeEntity sysCusNationCodeEntity : cusNationCodeEntityList) {
+                        String code = sysCusNationCodeEntity.getCode();
+                        String name = sysCusNationCodeEntity.getName();
+                        if (supplierCntCode.equals(name)) {
+                            goodsProductDto.setSupplierCntCode(code);
+                        }
+                    }
                 }
-                GoodsProductEntity queryProduct = goodsProductDao.selectByParams(goodsProductDto.getSku(), goodsProductDto.getMerchSn(), goodsProductDto.getThirdMerchSn());
+                if (StringUtils.isEmpty(goodsProductDto.getProdCompName())){
+                    throw new RRException("第" + count + "行的生产企业名称为空!");
+                }
+                if (StringUtils.isEmpty(goodsProductDto.getProdCompCntCode())){
+                    throw new RRException("第" + count + "行的生产国别名称为空!");
+                }else {
+                    String prodCompCntCode = goodsProductDto.getProdCompCntCode();
+                    for (SysCusNationCodeEntity sysCusNationCodeEntity : cusNationCodeEntityList) {
+                        String code = sysCusNationCodeEntity.getCode();
+                        String name = sysCusNationCodeEntity.getName();
+                        if (prodCompCntCode.equals(name)) {
+                            goodsProductDto.setProdCompCntCode(code);
+                        }
+                    }
+                }
+                GoodsProductEntity queryProduct = goodsProductDao.selectByParams(goodsProductDto.getSku(), goodsProductDto.getMerchSn(), goodsProductDto.getThirdMerchSn(),goodsProductDto.getProdBarcode());
                 if (Objects.nonNull(queryProduct)) {
-                    throw new RRException("该sku:" + queryProduct.getSku() + "已存在!");
+                    throw new RRException("该sku:" + queryProduct.getSku() + " 商品条形码:"+goodsProductDto.getProdBarcode()+"已存在!");
                 }
+
+                count++;
+            }
+            List<GoodsProductEntity> insertList = new ArrayList<>();
+            for (GoodsProductDto goodsProductDto : goodsProductDtoList) {
                 GoodsProductEntity goodsProductEntity = new GoodsProductEntity();
                 BeanUtils.copyProperties(goodsProductDto, goodsProductEntity);
-                goodsProductEntity.setLegalUnit1Qty(new BigDecimal(goodsProductDto.getLegalUnit1Qty()));
-                goodsProductEntity.setLegalUnit2Qty(new BigDecimal(goodsProductDto.getLegalUnit2Qty()));
+//                goodsProductEntity.setLegalUnit1Qty(new BigDecimal(goodsProductDto.getLegalUnit1Qty()));
+//                goodsProductEntity.setLegalUnit2Qty(new BigDecimal(goodsProductDto.getLegalUnit2Qty()));
                 goodsProductEntity.setNetWeight(new BigDecimal(goodsProductDto.getNetWeight()));
                 if (!StringUtils.isEmpty(goodsProductDto.getGrossWeight())) {
                     goodsProductEntity.setGrossWeight(new BigDecimal(goodsProductDto.getGrossWeight()));
@@ -209,10 +287,12 @@ public class GoodsProductServiceImpl implements GoodsProductService {
                 goodsProductEntity.setCreateTime(new Date());
                 goodsProductEntity.setCreaterSn(ShiroUtils.getUserId().toString());
                 goodsProductEntity.setStatus(Dict.productRecordStatus.item_00.getItem());
-                goodsProductDao.save(goodsProductEntity);
-                count++;
+                insertList.add(goodsProductEntity);
             }
+            goodsProductDao.saveBatch(insertList);
+            return count;
         }
+        return 0;
     }
 
     @Override
@@ -260,8 +340,8 @@ public class GoodsProductServiceImpl implements GoodsProductService {
         for (GoodsProductEntity goodsProductEntity : goodsProductEntityList) {
             GoodsProductDto dto = new GoodsProductDto();
             BeanUtils.copyProperties(goodsProductEntity, dto);
-            dto.setLegalUnit1Qty(goodsProductEntity.getLegalUnit1Qty().toString());
-            dto.setLegalUnit2Qty(goodsProductEntity.getLegalUnit2Qty().toString());
+//            dto.setLegalUnit1Qty(goodsProductEntity.getLegalUnit1Qty().toString());
+//            dto.setLegalUnit2Qty(goodsProductEntity.getLegalUnit2Qty().toString());
             dto.setNetWeight(goodsProductEntity.getNetWeight().toString());
             dto.setGrossWeight(goodsProductEntity.getGrossWeight().toString());
             dto.setDeclPrice(goodsProductEntity.getDeclPrice().toString());
@@ -307,8 +387,8 @@ public class GoodsProductServiceImpl implements GoodsProductService {
         for (GoodsProductEntity goodsProductEntity : goodsProductEntityList) {
             GoodsProductDto dto = new GoodsProductDto();
             BeanUtils.copyProperties(goodsProductEntity, dto);
-            dto.setLegalUnit1Qty(goodsProductEntity.getLegalUnit1Qty().toString());
-            dto.setLegalUnit2Qty(goodsProductEntity.getLegalUnit2Qty().toString());
+//            dto.setLegalUnit1Qty(goodsProductEntity.getLegalUnit1Qty().toString());
+//            dto.setLegalUnit2Qty(goodsProductEntity.getLegalUnit2Qty().toString());
             dto.setNetWeight(goodsProductEntity.getNetWeight().toString());
             dto.setGrossWeight(goodsProductEntity.getGrossWeight().toString());
             dto.setDeclPrice(goodsProductEntity.getDeclPrice().toString());
@@ -377,14 +457,126 @@ public class GoodsProductServiceImpl implements GoodsProductService {
     @Override
     public String pullFromOms() {
         try {
-
+            Map<String, Object> condition = new HashMap<>();
+            condition.put("status", Dict.productRecordStatus.item_02.getItem() + "," + Dict.productRecordStatus.item_12.getItem());
+            List<GoodsProductEntity> goodsProductEntityList = goodsProductDao.queryList(condition);
+            if (goodsProductEntityList == null || goodsProductEntityList.size() == 0) {
+                return "没有要发送的数据";
+            }
+            List<String> skuList = goodsProductEntityList.stream().map(GoodsProductEntity::getSku).collect(Collectors.toList());
+            List<String> prodBarCodeList = goodsProductEntityList.stream().map(GoodsProductEntity::getProdBarcode).collect(Collectors.toList());
+            String merchSn = goodsProductEntityList.get(0).getMerchSn();
+            String emsClassCode = goodsProductEntityList.get(0).getEmsClassCode();
+            Map<String, Object> map = new HashMap<>();
+            map.put("merchSn",merchSn);
+            map.put("emsClassCode",emsClassCode);
+            map.put("skuList",skuList);
+            map.put("prodBarCodeList",prodBarCodeList);
+            ResponseMessage result = requestOmsProductList(map);
+            if (!"0".equals(result.getCode())) {
+                return result.getMsg();
+            }
+            List<GoodsProductEntity> updateList = new ArrayList<>();
+            List<GoodsProductEntity> insertList = new ArrayList<>();
+            List rows = (List) result.getData().getRows().get(0);
+            for(int i = 0 ; i < rows.size() ; i ++) {
+                LinkedTreeMap<String, Object> treeMap = (LinkedTreeMap<String, Object>) rows.get(i);
+                String merchSn1 = treeMap.get("merchSn").toString();    //商户编号
+                String sku = treeMap.get("sku").toString();     //sku
+                String prodBarcode = treeMap.get("prodBarcode").toString();     //产品条形码
+                String prodBrand = treeMap.get("prodBrand").toString(); //品牌
+                String netWeight = treeMap.get("netWeight").toString(); //净重,kg
+                String grossWeight = treeMap.get("grossWeight").toString(); //毛重,kg
+                String ciqMainEle = treeMap.get("ciqMainEle").toString();   //主要成分
+                String cusCode = treeMap.get("cusCode").toString(); //
+                String bondedCode = treeMap.get("bondedCode").toString();   //海关商品编码
+                String localEmsNo = treeMap.get("localEmsNo").toString();   //园区账册编号
+                String itemRecordNo = treeMap.get("itemRecordNo").toString();   //园区商品序号
+                String remark = null ;
+                if (treeMap.get("remark") != null) {
+                    remark = treeMap.get("remark").toString();   //备注
+                }
+                String legalUnit1Qty = treeMap.get("legalUnit1Qty").toString(); //法1
+                String legalUnit2Qty = treeMap.get("legalUnit2Qty").toString(); //法2
+                String cusDeclEle = treeMap.get("cusDeclEle").toString();   //申报要素
+                String modTime = null ;
+                if (treeMap.get("modTime")!=null) {
+                    modTime = treeMap.get("modTime").toString();
+                }
+                for (GoodsProductEntity goodsProductEntity : goodsProductEntityList) {
+                    if (merchSn1.equals(goodsProductEntity.getMerchSn()) && sku.equals(goodsProductEntity.getSku()) && prodBarcode.equals(goodsProductEntity.getProdBarcode())) {
+                        goodsProductEntity.setGrossWeight(new BigDecimal(grossWeight));
+                        goodsProductEntity.setNetWeight(new BigDecimal(netWeight));
+                        goodsProductEntity.setLegalUnit1Qty(new BigDecimal(legalUnit1Qty));
+                        goodsProductEntity.setLegalUnit2Qty(new BigDecimal(legalUnit2Qty));
+                        goodsProductEntity.setCiqMainEle(ciqMainEle);
+                        goodsProductEntity.setCusDeclEle(cusDeclEle);
+                        goodsProductEntity.setOmsAuditRemark(remark);
+                        goodsProductEntity.setItemRecordNo(itemRecordNo);
+                        goodsProductEntity.setLocalEmsNo(localEmsNo);
+                        goodsProductEntity.setProdBrand(prodBrand);
+                        if (modTime!=null) {
+                            goodsProductEntity.setOmsAuditTime(DateUtils.strToDate(modTime));
+                        }
+                        goodsProductEntity.setOmsAuditStatus("2");
+                        goodsProductEntity.setModTime(new Date());
+                        goodsProductEntity.setModerSn(ShiroUtils.getUserId().toString());
+                        goodsProductEntity.setStatus(Dict.productRecordStatus.item_22.getItem());
+                        updateList.add(goodsProductEntity);
+                    }
+                }
+            }
+            if (updateList.size()>0) {
+                int i = goodsProductDao.updateBatch(updateList);
+                if (i>0) {
+                    return result.getMsg();
+                }else {
+                    return "暂无更新!";
+                }
+            }
         }catch (Exception e){
             e.printStackTrace();
-            return "同步产品备案信息失败,请联系管理员";
+            throw new RuntimeException("拉取产品备案信息失败,请联系管理员");
         }
-        return "同步成功";
+        return "拉取暂无最新产品备案信息!";
     }
+    private ResponseMessage requestOmsProductList(Map map) {
+        Map<String, String> sParaTemp = new TreeMap<String, String>();
+        sParaTemp.put("data", JSON.toJSONString(map));
+        LOGGER.info("请求omsdata数据:" + sParaTemp.get("data"));
+        sParaTemp.put("merchId", omsMerchProperties.getMerchSn());
+        String timestamp = String.valueOf(System.currentTimeMillis() / 1000);
+        sParaTemp.put("timestamp", timestamp);
+        //生成要请求给oms秘钥
+//        String sign = OmsSign.sign(sParaTemp,cus.getWaybill().get("secret-key"));
+        LOGGER.info("md5混淆码参数:" + omsMerchProperties.getMd5Salt());
+        String sign = OmsSign.sign(sParaTemp, omsMerchProperties.getMd5Salt());
+        sParaTemp.put("sign", sign);
+        //构建Request
+        String url = omsMerchProperties.getQuerydProductRecordListUrl();
+        Request request = com.kmall.admin.utils.oms.OkHttpUtils.buildRequest(url, JSON.toJSONString(sParaTemp));
+        LOGGER.info("oms的请求报文:" + request);
+        // 同步访问,返回结果字符串
+        String responseString = null;
+        try {
 
+            responseString = com.kmall.admin.utils.oms.OkHttpUtils.post(request);
+
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        LOGGER.info("oms的响应报文" + responseString);
+        //解析响应数据
+        Gson gson = new Gson();
+        ResponseMessage result = gson.fromJson(responseString, ResponseMessage.class);
+        if (result == null) {
+            String info = "解析响应数据Result失败";
+            LOGGER.error("--- {}", info);
+            throw new RuntimeException(info);
+        }
+        return result;
+    }
 
     private ResponseMessage requestOmsProduct(List<GoodsProductDto> goodsProductDtoList) {
         Map<String, String> sParaTemp = new TreeMap<String, String>();

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/SysCusNationCodeServiceImpl.java

@@ -100,4 +100,19 @@ public class SysCusNationCodeServiceImpl
     public int deleteBatch(String[] sns) {
         return sysCusNationCodeDao.deleteBatch(sns);
     }
+
+    @Override
+    public SysCusNationCodeEntity getCusNationByName(String name) {
+        return sysCusNationCodeDao.queryObjectByName(name);
+    }
+
+    @Override
+    public SysCusNationCodeEntity getCusNationByCode(String code) {
+        return sysCusNationCodeDao.queryObjectByCode(code);
+    }
+
+    @Override
+    public List<SysCusNationCodeEntity> findCusNationByAll() {
+        return sysCusNationCodeDao.queryAll();
+    }
 }

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/SysCusUnitCodeServiceImpl.java

@@ -92,4 +92,19 @@ public class SysCusUnitCodeServiceImpl
     public int deleteBatch(String[] sns) {
         return sysCusUnitCodeDao.deleteBatch(sns);
     }
+
+    @Override
+    public SysCusUnitCodeEntity getUnitCode(String code) {
+        return sysCusUnitCodeDao.queryObjectByCode(code);
+    }
+
+    @Override
+    public SysCusUnitCodeEntity getUnitName(String name) {
+        return sysCusUnitCodeDao.queryObjectByName(name);
+    }
+
+    @Override
+    public List<SysCusUnitCodeEntity> getAll() {
+        return sysCusUnitCodeDao.queryAll();
+    }
 }

+ 19 - 19
kmall-admin/src/main/resources/XmlTemplate/GoodsProductDtoList.xml

@@ -1,13 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <workbook>
     <worksheet name="Sheet1">
-        <section startRow="0" endRow="1"/>
+        <section startRow="0" endRow="0"/>
         <loop startRow="1" endRow="1" items="GoodsProductDtoList" var="GoodsProductDto"
               varType="com.kmall.admin.dto.GoodsProductDto">
             <section startRow="1" endRow="1">
                 <mapping row="1" col="0">GoodsProductDto.merchSn</mapping>
-                <mapping row="1" col="1">GoodsProductDto.batchNo</mapping>
-                <mapping row="1" col="2">GoodsProductDto.sku</mapping>
+                <mapping row="1" col="1">GoodsProductDto.sku</mapping>
+                <mapping row="1" col="2">GoodsProductDto.batchNo</mapping>
                 <mapping row="1" col="3">GoodsProductDto.prodBarcode</mapping>
                 <mapping row="1" col="4">GoodsProductDto.prodName</mapping>
                 <mapping row="1" col="5">GoodsProductDto.prodEname</mapping>
@@ -22,22 +22,22 @@
                 <mapping row="1" col="14">GoodsProductDto.declCurrencyCode</mapping>
                 <mapping row="1" col="15">GoodsProductDto.netWeight</mapping>
                 <mapping row="1" col="16">GoodsProductDto.declPrice</mapping>
-                <mapping row="1" col="17">GoodsProductDto.legalUnit1Qty</mapping>
-                <mapping row="1" col="18">GoodsProductDto.legalUnit2Qty</mapping>
-                <mapping row="1" col="19">GoodsProductDto.ciqMonitorType</mapping>
-                <mapping row="1" col="20">GoodsProductDto.prodCompName</mapping>
-                <mapping row="1" col="21">GoodsProductDto.prodCompCntCode</mapping>
-                <mapping row="1" col="22">GoodsProductDto.itemRecordNo</mapping>
-                <mapping row="1" col="23">GoodsProductDto.isLaw</mapping>
-                <mapping row="1" col="24">GoodsProductDto.isGift</mapping>
-                <mapping row="1" col="25">GoodsProductDto.supplierName</mapping>
-                <mapping row="1" col="26">GoodsProductDto.supplierCntCode</mapping>
-                <mapping row="1" col="27">GoodsProductDto.grossWeight</mapping>
-                <mapping row="1" col="28">GoodsProductDto.localEmsNo</mapping>
-                <mapping row="1" col="29">GoodsProductDto.emsClassCode</mapping>
-                <mapping row="1" col="30">GoodsProductDto.thirdMerchSn</mapping>
-                <mapping row="1" col="31">GoodsProductDto.prodRecordName</mapping>
-                <mapping row="1" col="32">GoodsProductDto.prodRecordEname</mapping>
+                <!--<mapping row="1" col="17">GoodsProductDto.legalUnit1Qty</mapping>
+                <mapping row="1" col="18">GoodsProductDto.legalUnit2Qty</mapping>-->
+                <mapping row="1" col="17">GoodsProductDto.ciqMonitorType</mapping>
+                <mapping row="1" col="18">GoodsProductDto.prodCompName</mapping>
+                <mapping row="1" col="19">GoodsProductDto.prodCompCntCode</mapping>
+                <!--<mapping row="1" col="22">GoodsProductDto.itemRecordNo</mapping>-->
+                <mapping row="1" col="20">GoodsProductDto.isGift</mapping>
+                <mapping row="1" col="21">GoodsProductDto.isLaw</mapping>
+                <mapping row="1" col="22">GoodsProductDto.supplierName</mapping>
+                <mapping row="1" col="23">GoodsProductDto.supplierCntCode</mapping>
+                <mapping row="1" col="24">GoodsProductDto.grossWeight</mapping>
+                <!--<mapping row="1" col="28">GoodsProductDto.localEmsNo</mapping>-->
+                <mapping row="1" col="25">GoodsProductDto.emsClassCode</mapping>
+                <mapping row="1" col="26">GoodsProductDto.thirdMerchSn</mapping>
+                <!--<mapping row="1" col="31">GoodsProductDto.prodRecordName</mapping>
+                <mapping row="1" col="32">GoodsProductDto.prodRecordEname</mapping>-->
             </section>
             <loopbreakcondition>
                 <rowcheck offset="0">

+ 246 - 103
kmall-admin/src/main/resources/mybatis/mapper/GoodsProductDao.xml

@@ -282,6 +282,9 @@
 		<if test="thirdMerchSn != null and thirdMerchSn.trim() != ''">
 			AND third_merch_sn = #{thirdMerchSn}
 		</if>
+		<if test="prodBarcode != null and prodBarcode.trim() != ''">
+			AND prod_barcode = #{prodBarcode}
+		</if>
 	</select>
 	<select id="selectByMallGoodsProductSns" resultType="com.kmall.admin.entity.GoodsProductEntity">
 		select
@@ -475,112 +478,190 @@
 	</select>
 
 	<insert id="save" parameterType="com.kmall.admin.entity.GoodsProductEntity">
+		insert into mall_goods_product
+		<trim prefix="(" suffix=")" suffixOverrides="," >
+			<if test="merchSn != null">`merch_sn` , </if>
+			<if test="thirdMerchSn != null">`third_merch_sn` , </if>
+			<if test="prodBarcode != null">`prod_barcode` , </if>
+			<if test="sku != null">`sku` , </if>
+			<if test="cusGoodsCode != null">`cus_goods_code` , </if>
+			<if test="prodName != null">`prod_name` , </if>
+			<if test="prodEname != null">`prod_ename` , </if>
+			<if test="prodRecordName != null">`prod_record_name` , </if>
+			<if test="prodRecordEname != null">`prod_record_ename` , </if>
+			<if test="ciqProdModel != null">`ciq_prod_model` , </if>
+			<if test="prodBrand != null">`prod_brand` , </if>
+			<if test="oriCntCode != null">`ori_cnt_code` , </if>
+			<if test="unitCode != null">`unit_code` , </if>
+			<if test="declPrice != null">`decl_price` , </if>
+			<if test="declCurrencyCode != null">`decl_currency_code` , </if>
+			<if test="supplierName != null">`supplier_name` , </if>
+			<if test="supplierCntCode != null">`supplier_cnt_code` , </if>
+			<if test="prodCompName != null">`prod_comp_name` , </if>
+			<if test="prodCompCntCode != null">`prod_comp_cnt_code` , </if>
+			<if test="ciqMainEle != null">`ciq_main_ele` , </if>
+			<if test="ciqMonitorType != null">`ciq_monitor_type` , </if>
+			<if test="isLaw != null">`is_law` , </if>
+			<if test="isGift != null">`is_gift` , </if>
+			<if test="cusDeclEle != null">`cus_decl_ele` , </if>
+			<if test="createrSn != null">`creater_sn` , </if>
+			<if test="createTime != null">`create_time` , </if>
+			<if test="moderSn != null">`moder_sn` , </if>
+			<if test="modTime != null">`mod_time`, </if>
+			<if test="tstm != null">`tstm` , </if>
+			<if test="exField != null">`ex_field` , </if>
+			<if test="exField2 != null">`ex_field2` , </if>
+			<if test="exField3 != null">`ex_field3` , </if>
+			<if test="exField4 != null">`ex_field4` , </if>
+			<if test="exField5 != null">`ex_field5` , </if>
+			<if test="legalUnit1Qty != null">`legal_unit1_qty` , </if>
+			<if test="netWeight != null">`net_weight` , </if>
+			<if test="legalUnit2Qty != null">`legal_unit2_qty` , </if>
+			<if test="grossWeight != null">`gross_weight` , </if>
+			<if test="localEmsNo != null">`local_ems_no` , </if>
+			<if test="itemRecordNo != null">`item_record_no` , </if>
+			`is_send` ,
+			<if test="emsClassCode != null">`ems_class_code` ,</if>
+			<if test="upImg != null">`up_img` ,</if>
+			<if test="downImg != null">`down_img` ,</if>
+			<if test="leftImg != null">`left_img` ,</if>
+			<if test="rightImg != null">`right_img`,</if>
+			<if test="beforeImg != null">`before_img` ,</if>
+			<if test="afterImg != null">`after_img` ,</if>
+			<if test="sendTime != null">`send_time` , </if>
+			<if test="omsAuditStatus != null">`oms_audit_status` , </if>
+			<if test="omsAuditRemark != null">`oms_audit_remark` , </if>
+			<if test="omsAuditTime != null">`oms_audit_time`, </if>
+			<if test="omsCallbackTime != null">`oms_callback_time`, </if>
+			<if test="status != null">`status` , </if>
+		</trim>
+		<trim prefix="values (" suffix=")" suffixOverrides="," >
+			<if test="merchSn != null">#{merchSn}, </if>
+			<if test="thirdMerchSn != null"> #{thirdMerchSn}, </if>
+			<if test="prodBarcode != null"> #{prodBarcode}, </if>
+			<if test="sku != null"> #{sku}, </if>
+			<if test="cusGoodsCode != null"> #{cusGoodsCode}, </if>
+			<if test="prodName != null"> #{prodName}, </if>
+			<if test="prodEname != null"> #{prodEname}, </if>
+			<if test="prodRecordName != null">#{prodRecordName}, </if>
+			<if test="prodRecordEname != null"> #{prodRecordEname}, </if>
+			<if test="ciqProdModel != null"> #{ciqProdModel}, </if>
+			<if test="prodBrand != null"> #{prodBrand}, </if>
+			<if test="oriCntCode != null"> #{oriCntCode}, </if>
+			<if test="unitCode != null"> #{unitCode}, </if>
+			<if test="declPrice != null"> #{declPrice}, </if>
+			<if test="declCurrencyCode != null"> #{declCurrencyCode}, </if>
+			<if test="supplierName != null"> #{supplierName}, </if>
+			<if test="supplierCntCode != null"> #{supplierCntCode}, </if>
+			<if test="prodCompName != null"> #{prodCompName}, </if>
+			<if test="prodCompCntCode != null"> #{prodCompCntCode}, </if>
+			<if test="ciqMainEle != null">#{ciqMainEle}, </if>
+			<if test="ciqMonitorType != null"> #{ciqMonitorType}, </if>
+			<if test="isLaw != null">  #{isLaw}, </if>
+			<if test="isGift != null">  #{isGift}, </if>
+			<if test="cusDeclEle != null">  #{cusDeclEle}, </if>
+			<if test="createrSn != null">  #{createrSn}, </if>
+			<if test="createTime != null">  #{createTime}, </if>
+			<if test="moderSn != null">  #{moderSn}, </if>
+			<if test="modTime != null">  #{modTime}, </if>
+			<if test="tstm != null">  #{tstm}, </if>
+			<if test="exField != null"> #{exField}, </if>
+			<if test="exField2 != null">  #{exField2}, </if>
+			<if test="exField3 != null">  #{exField3}, </if>
+			<if test="exField4 != null">  #{exField4}, </if>
+			<if test="exField5 != null"> #{exField5}, </if>
+			<if test="legalUnit1Qty != null">  #{legalUnit1Qty}, </if>
+			<if test="netWeight != null">  #{netWeight}, </if>
+			<if test="legalUnit2Qty != null">  #{legalUnit2Qty}, </if>
+			<if test="grossWeight != null">  #{grossWeight}, </if>
+			<if test="localEmsNo != null">  #{localEmsNo}, </if>
+			<if test="itemRecordNo != null">  #{itemRecordNo}, </if>
+			'0' ,
+			<if test="emsClassCode != null">  #{emsClassCode},</if>
+			<if test="upImg != null">  #{upImg},</if>
+			<if test="downImg != null">  #{downImg},</if>
+			<if test="leftImg != null"> #{leftImg},</if>
+			<if test="rightImg != null">  #{rightImg},</if>
+			<if test="beforeImg != null">  #{beforeImg},</if>
+			<if test="afterImg != null">  #{afterImg},</if>
+			<if test="sendTime != null">  #{sendTime}, </if>
+			<if test="omsAuditStatus != null">  #{omsAuditStatus}, </if>
+			<if test="omsAuditRemark != null">  #{omsAuditRemark}, </if>
+			<if test="omsAuditTime != null">  #{omsAuditTime}, </if>
+			<if test="omsCallbackTime != null">  #{omsCallbackTime}, </if>
+			<if test="status != null"> #{status}, </if>
+		</trim>
+	</insert>
+
+	<insert id="saveBatch" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="id">
 		insert into mall_goods_product(
-			`mall_goods_product_sn`,
-			`merch_sn`,
-			`third_merch_sn`,
-			`prod_barcode`,
-			`sku`,
-			`cus_goods_code`,
-			`prod_name`,
-			`prod_ename`,
-			`prod_record_name`,
-			`prod_record_ename`,
-			`ciq_prod_model`,
-			`prod_brand`,
-			`ori_cnt_code`,
-			`unit_code`,
-			`decl_price`,
-			`decl_currency_code`,
-			`supplier_name`,
-			`supplier_cnt_code`,
-			`prod_comp_name`,
-			`prod_comp_cnt_code`,
-			`ciq_main_ele`,
-			`ciq_monitor_type`,
-			`is_law`,
-			`is_gift`,
-			`cus_decl_ele`,
-			`creater_sn`,
-			`create_time`,
-			`moder_sn`,
-			`mod_time`,
-			`tstm`,
-			`ex_field`,
-			`ex_field2`,
-			`ex_field3`,
-			`ex_field4`,
-			`ex_field5`,
-			`legal_unit1_qty`,
-			`net_weight`,
-			`legal_unit2_qty`,
-			`gross_weight`,
-			`local_ems_no`,
-			`item_record_no`,
-			`is_send`,
-			`ems_class_code`,
-			`up_img`,
-			`down_img`,
-			`left_img`,
-			`right_img`,
-			`before_img`,
-			`after_img`,
-			`batch_no`,
-		    `status`)
-		values(
-			#{mallGoodsProductSn},
-			#{merchSn},
-			#{thirdMerchSn},
-			#{prodBarcode},
-			#{sku},
-			#{cusGoodsCode},
-			#{prodName},
-			#{prodEname},
-			#{prodRecordName},
-			#{prodRecordEname},
-			#{ciqProdModel},
-			#{prodBrand},
-			#{oriCntCode},
-			#{unitCode},
-			#{declPrice},
-			#{declCurrencyCode},
-			#{supplierName},
-			#{supplierCntCode},
-			#{prodCompName},
-			#{prodCompCntCode},
-			#{ciqMainEle},
-			#{ciqMonitorType},
-			#{isLaw},
-			#{isGift},
-			#{cusDeclEle},
-			#{createrSn},
-			#{createTime},
-			#{moderSn},
-			#{modTime},
-			#{tstm},
-			#{exField},
-			#{exField2},
-			#{exField3},
-			#{exField4},
-			#{exField5},
-			#{legalUnit1Qty},
-			#{netWeight},
-			#{legalUnit2Qty},
-			#{grossWeight},
-			#{localEmsNo},
-			#{itemRecordNo},
+		`merch_sn`,
+		`prod_barcode`,
+		`sku`,
+		`batch_no`,
+		`cus_goods_code`,
+		`prod_name`,
+		`prod_ename`,
+		`prod_record_name`,
+		`ciq_prod_model`,
+		`prod_brand`,
+		`ori_cnt_code`,
+		`unit_code`,
+		`decl_price`,
+		`decl_currency_code`,
+		`supplier_name`,
+		`supplier_cnt_code`,
+		`prod_comp_name`,
+		`prod_comp_cnt_code`,
+		`ciq_main_ele`,
+		`ciq_monitor_type`,
+		`is_law`,
+		`is_gift`,
+		`cus_decl_ele`,
+		`creater_sn`,
+		`create_time`,
+		`net_weight`,
+		`gross_weight`,
+		`is_send`,
+		`ems_class_code`,
+		`status`
+		)
+		values
+		<foreach collection="list" index="index" item="item" separator=",">
+			(
+			#{item.merchSn},
+			#{item.prodBarcode},
+			#{item.sku},
+			#{item.batchNo},
+			#{item.cusGoodsCode},
+			#{item.prodName},
+			#{item.prodEname},
+			#{item.prodRecordName},
+			#{item.ciqProdModel},
+			#{item.prodBrand},
+			#{item.oriCntCode},
+			#{item.unitCode},
+			#{item.declPrice},
+			#{item.declCurrencyCode},
+			#{item.supplierName},
+			#{item.supplierCntCode},
+			#{item.prodCompName},
+			#{item.prodCompCntCode},
+			#{item.ciqMainEle},
+			#{item.ciqMonitorType},
+			#{item.isLaw},
+			#{item.isGift},
+			#{item.cusDeclEle},
+			#{item.createrSn},
+			#{item.createTime},
+			#{item.netWeight},
+			#{item.grossWeight},
 			'0',
-			#{emsClassCode},
-			#{upImg},
-			#{downImg},
-			#{leftImg},
-			#{rightImg},
-			#{beforeImg},
-			#{afterImg},
-		    #{batchNo},
-			#{status})
+			#{item.emsClassCode},
+			#{item.status}
+			)
+		</foreach>
 	</insert>
-
 	<update id="update" parameterType="com.kmall.admin.entity.GoodsProductEntity">
 		update mall_goods_product
 		<set>
@@ -642,6 +723,68 @@
 		where mall_goods_product_sn = #{mallGoodsProductSn}
 	</update>
 
+	<update id="updateBatch" parameterType="java.util.List">
+		<foreach collection="list" item="item" index="index" open="" close="" separator=";">
+			update mall_goods_product
+			<set>
+				<if test="item.merchSn != null">`merch_sn` = #{item.merchSn}, </if>
+				<if test="item.thirdMerchSn != null">`third_merch_sn` = #{item.thirdMerchSn}, </if>
+				<if test="item.prodBarcode != null">`prod_barcode` = #{item.prodBarcode}, </if>
+				<if test="item.sku != null">`sku` = #{item.sku}, </if>
+				<if test="item.cusGoodsCode != null">`cus_goods_code` = #{item.cusGoodsCode}, </if>
+				<if test="item.prodName != null">`prod_name` = #{item.prodName}, </if>
+				<if test="item.prodEname != null">`prod_ename` = #{item.prodEname}, </if>
+				<if test="item.prodRecordName != null">`prod_record_name` = #{item.prodRecordName}, </if>
+				<if test="item.prodRecordEname != null">`prod_record_ename` = #{item.prodRecordEname}, </if>
+				<if test="item.ciqProdModel != null">`ciq_prod_model` = #{item.ciqProdModel}, </if>
+				<if test="item.prodBrand != null">`prod_brand` = #{item.prodBrand}, </if>
+				<if test="item.oriCntCode != null">`ori_cnt_code` = #{item.oriCntCode}, </if>
+				<if test="item.unitCode != null">`unit_code` = #{item.unitCode}, </if>
+				<if test="item.declPrice != null">`decl_price` = #{item.declPrice}, </if>
+				<if test="item.declCurrencyCode != null">`decl_currency_code` = #{item.declCurrencyCode}, </if>
+				<if test="item.supplierName != null">`supplier_name` = #{item.supplierName}, </if>
+				<if test="item.supplierCntCode != null">`supplier_cnt_code` = #{item.supplierCntCode}, </if>
+				<if test="item.prodCompName != null">`prod_comp_name` = #{item.prodCompName}, </if>
+				<if test="item.prodCompCntCode != null">`prod_comp_cnt_code` = #{item.prodCompCntCode}, </if>
+				<if test="item.ciqMainEle != null">`ciq_main_ele` = #{item.ciqMainEle}, </if>
+				<if test="item.ciqMonitorType != null">`ciq_monitor_type` = #{item.ciqMonitorType}, </if>
+				<if test="item.isLaw != null">`is_law` = #{item.isLaw}, </if>
+				<if test="item.isGift != null">`is_gift` = #{item.isGift}, </if>
+				<if test="item.cusDeclEle != null">`cus_decl_ele` = #{item.cusDeclEle}, </if>
+				<if test="item.createrSn != null">`creater_sn` = #{item.createrSn}, </if>
+				<if test="item.createTime != null">`create_time` = #{item.createTime}, </if>
+				<if test="item.moderSn != null">`moder_sn` = #{item.moderSn}, </if>
+				<if test="item.modTime != null">`mod_time` = #{item.modTime}, </if>
+				<if test="item.tstm != null">`tstm` = #{item.tstm}, </if>
+				<if test="item.exField != null">`ex_field` = #{item.exField}, </if>
+				<if test="item.exField2 != null">`ex_field2` = #{item.exField2}, </if>
+				<if test="item.exField3 != null">`ex_field3` = #{item.exField3}, </if>
+				<if test="item.exField4 != null">`ex_field4` = #{item.exField4}, </if>
+				<if test="item.exField5 != null">`ex_field5` = #{item.exField5}, </if>
+				<if test="item.legalUnit1Qty != null">`legal_unit1_qty` = #{item.legalUnit1Qty}, </if>
+				<if test="item.netWeight != null">`net_weight` = #{item.netWeight}, </if>
+				<if test="item.legalUnit2Qty != null">`legal_unit2_qty` = #{item.legalUnit2Qty}, </if>
+				<if test="item.grossWeight != null">`gross_weight` = #{item.grossWeight}, </if>
+				<if test="item.localEmsNo != null">`local_ems_no` = #{item.localEmsNo}, </if>
+				<if test="item.itemRecordNo != null">`item_record_no` = #{item.itemRecordNo}, </if>
+				<if test="item.isSend != null">`is_send` = #{item.isSend}, </if>
+				<if test="item.emsClassCode != null">`ems_class_code` = #{item.emsClassCode},</if>
+				<if test="item.upImg != null">`up_img` = #{item.upImg},</if>
+				<if test="item.downImg != null">`down_img` = #{item.downImg},</if>
+				<if test="item.leftImg != null">`left_img` = #{item.leftImg},</if>
+				<if test="item.rightImg != null">`right_img` = #{item.rightImg},</if>
+				<if test="item.beforeImg != null">`before_img` = #{item.beforeImg},</if>
+				<if test="item.afterImg != null">`after_img` = #{item.afterImg},</if>
+				<if test="item.sendTime != null">`send_time` = #{item.sendTime}, </if>
+				<if test="item.omsAuditStatus != null">`oms_audit_status` = #{item.omsAuditStatus}, </if>
+				<if test="item.omsAuditRemark != null">`oms_audit_remark` = #{item.omsAuditRemark}, </if>
+				<if test="item.omsAuditTime != null">`oms_audit_time` = #{item.omsAuditTime}, </if>
+				<if test="item.omsCallbackTime != null">`oms_callback_time` = #{item.omsCallbackTime}, </if>
+				<if test="item.status != null">`status` = #{item.status}, </if>
+			</set>
+			where mall_goods_product_sn = #{item.mallGoodsProductSn}
+		</foreach>
+	</update>
 
 	<update id="updateStatusBySkuBatch" parameterType="map">
 		update mall_goods_product

+ 17 - 0
kmall-admin/src/main/resources/mybatis/mapper/SysCusNationCodeDao.xml

@@ -167,4 +167,21 @@
 		</foreach>
 	</delete>
 
+	<select id="queryAll" resultType="com.kmall.admin.entity.SysCusNationCodeEntity">
+		select
+    		`sn`,
+    		`code`,
+    		`name`,
+    		`ename`,
+    		`discounts_tax_type`,
+    		`remark`,
+    		`is_valid`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from sys_cus_nation_code
+		WHERE 1=1
+	</select>
 </mapper>

+ 15 - 0
kmall-admin/src/main/resources/mybatis/mapper/SysCusUnitCodeDao.xml

@@ -63,6 +63,21 @@
 		from sys_cus_unit_code
 		where `code` = #{code}
 	</select>
+	<select id="queryAll" resultType="com.kmall.admin.entity.SysCusUnitCodeEntity">
+		select
+		`sn`,
+		`code`,
+		`name`,
+		`remark`,
+		`is_valid`,
+		`creater_sn`,
+		`create_time`,
+		`moder_sn`,
+		`mod_time`,
+		`tstm`
+		from sys_cus_unit_code
+		where 1=1
+	</select>
 	<select id="queryList" resultType="com.kmall.admin.entity.SysCusUnitCodeEntity">
 		select
     		`sn`,

+ 4 - 4
kmall-admin/src/main/webapp/WEB-INF/page/shop/goodsproduct.html

@@ -151,7 +151,7 @@
             <Form-item label="海关申报要素,报统一版" prop="cusDeclEle">
                 <i-input v-model="goodsProduct.cusDeclEle" placeholder="海关申报要素,报统一版"/>
             </Form-item>
-            <Form-item label="创建人编号" prop="createrSn">
+            <!--<Form-item label="创建人编号" prop="createrSn">
                 <i-input v-model="goodsProduct.createrSn" placeholder="创建人编号"/>
             </Form-item>
             <Form-item label="创建时间,yyyy-MM-dd HH:mm:ss" prop="createTime">
@@ -165,8 +165,8 @@
             </Form-item>
             <Form-item label="时间戳" prop="tstm">
                 <i-input v-model="goodsProduct.tstm" placeholder="时间戳"/>
-            </Form-item>
-            <Form-item label="" prop="exField">
+            </Form-item>-->
+            <!--<Form-item label="" prop="exField">
                 <i-input v-model="goodsProduct.exField" placeholder=""/>
             </Form-item>
             <Form-item label="" prop="exField2">
@@ -180,7 +180,7 @@
             </Form-item>
             <Form-item label="" prop="exField5">
                 <i-input v-model="goodsProduct.exField5" placeholder=""/>
-            </Form-item>
+            </Form-item>-->
             <Form-item label="第一法定单位数量" prop="legalUnit1Qty">
                 <i-input v-model="goodsProduct.legalUnit1Qty" placeholder="第一法定单位数量"/>
             </Form-item>

+ 10 - 10
kmall-admin/src/main/webapp/js/shop/goodsproduct.js

@@ -192,9 +192,9 @@ let vm = new Vue({
             merchSn: [
                 {required: true, message: '商户编号不能为空', trigger: 'blur'}
             ],
-            thirdMerchSn: [
+            /*thirdMerchSn: [
                 {required: true, message: '第三方商户编号不能为空', trigger: 'blur'}
-            ],
+            ],*/
             prodBarcode: [
                 {required: true, message: '产品条码不能为空', trigger: 'blur'}
             ],
@@ -231,21 +231,21 @@ let vm = new Vue({
             cusDeclEle: [
                 {required: true, message: '海关申报要素,报统一版不能为空', trigger: 'blur'}
             ],
-            createrSn: [
+           /* createrSn: [
                 {required: true, message: '创建人编号不能为空', trigger: 'blur'}
             ],
             createTime: [
                 {required: true, message: '创建时间不能为空', trigger: 'blur'}
-            ],
-            legalUnit1Qty: [
+            ],*/
+           /* legalUnit1Qty: [
                 {required: true, message: '第一法定单位数量不能为空', trigger: 'blur'}
-            ],
+            ],*/
             netWeight: [
                 {required: true, message: '净重,kg不能为空', trigger: 'blur'}
             ],
-            legalUnit2Qty: [
+           /* legalUnit2Qty: [
                 {required: true, message: '第二法定单位数量不能为空', trigger: 'blur'}
-            ],
+            ],*/
             upImg: [
                 {required: false, message: '上方图片不能为空', trigger: 'blur'}
             ],
@@ -394,7 +394,7 @@ let vm = new Vue({
         uploadExcelSuccess: function (data) {
             // console.log(data);
             if (data.code == 0) {
-                alert('导入成功', function (index) {
+                alert(data.msg, function (index) {
                     $("#jqGrid").trigger("reloadGrid");
                 });
             } else {
@@ -567,7 +567,7 @@ let vm = new Vue({
                                 $("#jqGrid").trigger("reloadGrid");
                             });
                         } else {
-                            alert(r.msg);
+                            alert(r.msg)
                         }
                     }
                 });

BIN
kmall-admin/src/main/webapp/statics/file/goods_product_import_yyyy_mm_dd_v1.0.0.xlsx


+ 10 - 0
kmall-manager/src/main/java/com/kmall/manager/manager/merch/OmsMerchProperties.java

@@ -37,6 +37,8 @@ public class OmsMerchProperties implements Serializable {
 
     private String pdProductImgInsertOrUpdateUrl;
 
+    private String querydProductRecordListUrl;
+
     public String getPdProductImgInsertOrUpdateUrl() {
         return pdProductImgInsertOrUpdateUrl;
     }
@@ -140,4 +142,12 @@ public class OmsMerchProperties implements Serializable {
     public void setSendTransferUrl(String sendTransferUrl) {
         this.sendTransferUrl = sendTransferUrl;
     }
+
+    public String getQuerydProductRecordListUrl() {
+        return querydProductRecordListUrl;
+    }
+
+    public void setQuerydProductRecordListUrl(String querydProductRecordListUrl) {
+        this.querydProductRecordListUrl = querydProductRecordListUrl;
+    }
 }

+ 8 - 2
kmall-manager/src/main/resources/conf/oms-merch.properties

@@ -23,10 +23,12 @@ merch.wxOrderResendUrl=http://8.135.102.238:8680/wx/wxOrderResendQueryAll
 #merch.livenessRecognitionUrl=http://127.0.0.1:8680/al/faceid/livenessRecognition
 ##oms\u6D4B\u8BD5\u73AF\u5883\u8DE8\u5883\u989D\u5EA6\u67E5\u8BE2\u63A5\u53E3
 #merch.quotaInquiryUrl=http://127.0.0.1:8680/al/cus/yearLimit
-#\u7533\u8BF7\u4EA7\u54C1\u5907\u6848\u63A5\u53E3(\u672C\u5730\u6D4B\u8BD5)
+##\u7533\u8BF7\u4EA7\u54C1\u5907\u6848\u63A5\u53E3(\u672C\u5730\u6D4B\u8BD5)
 #merch.addPdProductListUrl=http://127.0.0.1:8680/al/product/addPdProductList
 ##\u7533\u8BF7\u4EA7\u54C1\u5907\u6848\u63A5\u53E3
-#merch.pdProductImgInsertOrUpdateUrl=http://127.0.0.1:8181/pdProductImg/insertOrUpdateSkuImg
+#merch.pdProductImgInsertOrUpdateUrl=http://127.0.0.1:8181/oms-controller-mgt/pdProductImg/insertOrUpdateSkuImg
+##\u4EA7\u54C1\u5907\u6848\u62C9\u53D6\u63A5\u53E3
+#merch.queryPdProductRecordListUrl=http://127.0.0.1:8680/al/product/getPdProductRecordList
 
 
 ###oms\u751F\u4EA7\u73AF\u5883\u5BC6\u94A5
@@ -39,6 +41,8 @@ merch.quotaInquiryUrl=http://ws.ds-bay.com/al/cus/yearLimit
 merch.addPdProductListUrl=http://ws.ds-bay.com/al/product/addPdProductList
 #\u4EA7\u54C1\u5907\u6848\u56FE\u7247\u66F4\u65B0\u63A5\u53E3
 merch.pdProductImgInsertOrUpdateUrl=http://ws.ds-bay.com/oms-controller-mgt/pdProductImg/insertOrUpdateSkuImg
+\u4EA7\u54C1\u5907\u6848\u62C9\u53D6\u63A5\u53E3
+merch.queryPdProductRecordListUrl=http://ws.ds-bay.com/al/product/getPdProductRecordList
 
 
 
@@ -53,3 +57,5 @@ merch.pdProductImgInsertOrUpdateUrl=http://ws.ds-bay.com/oms-controller-mgt/pdPr
 #merch.addPdProductListUrl=http://183.3.221.143:8680/al/product/addPdProductList
 #\u4EA7\u54C1\u5907\u6848\u56FE\u7247\u66F4\u65B0\u63A5\u53E3
 #merch.pdProductImgInsertOrUpdateUrl=http://183.3.221.143:8080/oms-controller-mgt/pdProductImg/insertOrUpdateSkuImg
+#\u4EA7\u54C1\u5907\u6848\u62C9\u53D6\u63A5\u53E3
+#merch.queryPdProductRecordListUrl=http://183.3.221.143:8680/al/product/getPdProductRecordList

+ 1 - 0
kmall-manager/src/main/resources/spring/spring-oms-merch.xml

@@ -29,5 +29,6 @@
         <property name="addPdProductListUrl" value="${merch.addPdProductListUrl}"/>
         <property name="pdProductImgInsertOrUpdateUrl" value="${merch.pdProductImgInsertOrUpdateUrl}"/>
         <property name="sendTransferUrl" value="${merch.sendTransferUrl}"/>
+        <property name="querydProductRecordListUrl" value="${merch.queryPdProductRecordListUrl}"/>
     </bean>
 </beans>