Browse Source

Merge remote-tracking branch 'origin/master'

LeeXin 3 years ago
parent
commit
8ed37ad432

+ 31 - 14
src/main/java/cn/fastfun/controller/api/ApiAppDeviceController.java

@@ -7,6 +7,7 @@ import cn.fastfun.service.AppDeviceService;
 import cn.fastfun.service.SysExcelFieldService;
 import cn.fastfun.service.entity.AppDevice;
 import cn.fastfun.service.entity.Product;
+import cn.fastfun.util.DateUtils;
 import cn.fastfun.util.VerifyUtil;
 import cn.fastfun.util.ObjectUtil;
 import com.bridge.dto.ApiDTO;
@@ -17,7 +18,10 @@ import com.bridge.service.JpaService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springframework.data.domain.Page;
+import org.springframework.util.StringUtils;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -31,6 +35,7 @@ import java.util.Map;
 /**
  * @author Bridge AutoGen
  */
+@Slf4j
 @Api(tags = {"设备信息"})
 @RestController
 @RequestMapping("/api/v1/appdevice")
@@ -51,20 +56,20 @@ public class ApiAppDeviceController {
         // 此处定义的sn实际上是指的表中的imei,也就是实体类的属性imei
         String checkSnResult = VerifyUtil.checkSn(entity.getImei());
         List<AppDevice> checkDuplicatedResultOnImei = appDeviceService.findAll(
-                QueryParamExp.eq("imei",entity.getImei()));
-        if(!checkDuplicatedResultOnImei.isEmpty()){
-            return ApiDTO.error(500,"该imei已经被录入",checkDuplicatedResultOnImei);
+                QueryParamExp.eq("imei", entity.getImei()));
+        if (!checkDuplicatedResultOnImei.isEmpty()) {
+            return ApiDTO.error(500, "该imei已经被录入", checkDuplicatedResultOnImei);
         }
         List<AppDevice> checkDuplicatedResultOnSn = appDeviceService.findAll(
-                QueryParamExp.eq("sn",entity.getSn()));
-        if(!checkDuplicatedResultOnSn.isEmpty()){
-            return ApiDTO.error(500,"该sn已经被录入",checkDuplicatedResultOnSn);
+                QueryParamExp.eq("sn", entity.getSn()));
+        if (!checkDuplicatedResultOnSn.isEmpty()) {
+            return ApiDTO.error(500, "该sn已经被录入", checkDuplicatedResultOnSn);
         }
-        if(checkSnResult.equals("passed")){
+        if (checkSnResult.equals("passed")) {
             AppDevice tmp = appDeviceService.save(entity);
-            return ApiDTO.ok("保存成功",tmp);}
-        else{
-            return ApiDTO.error(500,checkSnResult);
+            return ApiDTO.ok("保存成功", tmp);
+        } else {
+            return ApiDTO.error(500, checkSnResult);
         }
     }
 
@@ -73,7 +78,7 @@ public class ApiAppDeviceController {
     @RequestMapping(value = "get", method = RequestMethod.POST)
     public ApiDTO get(@RequestBody @ApiParam(name = "批次编号", required = true) IdParam param) {
         List<AppDevice> appDevicesOnOneBatch = appDeviceService.findAll(
-                QueryParamExp.eq("batchNum",param.getId()));
+                QueryParamExp.eq("batchNum", param.getId()));
         return ApiDTO.ok("查询成功!", appDevicesOnOneBatch);
     }
 
@@ -87,7 +92,10 @@ public class ApiAppDeviceController {
     @ApiOperation(value = "分页搜索")
     @RequestMapping(value = "pageQuery", method = RequestMethod.POST)
     public ApiPageDTO pageQuery(@RequestBody DeviceQueryParam param) {
-        return new ApiPageDTO(null, appDeviceService.findByParam(param));
+
+        Page<AppDevice> devicePage = appDeviceService.findByParam(param);
+        devicePage.getContent().forEach(p -> p.setInStorage("未入库"));
+        return new ApiPageDTO(null, devicePage);
     }
 
     @ApiOperation(value = "导入模板下载")
@@ -114,8 +122,13 @@ public class ApiAppDeviceController {
     @ApiOperation(value = "设备批次分页搜索")
     @RequestMapping(value = "batchNum/pageQuery", method = RequestMethod.POST)
     public ApiPageDTO batchNumPageQuery(@RequestBody DeviceBathQueryParam param) {
-        StringBuffer sql = new StringBuffer("select t.batch_num,t.sn,t.deliver_time,count(0) as total from app_device t");
-        sql.append(" group by t.batch_num");
+        StringBuffer sql = new StringBuffer("select t1.batch_num,t1.sn,t1.deliver_time,count(0) as total,t1.add_time,t1.deliver_addr from app_device t1");
+        sql.append(" group by t1.batch_num");
+        if (!StringUtils.isEmpty(param.getOrderBy())) {
+            sql.append(param.getOrderBy());
+        }
+        log.info("SQL: {}", sql.toString());
+
 
         ApiPageDTO page = appDeviceService.getListBySQL(sql.toString(), new HashMap<>(), param);
         // 组装数据
@@ -124,6 +137,10 @@ public class ApiAppDeviceController {
             DeviceAttrDTO attr = appDeviceService.sn2Attr(ObjectUtil.obj2String(p.get("sn")));
             p.put("type_title", attr.getTypeTitle());
             p.put("pack_title", attr.getPackTitle());
+            p.put("deliver_time", DateUtils.toString(ObjectUtil.obj2Date(p.get("deliver_time")), DateUtils.YMD));
+            p.put("add_time", DateUtils.toString(ObjectUtil.obj2Date(p.get("add_time")), DateUtils.YMDHMS));
+            p.put("in_storage", 0);
+            p.put("operator", "admin");
         }
         page.setData(list);
         return page;

+ 3 - 0
src/main/java/cn/fastfun/controller/dto/DeviceAttrDTO.java

@@ -18,6 +18,9 @@ public class DeviceAttrDTO {
     // pack厂
     private String pack;
 
+    // 收货地
+    private String receivedPlace;
+
 
     // 显示名称
     private String typeTitle;

+ 8 - 0
src/main/java/cn/fastfun/controller/param/DeviceQueryParam.java

@@ -2,8 +2,13 @@ package cn.fastfun.controller.param;
 
 import com.bridge.dto.QueryParam;
 import com.bridge.dto.QueryParamExp;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
 import org.springframework.util.StringUtils;
 
+@Setter
+@Getter
 public class DeviceQueryParam extends QueryParam {
 
     public void setSn(String sn) {
@@ -21,4 +26,7 @@ public class DeviceQueryParam extends QueryParam {
             addParam(QueryParamExp.like("batchNum", "%".concat(batchNum).concat("%")));
     }
 
+    @ApiModelProperty(value = "入库状态", name = "inStorage", example = "0:未入库,1:已入库")
+    private Integer inStorage;
+
 }

+ 1 - 1
src/main/java/cn/fastfun/controller/param/LoginParam.java

@@ -15,7 +15,7 @@ public class LoginParam {
     @Size(min = 1, max = 20, message = "账号格式错误")
     @NotBlank(message = "账号不能为空!")
     @JsonProperty("username")
-    @ApiModelProperty(value = "账号", name = "userName", example = "Byswx")
+    @ApiModelProperty(value = "账号", name = "userName", example = "admin")
     private String userName;
 
     @Size(min = 1, max = 36, message = "密码格式错误")

+ 25 - 3
src/main/java/cn/fastfun/service/entity/AppDevice.java

@@ -1,6 +1,7 @@
 package cn.fastfun.service.entity;
 
 
+import cn.fastfun.service.ProductService;
 import cn.fastfun.util.ObjectUtil;
 import com.bridge.entity.DateEntity;
 import com.fasterxml.jackson.annotation.JsonFormat;
@@ -10,9 +11,11 @@ import lombok.NoArgsConstructor;
 import lombok.Setter;
 import org.springframework.format.annotation.DateTimeFormat;
 
+import javax.annotation.Resource;
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.Table;
+import javax.persistence.Transient;
 import java.util.Date;
 import java.util.Map;
 
@@ -26,17 +29,14 @@ public class AppDevice extends DateEntity {
 
     private static final long serialVersionUID = 1L;
 
-
     @ApiModelProperty(value = "SN号", name = "sn", required = true)
     @Column(name = "sn")
     private String sn;
 
-
     @ApiModelProperty(value = "IMEI", name = "imei", required = true)
     @Column(name = "imei")
     private String imei;
 
-
     @ApiModelProperty(value = "批次号", name = "batchNum", required = true)
     @Column(name = "batch_num")
     private String batchNum;
@@ -65,6 +65,28 @@ public class AppDevice extends DateEntity {
         setSn(ObjectUtil.obj2String(param.get("sn")));
         setImei(ObjectUtil.obj2String(param.get("imei")));
         setDeliverTime(ObjectUtil.obj2Date(param.get("deliverTime")));
+        setReceivedPlace(ObjectUtil.obj2String(param.get("receivedPlace")));
         setStatus(1);
     }
+
+    @Transient
+    private String inStorage;
+
+    // 类型
+    public String getType() {
+        return sn.substring(0, 1);
+    }
+
+    public String getPack() {
+        return sn.substring(1, 3);
+    }
+
+    // 显示名称
+    private String typeTitle = "";
+
+    private String packTitle = "";
+
+    private String specTitle = "";
+
+    private String expandTitle = "";
 }

+ 6 - 3
src/main/java/cn/fastfun/service/impl/AppDeviceServiceImp.java

@@ -5,11 +5,9 @@ import cn.fastfun.service.AppDeviceService;
 import cn.fastfun.service.ProductService;
 import cn.fastfun.service.entity.AppDevice;
 import cn.fastfun.service.entity.Product;
-import cn.fastfun.service.entity.SysDict;
 import cn.fastfun.service.repository.AppDeviceRepository;
 import com.bridge.dto.QueryParamExp;
 import com.bridge.exception.ApiRuntimeException;
-import com.bridge.service.JpaService;
 import com.bridge.service.impl.JpaServiceImp;
 import org.springframework.stereotype.Service;
 
@@ -39,11 +37,16 @@ public class AppDeviceServiceImp extends JpaServiceImp<AppDevice, String> implem
         for (Map<String, Object> p : list) {
             AppDevice device = new AppDevice(p);
             // 数据效验
-            if (null == diffAttrDTO) diffAttrDTO = new DeviceAttrDTO(device.getBatchNum(), device.getSn());
+            if (null == diffAttrDTO) {
+                diffAttrDTO = new DeviceAttrDTO(device.getBatchNum(), device.getSn());
+                diffAttrDTO.setReceivedPlace(device.getReceivedPlace());
+            }
             DeviceAttrDTO temp = new DeviceAttrDTO(device.getBatchNum(), device.getSn());
+            temp.setReceivedPlace(device.getReceivedPlace());
             if (!temp.getBatchNum().equals(diffAttrDTO.getBatchNum())) new ApiRuntimeException("存在不同的批次号");
             if (!temp.getPack().equals(diffAttrDTO.getPack())) new ApiRuntimeException("存在不同的PACK厂");
             if (!temp.getType().equals(diffAttrDTO.getType())) new ApiRuntimeException("存在不同的电池类型");
+            if (!temp.getReceivedPlace().equals(diffAttrDTO.getReceivedPlace())) new ApiRuntimeException("存在不同的收货地");
             devices.add(device);
         }
         save(devices);