Browse Source

库存功能

liujiankang 6 years ago
parent
commit
43b61253cd
17 changed files with 680 additions and 22 deletions
  1. 76 1
      watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java
  2. 6 0
      watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintDetectInfoService.java
  3. 46 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java
  4. 8 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java
  5. 41 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java
  6. 6 0
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintDetectInfoMapper.java
  7. 71 3
      watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml
  8. 45 0
      watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java
  9. 49 3
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java
  10. 30 0
      watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/InventoryController.java
  11. 44 0
      watero-rst-web/src/main/java/com/iamberry/rst/utils/GenerateKeyUtil.java
  12. 7 1
      watero-rst-web/src/main/resources/platform.properties
  13. 1 1
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl
  14. 92 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_QC.ftl
  15. 87 0
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_content.ftl
  16. 11 7
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl
  17. 60 3
      watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_complete.ftl

+ 76 - 1
watero-rst-core/src/main/java/com.iamberry.rst.core/fm/ComplaintDetectInfo.java

@@ -26,7 +26,7 @@ public class ComplaintDetectInfo implements Serializable {
     private String detectResults;//判定结果
     private String detectPoint;//故障指向
     private String detectNalysis;//原因分析
-    private String detectContent;//维修内容
+    private String detectContent;//维修内容(维修记录)
     private Integer isMaintenance;//是否有故障1 有故障 2没有
     private String detectDesc;//备注
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@@ -64,6 +64,17 @@ public class ComplaintDetectInfo implements Serializable {
 
     private Date maintenanceCutTime;//待维修截止时间
 
+    //5月8号新增字段
+    private String detectProduction;//生产月份
+    private String detectFuselageBarcode;//机身条码
+    private Integer detectFilmType;//厚膜类型1圆、2扁
+    private Integer detectFloatType;//浮子类型1长、2短
+    private String detectVersionNumber;//版本号
+    private Integer detectIsRefurbishing;//是否翻新机1是 2否
+    private Integer maintenanceResults;//QC检测结果1.通过 2不通过
+    private String detectNumber;//维修编号
+
+
     public Integer getDetectId() {
         return detectId;
     }
@@ -359,4 +370,68 @@ public class ComplaintDetectInfo implements Serializable {
     public void setMaintenanceCutTime(Date maintenanceCutTime) {
         this.maintenanceCutTime = maintenanceCutTime;
     }
+
+    public String getDetectProduction() {
+        return detectProduction;
+    }
+
+    public void setDetectProduction(String detectProduction) {
+        this.detectProduction = detectProduction;
+    }
+
+    public String getDetectFuselageBarcode() {
+        return detectFuselageBarcode;
+    }
+
+    public void setDetectFuselageBarcode(String detectFuselageBarcode) {
+        this.detectFuselageBarcode = detectFuselageBarcode;
+    }
+
+    public Integer getDetectFilmType() {
+        return detectFilmType;
+    }
+
+    public void setDetectFilmType(Integer detectFilmType) {
+        this.detectFilmType = detectFilmType;
+    }
+
+    public Integer getDetectFloatType() {
+        return detectFloatType;
+    }
+
+    public void setDetectFloatType(Integer detectFloatType) {
+        this.detectFloatType = detectFloatType;
+    }
+
+    public String getDetectVersionNumber() {
+        return detectVersionNumber;
+    }
+
+    public void setDetectVersionNumber(String detectVersionNumber) {
+        this.detectVersionNumber = detectVersionNumber;
+    }
+
+    public Integer getDetectIsRefurbishing() {
+        return detectIsRefurbishing;
+    }
+
+    public void setDetectIsRefurbishing(Integer detectIsRefurbishing) {
+        this.detectIsRefurbishing = detectIsRefurbishing;
+    }
+
+    public Integer getMaintenanceResults() {
+        return maintenanceResults;
+    }
+
+    public void setMaintenanceResults(Integer maintenanceResults) {
+        this.maintenanceResults = maintenanceResults;
+    }
+
+    public String getDetectNumber() {
+        return detectNumber;
+    }
+
+    public void setDetectNumber(String detectNumber) {
+        this.detectNumber = detectNumber;
+    }
 }

+ 6 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/fm/ComplaintDetectInfoService.java

@@ -76,4 +76,10 @@ public interface ComplaintDetectInfoService {
      * @return
      */
     List<ComplaintDetectImg> listDetectImg(Integer detectId);
+
+    /**
+     * 查询当前月份维修数量
+     * @return
+     */
+    Integer getDetectNum();
 }

+ 46 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/cm/SalesOrderServiceImpl.java

@@ -6,6 +6,8 @@ import com.iamberry.rst.core.cm.FittingsInfo;
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.cm.SalesOrderItem;
 import com.iamberry.rst.core.cm.StoreInfo;
+import com.iamberry.rst.core.fm.InventoryInfo;
+import com.iamberry.rst.core.fm.InventoryLog;
 import com.iamberry.rst.core.order.*;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.core.sys.Admin;
@@ -18,6 +20,8 @@ import com.iamberry.rst.faces.order.EfastOrderService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.service.cm.mapper.FittingsInfoMapper;
 import com.iamberry.rst.service.cm.mapper.SalesOrderMapper;
+import com.iamberry.rst.service.fm.mapper.InventoryLogMapper;
+import com.iamberry.rst.service.fm.mapper.InventoryMapper;
 import com.iamberry.rst.service.order.mapper.LogisticsInfoMapper;
 import com.iamberry.rst.service.order.mapper.ProvincesLogisticsMapper;
 import com.iamberry.rst.service.product.mapper.ProductMapper;
@@ -34,6 +38,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.beans.Transient;
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 /**
@@ -64,6 +69,10 @@ public class SalesOrderServiceImpl implements SalesOrderService {
     private ProvincesLogisticsMapper provincesLogisticsMapper;
     @Autowired
     private ProductMapper productMapper;
+    @Autowired
+    private InventoryMapper inventoryMapper;
+    @Autowired
+    private InventoryLogMapper inventoryLogMapper;
 
 
     @Override
@@ -1016,10 +1025,47 @@ public class SalesOrderServiceImpl implements SalesOrderService {
         return salesOrderMapper.getSalesOrderByPostNum(postNum);
     }
 
+    @Transactional
     @Override
     public Integer updateDeliver(SalesOrder salesOrder) {
+            if(salesOrder.getSalesDeliver() == 2){//修改库存
+                if(!updateInventory(salesOrder.getSalesId())){
+                    throw  new RuntimeException("标记出库-修改库存失败!");
+                }
+            }
         return salesOrderMapper.updateDeliver(salesOrder);
     }
+    public boolean updateInventory(Integer salesId){
+        SalesOrderItem salesOrderItem = new SalesOrderItem();
+        salesOrderItem.setItemOrderId(salesId);
+        List<SalesOrderItem> listOrderitem = salesOrderService.listSalesOrderItem(salesOrderItem);
+        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        for(SalesOrderItem item : listOrderitem){
+            InventoryInfo info = inventoryMapper.getByInventoryByBar(item.getItemColorBar());
+            if(info != null){
+                if(info.getInventoryGoodProductNum() >= item.getItemNum()){
+                    info.setInventoryGoodProductNum(info.getInventoryGoodProductNum() - item.getItemNum());
+                    info.setInventoryRecentRecord(sdf.format(new Date())+"出库:"+item.getItemNum()+"件");
+                    inventoryMapper.updateById(info);
+                    //添加日志
+                    InventoryLog inventoryLog = new InventoryLog();
+                    inventoryLog.setLogProductName(info.getInventoryProductName());
+                    inventoryLog.setLogProductBar(info.getInventoryProductBar());
+                    inventoryLog.setLogRemainingNum(item.getItemNum());
+                    inventoryLog.setLogType(2);
+                    inventoryLog.setLogOperationType(2);
+                    inventoryLog.setLogDesc(sdf.format(new Date())+"待发货标记出库:"+item.getItemNum()+"件");
+                    inventoryLog.setLogQualityType(1);
+                    inventoryLog.setLogWarehouseId(1);
+                    inventoryLogMapper.insert(inventoryLog);
+                }else{
+                    return false;
+                }
+            }
+
+        }
+        return true;
+    }
 
     @Override
     public List<SalesOrderItem> getDeliverNum(SalesOrder salesOrder) {

+ 8 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintDetectInfoServiceImpl.java

@@ -79,7 +79,7 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
             }
         }
 
-        try {
+      /*  try {*/
             if(complaintDetectInfoMapper.updateDetectById(record) > 0){
                 if(imgs != null){
                     if(imgs.length > 0){
@@ -92,9 +92,9 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
                     }
                 }
             }
-        }catch (Exception e){
+       /* }catch (Exception e){
             throw new RuntimeException("完成检测失败");
-        }
+        }*/
         return 1;
     }
     @Override
@@ -195,5 +195,10 @@ public class ComplaintDetectInfoServiceImpl implements ComplaintDetectInfoServic
         return complaintDetectInfoMapper.listDetectImg(detectId);
     }
 
