Selaa lähdekoodia

Merge branch 'feature-wcz' of lift-manager/lift-server into develop

wucizhong 5 vuotta sitten
vanhempi
commit
ecff4c650a

+ 1 - 1
lift-business-service/src/main/resources/mapper/lift/LiftMapper.xml

@@ -236,7 +236,7 @@
         LEFT JOIN project pr ON plr.project_id = pr.id
         LEFT JOIN region re ON re.id = pr.region_id
         LEFT JOIN user_info ui ON re.user_id = ui.user_id
-        LEFT JOIN annual_inspection ai ON ai.lift_id = li.id AND ai.mt_company_id = plr.mt_company_id
+        LEFT JOIN annual_inspection ai ON ai.lift_id = li.id AND ai.mt_company_id = plr.mt_company_id AND ai.plan_date = li.annual_inspection_date
         WHERE
             li.annual_inspection_date <= date_add(curdate(), INTERVAL #{days} DAY)
         AND li.annual_inspection_date >= curdate() AND isnull(ai.id)

+ 16 - 14
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/custom/controller/PropertyCompanyController.java

@@ -77,34 +77,34 @@ public class PropertyCompanyController {
     @PostMapping("/update")
     @Verifier(fields = {"id"})
     public RestResponse update(@Ver @RequestBody PropertyCompany propertyCompany) {
-        if (propertyCompanyService.updateById(propertyCompany)) {
-            return RestResponse.success(null, "成功");
-        }
-        return RestResponse.fail();
+        boolean result = propertyCompanyService.updateById(propertyCompany);
+        return RestResponse.success(result);
     }
 
     /**
      * 删除客户
      *
-     * @param propertyCompany [客户id]
+     * @param req [客户id]
      * @return cn.com.xwy.boot.web.dto.RestResponse
      * @since 2019/11/27 11:46
      */
     @PostMapping("/delete")
-    public RestResponse delete(@RequestBody PropertyCompany propertyCompany) {
-        return propertyCompanyService.delete(propertyCompany.getId());
+    @Verifier(fields = {"id"})
+    public RestResponse delete(@Ver @RequestBody PropertyCompanyReq req) {
+        return propertyCompanyService.delete(req.getId());
     }
 
     /**
      * 项目模块用,根据维保公司id查询客户公司列表
-     * @param propertyCompany [mtCompanyId] 维保公司id
+     * @param req [mtCompanyId] 维保公司id
      * @return 客户公司列表
      */
     @PostMapping("/project/customs")
-    public RestResponse customs(@RequestBody PropertyCompany propertyCompany) {
+    @Verifier(fields = {"mtCompanyId"})
+    public RestResponse customs(@Ver @RequestBody PropertyCompanyReq req) {
         List<PropertyCompany> propertyCompanies = propertyCompanyService.list(new QueryWrapper<PropertyCompany>()
                 .select("id", "name")
-                .eq("mt_company_id", propertyCompany.getMtCompanyId())
+                .eq("mt_company_id", req.getMtCompanyId())
                 .ne("status", 0));
         if (propertyCompanies.isEmpty()) {
             return RestResponse.success();
@@ -120,14 +120,16 @@ public class PropertyCompanyController {
     @PostMapping("/project/custom/add")
     public RestResponse customAdd(@RequestBody PropertyCompany propertyCompany) {
         propertyCompany.setStatus(2);
-        if (propertyCompanyService.save(propertyCompany)) {
-            return RestResponse.success(propertyCompany.getId(), "成功");
+        boolean result = propertyCompanyService.save(propertyCompany);
+        if (result) {
+            return RestResponse.success(propertyCompany.getId());
         }
         return RestResponse.fail();
     }
 
     @PostMapping("/export")
-    public void export(@RequestBody PropertyCompany propertyCompany, HttpServletResponse response) {
-        propertyCompanyService.export(propertyCompany, response);
+    @Verifier(fields = {"mtCompanyId"})
+    public void export(@Ver @RequestBody PropertyCompanyReq req, HttpServletResponse response) {
+        propertyCompanyService.export(req, response);
     }
 }

+ 1 - 3
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/custom/dao/mapper/PropertyCompanyMapper.java

@@ -5,8 +5,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
-import java.util.Map;
-
 /**
  * <p>
  * (甲方公司)客户表 Mapper 接口
@@ -17,5 +15,5 @@ import java.util.Map;
  */
 public interface PropertyCompanyMapper extends BaseMapper<PropertyCompany> {
     @Select("select count(id) count from project where pp_company_id=#{ppCompanyId}")
-    Map<String, Long> selectProjectCountForPPCompanyId(@Param("ppCompanyId") Long ppCompanyId);
+    long selectProjectCountForPPCompanyId(@Param("ppCompanyId") Long ppCompanyId);
 }

+ 23 - 14
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/custom/service/impl/PropertyCompanyServiceImpl.java

@@ -1,6 +1,7 @@
 package cn.com.ty.lift.enterprise.custom.service.impl;
 
 import cn.com.ty.lift.enterprise.custom.dao.entity.PropertyCompany;
+import cn.com.ty.lift.enterprise.custom.dao.entity.PropertyContact;
 import cn.com.ty.lift.enterprise.custom.dao.entity.model.PropertyCompanyAndPropertyContactReq;
 import cn.com.ty.lift.enterprise.custom.dao.entity.model.PropertyCompanyReq;
 import cn.com.ty.lift.enterprise.custom.dao.mapper.PropertyCompanyMapper;
@@ -11,11 +12,11 @@ import cn.hutool.poi.excel.ExcelUtil;
 import cn.hutool.poi.excel.ExcelWriter;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
-import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.interceptor.TransactionAspectSupport;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletResponse;
@@ -23,7 +24,6 @@ import java.io.IOException;
 import java.time.LocalDate;
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 /**
  * <p>
@@ -57,20 +57,29 @@ public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMappe
         if (records.getRecords().isEmpty()) {
             return RestResponse.success();
         }
-        return RestResponse.success(records, "成功");
+        return RestResponse.success(records);
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public RestResponse saveAll(PropertyCompanyAndPropertyContactReq req) {
-        long id = IdWorker.getId();
-        req.getPropertyCompany().setId(id);
-        req.getPropertyContacts().forEach(contact -> contact.setPpCompanyId(id));
-        if (this.save(req.getPropertyCompany()) && propertyContactService.saveBatch(req.getPropertyContacts())) {
-            return RestResponse.success(null, "成功");
+        PropertyCompany propertyCompany = req.getPropertyCompany();
+        boolean ppc = save(propertyCompany);
+        if (!ppc) {
+            return RestResponse.fail("保存甲方公司失败");
+        }
+        List<PropertyContact> propertyContacts = req.getPropertyContacts();
+        propertyContacts.forEach(contact -> contact.setPpCompanyId(propertyCompany.getId()));
+        boolean ppt = propertyContactService.saveBatch(propertyContacts);
+        if (ppt) {
+            return RestResponse.success(true);
+        } else {
+            //强制手动事务回滚
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail("保存甲方联系人失败");
         }
-        return RestResponse.fail();
     }
 
-    @Transactional
+    @Transactional(rollbackFor = Exception.class)
     public RestResponse delete(Long id) {
         PropertyCompany byId = this.getById(id);
         if (null == byId) {
@@ -79,8 +88,8 @@ public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMappe
         if (byId.getStatus() == 2) {
             return RestResponse.success(null, "有正在服务的关联项目,无法删除");
         }
-        Map<String, Long> count = this.baseMapper.selectProjectCountForPPCompanyId(byId.getId());
-        if (count != null && count.get("count") > 0L) {
+        long count = this.baseMapper.selectProjectCountForPPCompanyId(byId.getId());
+        if (count > 0) {
             byId.setStatus(2);
             this.updateById(byId);
             return RestResponse.success(null, "有正在服务的关联项目,无法删除");
@@ -92,10 +101,10 @@ public class PropertyCompanyServiceImpl extends ServiceImpl<PropertyCompanyMappe
         return RestResponse.fail();
     }
 
-    public void export(PropertyCompany propertyCompany, HttpServletResponse response) {
+    public void export(PropertyCompanyReq req, HttpServletResponse response) {
         List<PropertyCompany> companies = this.list(new QueryWrapper<PropertyCompany>()
                 .select("id", "name", "mailing_address", "status")
-                .eq("mt_company_id", propertyCompany.getMtCompanyId())
+                .eq("mt_company_id", req.getMtCompanyId())
                 .ne("status", 0));
         List<List<?>> rows = new ArrayList<>();
         //设置列头