Browse Source

1.增加物料删除校验
2.修改企业信息返回结果

chenw 7 years ago
parent
commit
ed948e3194

+ 1 - 0
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -25,6 +25,7 @@ public enum BizExceptionCode implements BaseExceptionCode {
     BIZ_AUDITED(79303,"只能审核未审核的单据"),
     BIZ_UNAUDITED(79304,"只能反审核已审核的单据"),
     BIZ_DELETE(79305,"只能删除未审核的单据"),
+    BIZ_RELDELETE(79305,"存在关联单据,不允许删除"),
     NO_OPRATIONDATA(79400,"无可操作单据"),
     BOM_SAVE(79401, "产品编号+版本号已存在"),
     REPEAT_NAME(79501, "名称重复"),

+ 1 - 2
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/controller/EnterpriseController.java

@@ -17,8 +17,7 @@ public class EnterpriseController {
 
     @GetMapping("/read")
     public Result getList(){
-        enterpriseService.findByPrimaryKey(BaseContextHolder.getCompanyId());
-        return Result.success();
+        return Result.success(enterpriseService.findByPrimaryKey(BaseContextHolder.getCompanyId()));
     }
 
     @PostMapping("/save")

+ 1 - 1
applications/document/document-server/src/main/java/com/usoftchina/saas/document/controller/ProductController.java

@@ -57,7 +57,7 @@ public class ProductController {
 
     @PostMapping("/delete/{id}")
     public Result delete(@PathVariable("id") Long id){
-        productService.removeByPrimaryKey(id);
+        productService.deleteByPrimaryKey(id);
         return Result.success();
     }
 

+ 9 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/mapper/ProductMapper.java

@@ -24,4 +24,13 @@ public interface ProductMapper extends CommonBaseMapper<Product> {
     String getCodeById(@Param("id") Long id);
 
     List<ProductReserveCostDTO> selectReserveCost(@Param("con") String con, @Param("companyId") Long companyId);
+
+    int getCountFromPurc(@Param("id") Long id, @Param("companyId") Long companyId);
+
+    int getCountFromSale(@Param("id") Long id, @Param("companyId") Long companyId);
+
+    int getCountFromBom(@Param("id") Long id, @Param("companyId") Long companyId);
+
+    int getCountFromProdIO(@Param("id") Long id, @Param("companyId") Long companyId);
+
 }

+ 7 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/ProductService.java

@@ -81,6 +81,13 @@ public interface ProductService extends CommonBaseService<ProductMapper, Product
      */
     String batchOpen(BatchDealBaseDTO baseDTOs);
 
+    /**
+     * 删除
+     * @param id
+     * @return
+     */
+    boolean deleteByPrimaryKey(Long id);
+
     /**
      * 批量删除
      * @param baseDTOs

+ 32 - 0
applications/document/document-server/src/main/java/com/usoftchina/saas/document/service/impl/ProductServiceImpl.java

@@ -168,6 +168,38 @@ public class ProductServiceImpl extends CommonBaseServiceImpl<ProductMapper, Pro
         return errorMsg.toString();
     }
 
+    @Override
+    public boolean deleteByPrimaryKey(Long id) {
+        //校验物料是否已经在使用状态(采购单、销售单、BOM、出入库单)
+        validEnableDel(id);
+        return false;
+    }
+
+    private void validEnableDel(Long id) {
+        int count = 0;
+        //采购
+        count = getMapper().getCountFromPurc(id, BaseContextHolder.getCompanyId());
+        if (count > 0){
+            throw new BizException(BizExceptionCode.BIZ_RELDELETE);
+        }
+        //销售
+        count = getMapper().getCountFromSale(id, BaseContextHolder.getCompanyId());
+        if (count > 0){
+            throw new BizException(BizExceptionCode.BIZ_RELDELETE);
+        }
+        //BOM
+        count = getMapper().getCountFromBom(id, BaseContextHolder.getCompanyId());
+        if (count > 0){
+            throw new BizException(BizExceptionCode.BIZ_RELDELETE);
+        }
+        //出入库
+        count = getMapper().getCountFromProdIO(id, BaseContextHolder.getCompanyId());
+        if (count > 0){
+            throw new BizException(BizExceptionCode.BIZ_RELDELETE);
+        }
+        //batch
+    }
+
     @Override
     public boolean batchDelete(BatchDealBaseDTO baseDTOs) {
         for(DocBaseDTO docBaseDTO : baseDTOs.getBaseDTOs()){

+ 14 - 0
applications/document/document-server/src/main/resources/mapper/ProductMapper.xml

@@ -489,5 +489,19 @@
         </where>
         ORDER BY PR_ID DESC
     </select>
+    <select id="getCountFromPurc" resultType="int">
+        SELECT COUNT(*) FROM PURCHASEDETAIL
+        WHERE PD_PRODID = #{id} AND COMPANYID=#{companyId}
+    </select>
+    <select id="getCountFromSale" resultType="int">
+        SELECT COUNT(*) FROM SALEDETAIL
+        WHERE SD_PRODID = #{id} AND COMPANYID=#{companyId}
+    </select>
+    <select id="getCountFromBom" resultType="int">
+        SELECT COUNT(*) FROM BOMDETAIL WHERE BD_SONID=#{id} AND COMPANYID=#{companyId}
+    </select>
+    <select id="getCountFromProdIO" resultType="int">
+        SELECT COUNT(*) FROM PRODIODETAIL WHERE PD_PRODID=#{id} AND COMPANYID=#{companyId}
+    </select>
 </mapper>