+    @Override
+    public Integer getDetectNum() {
+        return complaintDetectInfoMapper.getDetectNum();
+    }
+
 
 }

+ 41 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/ComplaintSignclosedInfoServiceImpl.java

@@ -2,6 +2,7 @@ package com.iamberry.rst.service.fm;
 
 
 import com.github.pagehelper.PageHelper;
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.cm.*;
 import com.iamberry.rst.core.fm.*;
 import com.iamberry.rst.core.order.Product;
@@ -16,11 +17,13 @@ import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper;
 import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedProductInfoMapper;
 import com.iamberry.rst.service.product.mapper.ProductMapper;
 import com.iamberry.rst.util.PageUtil;
+import com.iamberry.rst.util.ProduceNoUtil;
 import net.sf.json.JSONArray;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
@@ -239,6 +242,9 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
                             //添加待检测信息
                             //查询签收信息
                             ComplaintDetectInfo detectInfo = new ComplaintDetectInfo();
+                            //生成维修编号
+                            String number = detectNumber();
+                            detectInfo.setDetectNumber(number);
                             detectInfo.setProductId(productColor.getColorProductId());
                             detectInfo.setProductColorId(productInfo.getSignclosedProductColor());
                             detectInfo.setDetectProductNumber(product.getProductNumber());
@@ -260,6 +266,41 @@ public class ComplaintSignclosedInfoServiceImpl implements ComplaintSignclosedIn
         }
     }
 
