Browse Source

Merge branch 'dev' of ssh://10.10.100.21/source/saas-platform into dev

chenw 7 years ago
parent
commit
86c181dfeb

+ 4 - 2
applications/commons/commons-dto/src/main/java/com/usoftchina/saas/commons/exception/BizExceptionCode.java

@@ -6,8 +6,10 @@ public enum BizExceptionCode implements BaseExceptionCode {
 
 
 
 
     // 业务异常
     // 业务异常
-    MAX_NUM_OUTOF_BOUNDS(52000, "流水号长度大于最大设定的长度");
-
+    MAX_NUM_OUTOF_BOUNDS(52000, "流水号长度大于最大设定的长度"),
+    NULL_CODE(53000, "单据编号为空"),
+    NULL_CODERULE(54000, "单据规则不存在,请先确定单据生成规则"),
+    CODE_EXISTS(55000, "单据编号已存在");
 
 
     private int code;
     private int code;
     private String message;
     private String message;

+ 10 - 5
applications/commons/commons-server/src/main/java/com/usoftchina/saas/commons/service/impl/MaxnumberServiceImpl.java

@@ -99,9 +99,6 @@ public class MaxnumberServiceImpl extends CommonBaseServiceImpl<MaxnumbersMapper
     */
     */
     @Override
     @Override
     public String pushMaxnubmer(Integer count, String code, String caller) {
     public String pushMaxnubmer(Integer count, String code, String caller) {
-        if (count > 0) {
-            return getMaxnumner(caller, true);
-        }
         //单号
         //单号
         String maxcode =  code;
         String maxcode =  code;
         //公司Id
         //公司Id
@@ -115,13 +112,21 @@ public class MaxnumberServiceImpl extends CommonBaseServiceImpl<MaxnumbersMapper
         //查询编号规则
         //查询编号规则
         Maxnumbers maxnumbers = getMaxnumbers(caller);
         Maxnumbers maxnumbers = getMaxnumbers(caller);
         if (null == maxnumbers) {
         if (null == maxnumbers) {
-            return maxcode;
+            throw new BizException(BizExceptionCode.NULL_CODERULE);
         }
         }
         rulecode = getRulecode(maxnumbers);
         rulecode = getRulecode(maxnumbers);
-        //编号与前缀+日期不匹配,直接返回
+        //编号与前缀+日期不匹配,不跟据规格的编号
         if (maxcode.indexOf(rulecode) != 0) {
         if (maxcode.indexOf(rulecode) != 0) {
+            if (count > 0) {
+                throw new BizException(BizExceptionCode.CODE_EXISTS);
+            }
             return maxcode;
             return maxcode;
         }
         }
+        //与规则匹配的编号
+        if (count > 0) {
+            return getMaxnumner(caller, true);
+        }
+
         //查询从表是否存在该规则数据
         //查询从表是否存在该规则数据
         Maxnumbersdetail detail = getMaxDetail(caller, rulecode);
         Maxnumbersdetail detail = getMaxDetail(caller, rulecode);
         if (null != detail) {
         if (null != detail) {

+ 3 - 1
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/mapper/PurchaseMapper.java

@@ -4,6 +4,8 @@ import com.usoftchina.saas.base.mapper.CommonBaseMapper;
 
 
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.purchase.po.Purchase;
 import com.usoftchina.saas.purchase.po.Purchase;
+import org.apache.ibatis.annotations.Param;
+
 import java.util.List;
 import java.util.List;
 
 
 public interface PurchaseMapper extends CommonBaseMapper<Purchase>{
 public interface PurchaseMapper extends CommonBaseMapper<Purchase>{
@@ -23,5 +25,5 @@ public interface PurchaseMapper extends CommonBaseMapper<Purchase>{
 
 
     Integer validateCodeWhenInsert(String code);
     Integer validateCodeWhenInsert(String code);
 
 
-    Integer validateCodeWhenUpdate(String code, Long id);
+    Integer validateCodeWhenUpdate(@Param("code") String code,@Param("id") Long id);
 }
 }

+ 27 - 23
applications/purchase/purchase-server/src/main/java/com/usoftchina/saas/purchase/service/impl/PurchaseServiceImpl.java

@@ -10,6 +10,7 @@ import com.usoftchina.saas.commons.api.MaxnumberService;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.BatchDealBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocBaseDTO;
 import com.usoftchina.saas.commons.dto.DocSavedDTO;
 import com.usoftchina.saas.commons.dto.DocSavedDTO;
+import com.usoftchina.saas.commons.exception.BizExceptionCode;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.context.BaseContextHolder;
 import com.usoftchina.saas.document.api.ProductApi;
 import com.usoftchina.saas.document.api.ProductApi;
 import com.usoftchina.saas.exception.BizException;
 import com.usoftchina.saas.exception.BizException;
@@ -43,8 +44,8 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     private PurchasedetailMapper purchasedetailMapper;
     private PurchasedetailMapper purchasedetailMapper;
     @Autowired
     @Autowired
     private PurchaseListMapper purchaseListMapper;
     private PurchaseListMapper purchaseListMapper;
-    @Autowired
-    private ProductApi productApi;
+   /* @Autowired
+    private ProductApi productApi;*/
     @Autowired
     @Autowired
     private MaxnumberService maxnumberService;
     private MaxnumberService maxnumberService;
     @Autowired
     @Autowired
@@ -112,48 +113,48 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         purchase.setPu_code(pu_code);
         purchase.setPu_code(pu_code);
         saveDTO.setCode(pu_code);
         saveDTO.setCode(pu_code);
         //判断更新与保存动作
         //判断更新与保存动作
-        if (!StringUtils.isEmpty(pu_id)) {
-            //更新主表
-            purchaseMapper.updateByPrimaryKeySelective(purchase);
+        if (StringUtils.isEmpty(pu_id) || "0".equals(pu_id.toString())) {
+            //插入操作
+            purchaseMapper.insertSelective(purchase);
+            pu_id = purchase.getId();
             //添加从表传输对象
             //添加从表传输对象
             for (PurchaseDetailDTO item : items) {
             for (PurchaseDetailDTO item : items) {
                 PurchaseDetail detail = BeanMapper.map(item, PurchaseDetail.class);
                 PurchaseDetail detail = BeanMapper.map(item, PurchaseDetail.class);
                 detail.setPd_puid(pu_id);
                 detail.setPd_puid(pu_id);
                 detail.setPd_code(pu_code);
                 detail.setPd_code(pu_code);
-                if (!StringUtils.isEmpty(detail.getId())) {
-                    updateDetails.add(detail);
-                } else {
-                    insertDetails.add(detail);
-                }
+                insertDetails.add(detail);
             }
             }
             //插入从表
             //插入从表
             if (insertDetails.size() > 0) {
             if (insertDetails.size() > 0) {
                 purchasedetailMapper.batchInsert(insertDetails);
                 purchasedetailMapper.batchInsert(insertDetails);
             }
             }
-            //更新从表
-            if (updateDetails.size() > 0) {
-                purchasedetailMapper.batchUpdate(updateDetails);
-            }
             saveDTO.setId(pu_id);
             saveDTO.setId(pu_id);
             return saveDTO;
             return saveDTO;
         }
         }
-
-        //插入操作
-        purchaseMapper.insertSelective(purchase);
-        pu_id = purchase.getId();
+        //更新操作
+        purchaseMapper.updateByPrimaryKeySelective(purchase);
         //添加从表传输对象
         //添加从表传输对象
         for (PurchaseDetailDTO item : items) {
         for (PurchaseDetailDTO item : items) {
             PurchaseDetail detail = BeanMapper.map(item, PurchaseDetail.class);
             PurchaseDetail detail = BeanMapper.map(item, PurchaseDetail.class);
             detail.setPd_puid(pu_id);
             detail.setPd_puid(pu_id);
             detail.setPd_code(pu_code);
             detail.setPd_code(pu_code);
-            insertDetails.add(detail);
+            if (StringUtils.isEmpty(detail.getId()) || "0".equals(detail.getId().toString())) {
+                insertDetails.add(detail);
+            } else {
+                updateDetails.add(detail);
+            }
         }
         }
         //插入从表
         //插入从表
         if (insertDetails.size() > 0) {
         if (insertDetails.size() > 0) {
             purchasedetailMapper.batchInsert(insertDetails);
             purchasedetailMapper.batchInsert(insertDetails);
         }
         }
+        //更新从表
+        if (updateDetails.size() > 0) {
+            purchasedetailMapper.batchUpdate(updateDetails);
+        }
         saveDTO.setId(pu_id);
         saveDTO.setId(pu_id);
         return saveDTO;
         return saveDTO;
+
     }
     }
 
 
     @Override
     @Override
@@ -172,7 +173,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         DocSavedDTO savedDTO = new DocSavedDTO();
         DocSavedDTO savedDTO = new DocSavedDTO();
         if (null != formData) {
         if (null != formData) {
             id = formData.getMain().getId();
             id = formData.getMain().getId();
-            if (StringUtils.isEmpty(id)) {
+            if (StringUtils.isEmpty(id) || "0".equals(String.valueOf(id))) {
                 DocSavedDTO saveDTO = saveFormData(formData);
                 DocSavedDTO saveDTO = saveFormData(formData);
                 id = saveDTO.getId();
                 id = saveDTO.getId();
             }
             }
@@ -374,7 +375,7 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
         //更新存在字段
         //更新存在字段
         purchaseMapper.updateByPrimaryKeySelective(purchase);
         purchaseMapper.updateByPrimaryKeySelective(purchase);
         //更新最新采购单价
         //更新最新采购单价
-        productApi.updateLatestPurchasePrice(id);
+        //productApi.updateLatestPurchasePrice(id);
     }
     }
 
 
     private void singleUnAudit(Long id) {
     private void singleUnAudit(Long id) {
@@ -416,8 +417,11 @@ public class PurchaseServiceImpl extends CommonBaseServiceImpl<PurchaseMapper, P
     * @Date: 2018/10/19
     * @Date: 2018/10/19
     */
     */
     private String pushMaxnubmer(String code, Long id) {
     private String pushMaxnubmer(String code, Long id) {
-        Integer count = id != null ?  purchaseMapper.validateCodeWhenUpdate(code, id) :
-                purchaseMapper.validateCodeWhenInsert(code);
+        if (null == code) {
+            throw new BizException(BizExceptionCode.NULL_CODE);
+        }
+        Integer count = "0".equals(String.valueOf(id)) ? purchaseMapper.validateCodeWhenInsert(code) :
+                purchaseMapper.validateCodeWhenUpdate(code, id);
         return maxnumberService.pushMaxnubmer(count, code, "Purchase");
         return maxnumberService.pushMaxnubmer(count, code, "Purchase");
     }
     }
 }
 }

+ 1 - 1
applications/purchase/purchase-server/src/main/resources/mapper/PurchaseMapper.xml

@@ -417,6 +417,6 @@
     select count(1) from purchase where pu_code = #{code}
     select count(1) from purchase where pu_code = #{code}
   </select>
   </select>
   <select id="validateCodeWhenUpdate" resultType="int" >
   <select id="validateCodeWhenUpdate" resultType="int" >
-    select count(1) from purchase where pu_code = #{0} and pu_id != #{1}
+    select count(1) from purchase where pu_code = #{code} and pu_id != #{id}
   </select>
   </select>
 </mapper>
 </mapper>