+    /**
+     * 生成维修编号
+     * @return
+     */
+    public String detectNumber(){
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMM");
+        String year = sdf.format(new Date());
+        String detectNum = RedisUtils.get("detect_"+year);
+        Integer detectNumber;
+        if(detectNum == null){
+            //查询当前月份所有维修机器
+            Integer num = complaintDetectInfoMapper.getDetectNum();
+            RedisUtils.put("detect_"+year,num);/*
+            RedisUtils.expire(SC_DETECT+year,new Date(System.currentTimeMillis() + 2678400000L));*/
+            detectNumber = num;
+        }else{
+            detectNumber =Integer.parseInt(detectNum)+ 1;
+            RedisUtils.put("detect_"+year,detectNumber);
+        }
+        switch (detectNumber.toString().length()){
+            case 1:
+                detectNum = "000"+detectNumber;
+                break;
+            case 2:
+                detectNum = "00"+detectNumber;
+                break;
+            case 3:
+                detectNum = "0"+detectNumber;
+                break;
+            case 4:
+                detectNum = detectNumber.toString();
+                break;
+        }
+        return year+detectNum;
+    }
     @Override
     public List<SignclosedProductInfo> listSignclosedById(Integer signclosedId) {
         return complaintSignclosedInfoMapper.listSignclosedById(signclosedId);

+ 6 - 0
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/ComplaintDetectInfoMapper.java

@@ -57,4 +57,10 @@ public interface ComplaintDetectInfoMapper {
      * @return
      */
     List<ComplaintDetectImg> listDetectImg(Integer detectId);
+
+    /**
+     * 查询当前月份维修数量
+     * @return
+     */
+    Integer getDetectNum();
 }

+ 71 - 3
watero-rst-service/src/main/java/com/iamberry/rst/service/fm/mapper/complaintDetectInfoMapper.xml

@@ -26,6 +26,14 @@
       detect_offer detectOffer,
       detect_renovation detectRenovation,
       detect_processing_results detectProcessingResults,
+      detect_production detectProduction,
+      detect_fuselage_barcode detectFuselageBarcode,
+      detect_film_type detectFilmType,
+      detect_float_type detectFloatType,
+      detect_version_number detectVersionNumber,
+      detect_is_refurbishing detectIsRefurbishing,
+      maintenance_results maintenanceResults,
+      detect_number detectNumber,
       cd.signclosed_id signclosedId,
       pi.product_name productName,
       ci.color_name colorName,
@@ -66,6 +74,14 @@
     cd.detect_renovation detectRenovation,
     cd.detect_processing_results detectProcessingResults,
     cd.detect_customer_desc detectCustomerDesc,
+    cd.detect_production detectProduction,
+    cd.detect_fuselage_barcode detectFuselageBarcode,
+    cd.detect_film_type detectFilmType,
+    cd.detect_float_type detectFloatType,
+    cd.detect_version_number detectVersionNumber,
+    cd.detect_is_refurbishing detectIsRefurbishing,
+    cd.maintenance_results maintenanceResults,
+    cd.detect_number detectNumber,
     qd.describe_title questionTitle,
     pi.product_name productName,
     pt.type_name productTypeName,
@@ -126,6 +142,9 @@
       <if test="detectProcessingResults != null and detectProcessingResults != ''" >
         AND cd.detect_processing_results = #{detectProcessingResults}
       </if>
+      <if test="detectNumber != null and detectNumber != ''" >
+        AND cd.detect_number = #{detectNumber}
+      </if>
     </where>
       ORDER BY cd.detect_create_time DESC
   </select>
@@ -182,7 +201,31 @@
         detect_processing_results = #{detectProcessingResults,jdbcType=TIMESTAMP},
       </if>
       <if test="detectCustomerDesc != null" >
-        detect_customer_desc = #{detectCustomerDesc,jdbcType=VARCHAR}
+        detect_customer_desc = #{detectCustomerDesc,jdbcType=VARCHAR},
+      </if>
+      <if test="detectProduction != null" >
+          detect_production = #{detectProduction,jdbcType=VARCHAR},
+      </if>
+      <if test="detectFuselageBarcode != null  and detectFuselageBarcode != ''" >
+          detect_fuselage_barcode = #{detectFuselageBarcode,jdbcType=VARCHAR},
+      </if>
+      <if test="detectFilmType != null and detectFilmType != ''" >
+          detect_film_type = #{detectFilmType,jdbcType=INTEGER},
+      </if>
+      <if test="detectFloatType != null and detectFloatType != ''" >
+          detect_float_type = #{detectFloatType,jdbcType=VARCHAR},
+      </if>
+      <if test="detectVersionNumber != null and detectVersionNumber != ''" >
+          detect_version_number = #{detectVersionNumber,jdbcType=VARCHAR},
+      </if>
+      <if test="detectIsRefurbishing != null and detectIsRefurbishing != ''" >
+          detect_is_refurbishing = #{detectIsRefurbishing,jdbcType=VARCHAR},
+      </if>
+      <if test="maintenanceResults != null and maintenanceResults != ''" >
+          maintenance_results = #{maintenanceResults,jdbcType=VARCHAR},
+      </if>
+      <if test="detectNumber != null and detectNumber != ''" >
+          detect_number = #{detectNumber,jdbcType=VARCHAR}
       </if>
     </set>
     where
@@ -212,7 +255,15 @@
     detect_offer,
     detect_renovation,
     detect_processing_results,
-    signclosed_id
+    signclosed_id,
+    detect_production,
+    detect_fuselage_barcode,
+    detect_film_type,
+    detect_float_type,
+    detect_version_number,
+    detect_is_refurbishing,
+    maintenance_results,
+    detect_number
     )
     values
       (
@@ -236,7 +287,15 @@
       #{detectOffer},
       #{detectRenovation},
       #{detectProcessingResults},
-      #{signclosedId}
+      #{signclosedId},
+      #{detectProduction},
+      #{detectFuselageBarcode},
+      #{detectFilmType},
+      #{detectFloatType},
+      #{detectVersionNumber},
+      #{detectIsRefurbishing},
+      #{maintenanceResults},
+      #{detectNumber}
       )
   </insert>
 
@@ -267,4 +326,13 @@
     select * from tb_rst_complaint_detect_img
     where detect_id = #{detectId}
   </select>
+
+  <select id="getDetectNum" resultType="Integer">
+    SELECT
+        count(1)
+    FROM
+        tb_rst_complaint_detect
+    WHERE
+        date_format(detect_create_time, '%Y-%m') = date_format(now(), '%Y-%m')
+  </select>
 </mapper>

+ 45 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/ProduceNoUtil.java

@@ -1,10 +1,14 @@
 package com.iamberry.rst.util;
 
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.pts.Produce;
+import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
 import com.iamberry.rst.service.pts.mapper.ProduceMapper;
 import org.springframework.beans.factory.annotation.Autowired;
 
 import javax.print.DocFlavor;
+import java.text.SimpleDateFormat;
+import java.util.Date;
 import java.util.LinkedList;
 import java.util.List;
 
@@ -14,6 +18,8 @@ import java.util.List;
  */
 public class ProduceNoUtil {
 
+    @Autowired
+    private ComplaintDetectInfoService complaintDetectInfoService;
     //0-9,a-z,A-Z 62个编号
     private final static  String[] NUMBER = {"0","1","2","3","4","5","6","7","8","9",
             "A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",
@@ -84,4 +90,43 @@ public class ProduceNoUtil {
         }
         System.out.println(s.length);
     }
+
+
+    private static SimpleDateFormat SDF_DETECT = new SimpleDateFormat("yyyyMM");
+    /*获取redis编号前缀*/
+    private final static String SC_DETECT = "detect_";
+    /**
+     * 生成维修编号
+     * @return
+     */
+    public String detectNumber(){
+        String year = SDF_DETECT.format(new Date());
+        String detectNum = RedisUtils.get(SC_DETECT+year);
+        Integer detectNumber;
+        if(detectNum == null){
+            //查询当前月份所有维修机器
+            Integer num = complaintDetectInfoService.getDetectNum();
+            RedisUtils.put(SC_DETECT+year,num);/*
+            RedisUtils.expire(SC_DETECT+year,new Date(System.currentTimeMillis() + 2678400000L));*/
+            detectNumber = num;
+        }else{
+            detectNumber =Integer.parseInt(detectNum)+ 1;
+
+        }
+        switch (detectNumber.toString().length()){
+            case 1:
+                detectNum = "000"+detectNumber;
+                break;
+            case 2:
+                detectNum = "00"+detectNumber;
+                break;
+            case 3:
+                detectNum = "0"+detectNumber;
+                break;
+            case 4:
+                detectNum = detectNumber.toString();
+                break;
+        }
+        return year+detectNum;
+    }
 }

+ 49 - 3
watero-rst-web/src/main/java/com/iamberry/rst/controllers/cm/AdminDetectController.java

@@ -17,7 +17,10 @@ import com.iamberry.rst.faces.fm.ComplaintSignclosedInfoService;
 import com.iamberry.rst.faces.fm.ComplaintSignclosedProductInfoService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.service.fm.mapper.ComplaintSignclosedInfoMapper;
+import com.iamberry.rst.util.CustomerCommonUtil;
+import com.iamberry.rst.util.ProduceNoUtil;
 import com.iamberry.rst.utils.AdminUtils;
+import com.iamberry.rst.utils.GenerateKeyUtil;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
 import org.apache.shiro.authz.annotation.RequiresPermissions;
@@ -56,6 +59,8 @@ public class AdminDetectController {
     private CompanyInfoService companyInfoService;
     @Autowired
     private SalesOrderService salesOrderService;
+    @Autowired
+    private GenerateKeyUtil generateKeyUtil;
     /**
      * 跳转到添加检测记录页面
      *
@@ -143,6 +148,9 @@ public class AdminDetectController {
             msg.setReturnCode(500);
             return msg;
         }*/
+        //生成维修编号
+        String number = generateKeyUtil.detectNumber();
+        detectInfo.setDetectNumber(number);
         detectInfo.setDetectState(1);
         detectInfo.setIsMaintenance(0);
         detectInfo.setDetectRenovation(0);
@@ -175,6 +183,44 @@ public class AdminDetectController {
         mv.addObject("detectItem",detectItem);
         return mv;
     }*/
+
+    /**
+     * 跳转到添加维修记录页面
+     *
+     * @return
+     */
+    @RequiresPermissions("info:update:info")
+    @RequestMapping(value = "/to_add_content")
+    public ModelAndView toAddContent(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("cm/inspection/add_content");
+        String detectId = request.getParameter("detectId");
+        if(detectId == null || detectId.equals("")){
+            return mv;
+        }
+        ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
+        mv.addObject("detectId",detectId);
+        mv.addObject("detectinfo",detectinfo);
+        return mv;
+    }
+
+    /**
+     * 跳转到修改QC检测结果页面
+     *
+     * @return
+     */
+    @RequiresPermissions("info:update:info")
+    @RequestMapping(value = "/to_add_QC")
+    public ModelAndView toAddQC(HttpServletRequest request) {
+        ModelAndView mv = new ModelAndView("cm/inspection/add_QC");
+        String detectId = request.getParameter("detectId");
+        if(detectId == null || detectId.equals("")){
+            return mv;
+        }
+        ComplaintDetectInfo detectinfo = complaintDetectInfoService.getDetectById(Integer.valueOf(detectId));
+        mv.addObject("detectId",detectId);
+        mv.addObject("detectinfo",detectinfo);
+        return mv;
+    }
     /**
      * 跳转到添加修改转入信息页面
      *
@@ -217,12 +263,12 @@ public class AdminDetectController {
 
 
     /**
-     * 修改检测信息备注
+     * 修改检测信息
      * @param request
      * @return
      * @throws Exception
      */
-    @RequiresPermissions("remark:add:remark")
+    @RequiresPermissions("info:update:info")
     @ResponseBody
     @RequestMapping("/update")
     public ResponseJson addRemark(HttpServletRequest request, ComplaintDetectInfo detectInfo) throws Exception {
@@ -392,8 +438,8 @@ public class AdminDetectController {
             return msg;
         }
         String detectDate = request.getParameter("detect_date");
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
         if(detectDate != null){
-            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
             detectInfo.setDetectDate(format.parse(detectDate));
         }
         String[] componentsImgs = request.getParameterValues("componentsImg");

+ 30 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/InventoryController.java

@@ -3,12 +3,14 @@ package com.iamberry.rst.controllers.pts;
 import com.iamberry.rst.core.fm.InventoryInfo;
 import com.iamberry.rst.core.fm.InventoryLog;
 import com.iamberry.rst.core.fm.WarehouseInfo;
+import com.iamberry.rst.core.order.Product;
 import com.iamberry.rst.core.order.ProductColor;
 import com.iamberry.rst.core.order.ProductType;
 import com.iamberry.rst.core.page.PageRequest;
 import com.iamberry.rst.core.page.PagedResult;
 import com.iamberry.rst.faces.cm.InventoryLogService;
 import com.iamberry.rst.faces.cm.InventoryService;
+import com.iamberry.rst.faces.product.ProductColorService;
 import com.iamberry.rst.faces.product.ProductService;
 import com.iamberry.rst.utils.StitchAttrUtil;
 import com.iamberry.wechat.tools.ResponseJson;
@@ -36,6 +38,8 @@ public class InventoryController {
     private InventoryLogService inventoryLogService;
     @Autowired
     private ProductService productService;
+    @Autowired
+    private ProductColorService productColorService;
 
     /**
      * 查询库存列表信息
@@ -234,5 +238,31 @@ public class InventoryController {
         mv.addObject("operationType",operationType);
         return mv;
     }
+    /**
+     * 添加产品数据到库存表
+     *
+     * @return
+     */
+    @ResponseBody
+    @RequestMapping(value = "/addInventory")
+    public String toUpdateInventory(HttpServletRequest request) {
+        ProductColor color = new ProductColor();
+        List<ProductColor> listColor  = productColorService.getProductColorList(color);
+        for(ProductColor productColor : listColor){
+            Product product = productService.getProductById(productColor.getColorId());
+            InventoryInfo inventoryInfo = new InventoryInfo();
+            inventoryInfo.setInventoryProductName(product.getProductName());
+            inventoryInfo.setInventoryProductBar(productColor.getColorBar());
+            inventoryInfo.setInventoryRemainingNum(0);
+            inventoryInfo.setInventoryState(1);
+            inventoryInfo.setInventoryProductColorId(productColor.getColorId());
+            inventoryInfo.setInventoryGoodProductNum(0);
+            inventoryInfo.setInventoryDefectiveProductNum(0);
+
+        }
+        return "";
+    }
+
+
 
 }

+ 44 - 0
watero-rst-web/src/main/java/com/iamberry/rst/utils/GenerateKeyUtil.java

@@ -1,8 +1,10 @@
 package com.iamberry.rst.utils;
 
+import com.iamberry.redis.RedisUtils;
 import com.iamberry.rst.core.cm.SalesOrder;
 import com.iamberry.rst.core.sys.SysConfig;
 import com.iamberry.rst.faces.cm.SalesOrderService;
+import com.iamberry.rst.faces.fm.ComplaintDetectInfoService;
 import com.iamberry.rst.faces.order.OrderBatchService;
 import com.iamberry.rst.faces.sys.SysConfigService;
 import com.iamberry.wechat.tools.StaticInfo;
@@ -31,6 +33,8 @@ public class GenerateKeyUtil {
     private SalesOrderService salesOrderService;
     @Autowired
     private SysConfigService sysConfigService;
+    @Autowired
+    private ComplaintDetectInfoService complaintDetectInfoService;
 
 
     private Calendar calendar;
@@ -38,6 +42,7 @@ public class GenerateKeyUtil {
     private final static Integer orderNo = 3;
     private final static Integer bacthNo = 4;
     private final static Integer scmOrderMadeNo= 5; //
+    private final static Integer detectNo= 6; //
 
     private static SimpleDateFormat SDF_ORDERID = new SimpleDateFormat("yyMMdd");
 
@@ -45,6 +50,8 @@ public class GenerateKeyUtil {
 
     private static SimpleDateFormat SDF_BATCH = new SimpleDateFormat("yyMMdd");
 
+    private static SimpleDateFormat SDF_DETECT = new SimpleDateFormat("yyyyMM");
+
     /*订单交易号前两位,D标识一定为手动增加  */
     private final static String SD_ORDER = "D";
 
@@ -54,6 +61,8 @@ public class GenerateKeyUtil {
     private final static String SD_BATCH = "D";
     /*批量添加批次编号*/
     private final static String SC_BATCH = "C";
+    /*获取redis编号前缀*/
+    private final static String SC_DETECT = "detect_";
 
     private static char[] chars = {
             'G', 'I', 'J', 'K', 'L', 'M', 'N', 'U', 'V', 'W', 'Y', 'Z',
@@ -214,5 +223,40 @@ public class GenerateKeyUtil {
         return false;
     }
 
+    /**
+     * 生成维修编号
+     * @return
+     */
+    public String detectNumber(){
+        String year = SDF_DETECT.format(new Date());
+        String detectNum = RedisUtils.get(SC_DETECT+year);
+        Integer detectNumber;
+        if(detectNum == null){
+            //查询当前月份所有维修机器
+            Integer num = complaintDetectInfoService.getDetectNum();
+            RedisUtils.put(SC_DETECT+year,num);
+            /*RedisUtils.expire(SC_DETECT+year,new Date(System.currentTimeMillis() + 2678400000L));*/
+            detectNumber = num;
+        }else{
+            detectNumber =Integer.parseInt(detectNum)+ 1;
+            RedisUtils.put(SC_DETECT+year,detectNumber);
+        }
+        switch (detectNumber.toString().length()){
+            case 1:
+                detectNum = "000"+detectNumber;
+                break;
+            case 2:
+                detectNum = "00"+detectNumber;
+                break;
+            case 3:
+                detectNum = "0"+detectNumber;
+                break;
+            case 4:
+                detectNum = detectNumber.toString();
+                break;
+        }
+        return year+detectNum;
+    }
+
 
 }

+ 7 - 1
watero-rst-web/src/main/resources/platform.properties

@@ -127,4 +127,10 @@ JD_ORDER=1
 #NUONUO_URL=https://sandbox.jss.com.cn/openPlatform/services
 #NUONUO_ID=1
 #
-
+redis_host=120.76.99.239
+redis_port=6379
+redis_auth=AiberleRedis&*()
+redis_max_active=200
+redis_max_idle=10
+redis_max_wait=2000
+redis_timeout=300

+ 1 - 1
watero-rst-web/src/main/webapp/WEB-INF/views/cm/customer/add_customer.ftl

@@ -1,4 +1,4 @@
-f<!DOCTYPE HTML>
+<!DOCTYPE HTML>
 <html>
 <head>
     <meta charset="utf-8">

+ 92 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_QC.ftl

@@ -0,0 +1,92 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
+    <title>QC检测状态 - H-ui.filter v2.4</title>
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 8px 5px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .add-list>li{margin: 10px 0;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+    <meta name="keywords" content="${path}">
+    <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-add">
+        <div class="row cl">
+            <div class="formControls col-12 col-sm-12">
+                <strong>QC检测状态</strong>
+                <div class="radio-box">
+                    <input type="radio" id="tel-b1" name="maintenanceResults" value="1" checked >
+                    <label for="tel-b1">通过</label>
+                </div>
+                <div class="radio-box">
+                    <input type="radio" id="tel-b2" name="maintenanceResults" value="2">
+                    <label for="tel-b2">不通过</label>
+                </div>
+            </div>
+        </div>
+        <#--<div style="text-align:center;">
+            <span>如果转入生产,则生产部门同事可查看!</span>
+        </div>-->
+        <div style="text-align:center;">
+            <input type="hidden" value="${detectId!''}" id="detectId" name="detectId">
+           <button type="button" class="my-btn-submit" onclick="add();">确认提交</button>
+        </div>
+    </form>
+</article>
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+<script type="text/javascript">
+
+
+    function  add() {
+        /*var detectItemDesc = $("#detectItemDesc").val();
+        if( detectItemDesc != null){
+            if( detectItemDesc.length > 200 ){
+                layer.msg('备注长度不得大于100个字符',{icon: 5,time:1000});
+                return;
+            }
+        }*/
+
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/admin/detect/update",
+            data:$('#form-admin-add').serialize(),// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg('操作成功',{icon: 1,time:1000},function () {
+                        window.parent.location.reload();
+                        var index = parent.layer.getFrameIndex(window.name);
+                        parent.layer.close(index)
+                    });
+                } else {
+                    layer.msg('操作失败',{icon: 5,time:1000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('操作错误',{icon: 5,time:1000});
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 87 - 0
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/add_content.ftl

@@ -0,0 +1,87 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="renderer" content="webkit|ie-comp|ie-stand">
+    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
+    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+    <meta http-equiv="Cache-Control" content="no-siteapp" />
+<#include "/base/add_base.ftl">
+    <title>维修记录 - H-ui.filter v2.4</title>
+    <style>
+        .my-title{font-weight: 500;padding-left: 15px;position: relative;}
+        .my-title:after{content: '';position: absolute;left: 0;top:12%;width: 3px;height: 80%;background: #32a3d8;}
+        .my-input{padding: 8px 5px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-input-date{padding: 8px 10px;border:1px solid rgba(0,0,0,.1);width: 80%;background: url(http://s.iamberry.com/images/rili-1.png) 98.5% center no-repeat; background-size:auto 50%;}
+        .input-box{margin: 18px 0;}
+        .input-dic{float: left;margin:5px 10px 0 0;font-size: 12px;}
+        .add-list{list-style-type: none;padding: 10px;background-color: #f5f5f5;width: 60%;float: left;margin: 0;}
+        .add-list>li{margin: 10px 0;}
+        .my-textarea{padding: 5px 10px;width: 80%;border:1px solid rgba(0,0,0,.1);}
+        .my-btn-reset{padding: 10px 20px;width: 150px; background-color: #fff;color: #32a3d8;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-btn-submit{padding: 10px 20px;width: 150px; background-color: #32a3d8;color: #fff;border: 1px solid #32a3d8;cursor:pointer;margin: 10px 10px 0 10px;}
+        .my-select{border: 1px solid rgba(0,0,0,.1);padding:6px 50px 6px 15px;height: 34px; -webkit-appearance:none;appearance:none;background: url(/common/images/pts/select-11.png) right center no-repeat;background-size:auto 100%;}
+        input[type=radio]{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-1.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+        input[type=radio]:checked{-webkit-appearance:none;appearance:none;background: url(/common/images/pts/radio-2.png) center center no-repeat;background-size:auto 100%;width: 20px;height: 20px;margin-right: 10px;}
+    </style>
+    <meta name="keywords" content="${path}">
+    <meta name="description" content="H-ui.admin v3.0,是一款由国人开发的轻量级扁平化网站后台模板,完全免费开源的网站后台管理系统模版,适合中小型CMS后台系统。">
+</head>
+<body>
+<article class="page-container">
+    <form class="form form-horizontal" id="form-admin-add">
+        <div class="input-box"   style="text-align:center;">
+            <span class="input-dic spanhidth">维修记录</span>
+            <#if detectinfo??>
+                <textarea rows="5" cols="20" name="detectContent" id="detectContent" class="my-textarea" placeholder="请输入维修记录!">${detectinfo.detectContent!''}</textarea>
+            <#else>
+                <textarea rows="5" cols="20" name="detectContent" id="detectContent" class="my-textarea" placeholder="请输入维修记录!"></textarea>
+            </#if>
+        </div>
+        <#--<div style="text-align:center;">
+            <span>如果转入生产,则生产部门同事可查看!</span>
+        </div>-->
+        <div style="text-align:center;">
+            <input type="hidden" value="${detectId!''}" id="detectId" name="detectId">
+           <button type="button" class="my-btn-submit" onclick="add();">确认提交</button>
+        </div>
+    </form>
+</article>
+<script type="text/javascript" src="${path}/common/lib/My97DatePicker/4.8/WdatePicker.js"></script>
+<script type="text/javascript">
+
+
+    function  add() {
+        /*var detectItemDesc = $("#detectItemDesc").val();
+        if( detectItemDesc != null){
+            if( detectItemDesc.length > 200 ){
+                layer.msg('备注长度不得大于100个字符',{icon: 5,time:1000});
+                return;
+            }
+        }*/
+
+        $.ajax({
+            cache: true,
+            type: "POST",
+            url: "${path}/admin/detect/update",
+            data:$('#form-admin-add').serialize(),// 你的formid
+            async: false,
+            success: function(data){
+                if (data.returnCode == 200) {
+                    layer.msg('操作成功',{icon: 1,time:1000},function () {
+                        window.parent.location.reload();
+                        var index = parent.layer.getFrameIndex(window.name);
+                        parent.layer.close(index)
+                    });
+                } else {
+                    layer.msg('操作失败',{icon: 5,time:1000});
+                }
+            },
+            error: function(XmlHttpRequest, textStatus, errorThrown){
+                layer.msg('操作错误',{icon: 5,time:1000});
+            }
+        });
+    }
+</script>
+</body>
+</html>

+ 11 - 7
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/detect_list.ftl

@@ -130,7 +130,7 @@
             <thead>
             <tr class="text-c">
                 <#--<th width="100">客诉编号</th>-->
-                <th width="100">检测ID</th>
+                <th width="100">检测编号</th>
                 <th width="100">客诉处理</th>
                 <th width="100">产品</th>
                 <th width="100">当前状态</th>
@@ -158,7 +158,7 @@
                 <#list page.dataList as detect>
                 <tr>
                     <#--<td class="text-c" width="100">${detect.customerId!}</td>-->
-                    <td class="text-c" width="100">${detect.detectId!''}</td>
+                    <td class="text-c" width="100">${detect.detectNumber!''}</td>
                     <td class="text-c" width="100"><#if detect.customerId??>${detect.procTypeName!''}-${detect.procMethodName!''}</#if></td>
                     <td class="text-c" width="100">${detect.productName!'暂无产品'}(${detect.colorName!'暂无颜色'})</td>
                     <td class="text-c" width="100">
@@ -239,10 +239,14 @@
                     <td class="text-c" width="100">${(detect.detectDate?string("yyyy-MM-dd"))!'-'}</td>
                     <!-- 遍历操作 -->
                     <td class="td-manage text-c" width="120">
-                        <#--<a style="text-decoration:none" href="javascript:;" title="修改备注"
-                           onclick="add_remark('修改备注','${path}/admin/detect/update?detectId=${detect.detectId!''}','570','450');">
-                            <i class="Hui-iconfont">&#xe6df;</i>
-                        </a>-->
+                        <a style="text-decoration:none" href="javascript:;" title="维修记录"
+                           onclick="add_remark('维修记录','${path}/admin/detect/to_add_content?detectId=${detect.detectId!''}','570','450');">
+                            <i class="Hui-iconfont">维修记录</i>
+                        </a><br>
+                        <a style="text-decoration:none" href="javascript:;" title="QC检测"
+                           onclick="add_remark('QC检测','${path}/admin/detect/to_add_QC?detectId=${detect.detectId!''}','570','450');">
+                            <i class="Hui-iconfont">QC检测</i>
+                        </a><br>
                         <#--<a style="text-decoration:none" href="javascript:;" title="删除"
                            onclick="detele(${detect.detectId!''});">
                             <i class="Hui-iconfont">&#xe609;</i>
@@ -433,7 +437,7 @@
                     $("#questionTitleTd").html("");
                     $("#date").html("");
 
-                    $("#detectIdTd").html(detectInfo.detectId);
+                    $("#detectIdTd").html(detectInfo.detectNumber);
                     if(null != signclosedInfo && "" !=signclosedInfo){
                         if(signclosedInfo.signclosedSendName != null && signclosedInfo.signclosedSendName != ""){
                             $("#signclosedSendNameTd").html(signclosedInfo.signclosedSendName);

+ 60 - 3
watero-rst-web/src/main/webapp/WEB-INF/views/cm/inspection/update_complete.ftl

@@ -58,6 +58,63 @@
                 </div>
             </div>
         </div>
+        <div class="input-box" style="margin-top: 20px;">
+            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">厚膜类型:</label>
+            <div class=" col-xs-9 col-sm-9  huanhang" >
+                <div class="radio-box" style="margin: 10px 0px;">
+                    <input type="radio" id="radio-9" name="detectFilmType" value="1"  checked
+                          <#if detectInfo.detectFilmType??><#if detectInfo.detectFilmType == 1>checked</#if></#if>/><label for="radio-9">圆</label>
+                </div>
+                <div class="radio-box">
+                    <input type="radio" id="radio-10" name="detectFilmType" value="2"
+                    <#if detectInfo.detectFilmType??><#if detectInfo.detectFilmType == 2>checked</#if></#if>/><label for="radio-10">扁</label>
+                </div>
+            </div>
+        </div>
+        <div class="input-box" style="margin-top: 20px;">
+            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">浮子类型:</label>
+            <div class=" col-xs-9 col-sm-9  huanhang" >
+                <div class="radio-box" style="margin: 10px 0px;">
+                    <input type="radio" id="radio-11" name="detectFloatType" value="1"  checked
+                          <#if detectInfo.detectFloatType??><#if detectInfo.detectFloatType == 1>checked</#if></#if>/><label for="radio-11">长</label>
+                </div>
+                <div class="radio-box">
+                    <input type="radio" id="radio-12" name="detectFloatType" value="2"
+                    <#if detectInfo.detectFloatType??><#if detectInfo.detectFloatType == 2>checked</#if></#if>/><label for="radio-12">短</label>
+                </div>
+            </div>
+        </div>
+        <div class="input-box" style="margin-top: 20px;">
+            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">是否翻新机:</label>
+            <div class=" col-xs-9 col-sm-9  huanhang" >
+                <div class="radio-box" style="margin: 10px 0px;">
+                    <input type="radio" id="radio-13" name="detectIsRefurbishing" value="1"  checked
+                          <#if detectInfo.detectIsRefurbishing??><#if detectInfo.detectIsRefurbishing == 1>checked</#if></#if>/><label for="radio-13">是</label>
+                </div>
+                <div class="radio-box">
+                    <input type="radio" id="radio-14" name="detectIsRefurbishing" value="2"
+                    <#if detectInfo.detectIsRefurbishing??><#if detectInfo.detectIsRefurbishing == 2>checked</#if></#if>/><label for="radio-14">否</label>
+                </div>
+            </div>
+        </div>
+        <div class="input-box">
+            <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">生产月份:</label>
+            <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -14px;">
+                <input class="my-input" style="width: 90%;" type="text" value="" name="detectProduction" id="detectProduction" onClick="WdatePicker({skin:'whyGreen',maxDate:'%y-%M',dateFmt: 'yyyy-MM'})" placeholder="请选择月份" readonly="readonly"/>
+            </div>
+        </div>
+        <div class="input-box" >
+            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">机身条码:</label>
+            <div class="formControls col-xs-9 col-sm-9 skin-minimal huanhang" style="margin: 10px 0px;">
+                <input class="my-input" style="width: 90%;" type="text" value="${detectInfo.detectFuselageBarcode!''}" name="detectFuselageBarcode" id="detectFuselageBarcode"  placeholder="请输入机身条码"/>
+            </div>
+        </div>
+        <div class="input-box" >
+            <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">版本号:</label>
+            <div class="formControls col-xs-9 col-sm-9 skin-minimal huanhang" style="margin: 10px 0px;">
+                <input class="my-input" style="width: 90%;" type="text" value="${detectInfo.detectVersionNumber!''}" name="detectVersionNumber" id="detectVersionNumber"  placeholder="请输入版本号"/>
+            </div>
+        </div>
        <div class="input-box" >
             <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">检测现象:</label>
             <div class="formControls col-xs-9 col-sm-9 skin-minimal huanhang" style="margin: 10px 0px;">
@@ -100,14 +157,14 @@
                 <input class="my-input" style="width: 90%;" type="text" value="${detectInfo.detectNalysis!''}" name="detectNalysis" id="detectNalysis"  placeholder="请输入原因分析"/>
             </div>
         </div>
-        <div class="input-box">
+    <#--    <div class="input-box">
             <label class="col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">检测内容:</label>
             <div class="formControls col-xs-9 col-sm-9 skin-minimal huanhang" style="margin: 10px 0px;">
-                <#--<textarea style="margin-left: 0%;width: 83%;" rows="2" cols="20" name="detectContent" id="detectContent" class="my-textarea" placeholder="请输入检测内容">${detectInfo.detectContent!''}</textarea>-->
+                &lt;#&ndash;<textarea style="margin-left: 0%;width: 83%;" rows="2" cols="20" name="detectContent" id="detectContent" class="my-textarea" placeholder="请输入检测内容">${detectInfo.detectContent!''}</textarea>&ndash;&gt;
                 <input class="my-input" style="width: 90%;" type="text" value="${detectInfo.detectContent!''}" name="detectContent" id="detectContent"  placeholder="请输入检测内容"/>
 
             </div>
-        </div>
+        </div>-->
         <div class="input-box">
             <label class="form-label col-3 col-sm-3 huanhang" style="text-align: right;margin: 10px 0px;">维修报价:</label>
             <div class="formControls col-9 col-sm-9 text-c huanhang" style="margin-left: -4%;margin: 10px 0px 10px -14px;">