Преглед изворни кода

Merge remote-tracking branch 'origin/dev_huangjunjie'

13660505945 пре 3 недеља
родитељ
комит
8e4d10f663

+ 1 - 0
docs/new_sql.sql

@@ -158,6 +158,7 @@ ALTER TABLE jsh_material_extend
   MODIFY wholesale_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '销售价格',
   MODIFY low_decimal DECIMAL(24,2) DEFAULT NULL COMMENT '最低售价',
   MODIFY inventory DECIMAL(10,0) DEFAULT 0 COMMENT 'inventory';
+  MODIFY inventory DECIMAL(10,0) DEFAULT 0 COMMENT '库存';
 
 -- 初始库存表 修改库存类型
 ALTER TABLE jsh_material_initial_stock

+ 4 - 1
src/main/java/com/jsh/erp/controller/MaterialController.java

@@ -56,6 +56,9 @@ public class MaterialController extends BaseController {
     @Resource
     private UserService userService;
 
+    @Resource
+    private MaterialBatchService materialBatchService;
+
     @Value(value="${file.uploadType}")
     private Long fileUploadType;
 
@@ -940,7 +943,7 @@ public class MaterialController extends BaseController {
                                            HttpServletRequest request){
         BaseResponseInfo res = new BaseResponseInfo();
         try {
-            List<MaterialVo4Unit> dataList = materialService.findBySelectWithBarCode(categoryId, q, StringUtil.toNull(standardOrModel),
+            List<MaterialVo4Unit> dataList = materialBatchService.findBySelectWithBarCode(categoryId, q, StringUtil.toNull(standardOrModel),
                     StringUtil.toNull(color), StringUtil.toNull(brand), StringUtil.toNull(mfrs), enableSerialNumber, enableBatchNumber,
                     null, null,depotId);
             StringBuffer str = new StringBuffer();

+ 12 - 0
src/main/java/com/jsh/erp/datasource/mappers/MaterialBatchMapper.java

@@ -1,6 +1,7 @@
 package com.jsh.erp.datasource.mappers;
 
 import com.jsh.erp.datasource.entities.MaterialBatch;
+import com.jsh.erp.datasource.entities.MaterialVo4Unit;
 import org.apache.ibatis.annotations.Param;
 
 import java.math.BigDecimal;
@@ -24,4 +25,15 @@ public interface MaterialBatchMapper extends BaseMapperX<MaterialBatch> {
     BigDecimal getInventorySumByDepotAndMid(@Param("depotList") List<Long> depotList,
                                             @Param("mid") Long mid);
 
+    List<MaterialVo4Unit> findBySelectWithBarCode(@Param("q") String q,
+                                                  @Param("standardOrModel") String standardOrModel,
+                                                  @Param("color") String color,
+                                                  @Param("brand") String brand,
+                                                  @Param("mfrs") String mfrs,
+                                                  @Param("enableSerialNumber") String enableSerialNumber,
+                                                  @Param("enableBatchNumber") String enableBatchNumber,
+                                                  @Param("offset") Integer offset,
+                                                  @Param("rows") Integer rows,
+                                                  @Param("depotId") Long depotId);
+
 }

+ 11 - 2
src/main/java/com/jsh/erp/service/MaterialBatchService.java

@@ -1,8 +1,10 @@
 package com.jsh.erp.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.jsh.erp.datasource.entities.DepotItem;
 import com.jsh.erp.datasource.entities.MaterialBatch;
 import com.jsh.erp.datasource.entities.MaterialExtend;
+import com.jsh.erp.datasource.entities.MaterialVo4Unit;
 import org.apache.ibatis.annotations.Param;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -14,10 +16,10 @@ public interface MaterialBatchService extends IService<MaterialBatch> {
 
     /**
      * 根据单据子表id生成商品批次数据
-     * @param diId 单据子表id
+     * @param depotItem 单据子表id
      */
     @Transactional(value = "transactionManager", rollbackFor = Exception.class)
-    void generateMaterialBatchByDepotItemId(Long diId) throws Exception;
+    void generateMaterialBatchByDepotItemId(DepotItem depotItem) throws Exception;
 
     /**
      * 根据单据子表id处理商品批次数据
@@ -41,4 +43,11 @@ public interface MaterialBatchService extends IService<MaterialBatch> {
      * @param mid   商品id
      */
     BigDecimal getInventorySumByDepotAndMid(List<Long> depotList, Long mid);
+
+    /**
+     * 获取批次号字符
+     */
+    List<MaterialVo4Unit> findBySelectWithBarCode(Long categoryId, String q, String standardOrModel, String color,
+                                                  String brand, String mfrs, String enableSerialNumber, String enableBatchNumber,
+                                                  Integer offset, Integer rows, Long depotId) throws Exception;
 }

+ 1 - 1
src/main/java/com/jsh/erp/service/impl/DepotHeadServiceImpl.java

@@ -2051,7 +2051,7 @@ public class DepotHeadServiceImpl extends ServiceImpl<DepotHeadMapper, DepotHead
             depotItemService.insertDepotItemWithObj(depotItem);
             if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())){
                 //表单入库,新增批次商品信息
-                materialBatchService.generateMaterialBatchByDepotItemId(depotItem.getId());
+                materialBatchService.generateMaterialBatchByDepotItemId(depotItem);
             }else if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
                 //表单出库,修改商品库存
                 //materialExtend.setInventory(materialExtend.getInventory().subtract(depotItem.getBasicNumber()));

+ 3 - 2
src/main/java/com/jsh/erp/service/impl/DepotItemServiceImpl.java

@@ -808,7 +808,7 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
                 this.insertDepotItemWithObj(depotItem);
                 if(BusinessConstants.DEPOTHEAD_TYPE_IN.equals(depotHead.getType())){
                     //表单入库,新增批次商品信息
-                    materialBatchService.generateMaterialBatchByDepotItemId(depotItem.getId());
+                    materialBatchService.generateMaterialBatchByDepotItemId(depotItem);
                 }else if(BusinessConstants.DEPOTHEAD_TYPE_OUT.equals(depotHead.getType())){
                     //表单出库,修改商品库存
                     //materialExtend.setInventory(materialExtend.getInventory().subtract(depotItem.getBasicNumber()));
@@ -1192,7 +1192,8 @@ public class DepotItemServiceImpl extends ServiceImpl<DepotItemMapper, DepotItem
         Boolean forceFlag = systemConfigService.getForceApprovalFlag();
         Boolean inOutManageFlag = systemConfigService.getInOutManageFlag();
         //初始库存
-        BigDecimal initStock = materialService.getInitStockByMidAndDepotList(depotList, mId);
+        BigDecimal stock = materialService.getInitStockByMidAndDepotList(depotList, mId);
+        BigDecimal initStock = stock == null ? BigDecimal.ZERO : stock;
         //盘点复盘后数量的变动
         BigDecimal stockCheckSum = depotItemMapperEx.getStockCheckSumByDepotList(depotList, mId, forceFlag, beginTime, endTime);
         //表单的数量

+ 32 - 4
src/main/java/com/jsh/erp/service/impl/MaterialBatchServiceImpl.java

@@ -4,9 +4,14 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.jsh.erp.datasource.entities.*;
 import com.jsh.erp.datasource.mappers.MaterialBatchMapper;
+import com.jsh.erp.datasource.mappers.MaterialCategoryMapperEx;
+import com.jsh.erp.exception.JshException;
 import com.jsh.erp.service.*;
 import com.jsh.erp.utils.DateUtils;
 import com.jsh.erp.utils.RandomHelper;
+import com.jsh.erp.utils.StringUtil;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
@@ -17,7 +22,7 @@ import java.util.List;
 
 @Service
 public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,MaterialBatch> implements MaterialBatchService {
-
+    private Logger logger = LoggerFactory.getLogger(MaterialBatchServiceImpl.class);
 
     @Resource
     private MaterialBatchMapper materialBatchMapper;
@@ -34,17 +39,20 @@ public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,Ma
     @Resource
     private InventoryLogService inventoryLogService;
 
+    @Resource
+    private MaterialCategoryMapperEx materialCategoryMapperEx;
+
 
     @Override
-    public void generateMaterialBatchByDepotItemId(Long diId) throws Exception {
+    public void generateMaterialBatchByDepotItemId(DepotItem depotItem) throws Exception {
         //获取单据子表信息
-        DepotItem depotItem = depotItemService.getDepotItem(diId);
+        //DepotItem depotItem = depotItemService.getDepotItem(diId);
         //获取条码信息
         MaterialExtend materialExtend = materialExtendService.getMaterialExtend(depotItem.getMaterialExtendId());
         //创建批次信息
         MaterialBatch materialBatch = new MaterialBatch();
         //设置单据id
-        materialBatch.setDepotItemId(diId);
+        materialBatch.setDepotItemId(depotItem.getId());
         //设置商品id
         materialBatch.setMaterialId(depotItem.getMaterialId());
         //设置商品单位
@@ -127,4 +135,24 @@ public class MaterialBatchServiceImpl extends ServiceImpl<MaterialBatchMapper,Ma
         return materialBatchMapper.getInventorySumByDepotAndMid(depotList,mid);
     }
 
+    /**
+     * 获取批次号字符
+     */
+    @Override
+    public List<MaterialVo4Unit> findBySelectWithBarCode(Long categoryId, String q, String standardOrModel, String color, String brand, String mfrs, String enableSerialNumber, String enableBatchNumber, Integer offset, Integer rows, Long depotId) throws Exception {
+        List<MaterialVo4Unit> list =null;
+        try{
+
+            if(StringUtil.isNotEmpty(q)) {
+                q = q.replace("'", "");
+                q = q.trim();
+            }
+            list=  materialBatchMapper.findBySelectWithBarCode(q, standardOrModel, color, brand, mfrs,
+                    enableSerialNumber, enableBatchNumber, offset, rows,depotId);
+        }catch(Exception e){
+            JshException.readFail(logger, e);
+        }
+        return list;
+    }
+
 }

+ 1 - 1
src/main/java/com/jsh/erp/service/impl/MaterialExtendServiceImpl.java

@@ -482,7 +482,7 @@ public class MaterialExtendServiceImpl extends ServiceImpl<MaterialExtendMapper,
     @Override
     public MaterialExtend getInfoByBarCode(String barCode)throws Exception {
         MaterialExtendExample example = new MaterialExtendExample();
-        example.createCriteria().andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
+        example.createCriteria().andBarCodeLike(barCode).andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED);
         List<MaterialExtend> list = materialExtendMapper.selectByExample(example);
         if(list!=null && list.size()>0) {
             return list.get(0);

+ 1 - 3
src/main/java/com/jsh/erp/service/impl/MaterialServiceImpl.java

@@ -1297,9 +1297,7 @@ public class MaterialServiceImpl extends ServiceImpl<MaterialMapper, Material> i
         List<MaterialInitialStock> list = materialInitialStockMapper.selectByExample(example);
         if(list!=null && list.size()>0) {
             for(MaterialInitialStock ms: list) {
-                if(ms!=null) {
-                    stock = stock.add(ms.getNumber());
-                }
+                    stock = stock.add(ms.getNumber() == null ? BigDecimal.ZERO : ms.getNumber());
             }
         }
         return stock;

+ 43 - 0
src/main/resources/mapper_xml/MaterialBatchMapper.xml

@@ -20,5 +20,48 @@
         AND ifnull(delete_Flag,'0') !='1'
     </select>
 
+    <select id="findBySelectWithBarCode" parameterType="com.jsh.erp.datasource.entities.MaterialExample" resultType="com.jsh.erp.datasource.entities.MaterialVo4Unit">
+        select m.*,u.name unit_name,mc.name categoryName,me.bar_code,me.id meId,me.commodity_unit,me.sku,
+        me.production_date,me.expiry_num,me.supplier_id,me.batch_number,me.depot_id,me.position,d.`name` depotName,s.supplier supplierName,me.inventory
+        from jsh_material m
+        left join material_batch me on m.id=me.material_id and ifnull(me.delete_Flag,'0') !='1'
+        left join jsh_unit u on m.unit_id=u.id and ifnull(u.delete_Flag,'0') !='1'
+        left JOIN jsh_material_category mc on m.category_id = mc.id and ifnull(mc.delete_Flag,'0') !='1'
+        left JOIN jsh_depot d on me.depot_id = d.id and ifnull(d.delete_Flag,'0') !='1'
+        left JOIN jsh_supplier s on me.supplier_id = s.id and ifnull(s.delete_Flag,'0') !='1'
+        where m.enabled=1 and me.id is not null
+        <if test="q != null and q !=''">
+            <bind name="bindKey" value="'%'+q+'%'"/>
+            and (me.bar_code like #{bindKey} or me.batch_number like #{bindKey} or m.name like #{bindKey} or m.mnemonic like #{bindKey} or m.standard like #{bindKey}
+            or m.model like #{bindKey} or m.color like #{bindKey} or m.brand like #{bindKey} )
+        </if>
+        <if test="standardOrModel != null and standardOrModel !=''">
+            <bind name="bindStandardOrModel" value="'%'+standardOrModel+'%'"/>
+            and (m.standard like #{bindStandardOrModel} or m.model like #{bindStandardOrModel})
+        </if>
+        <if test="color != null and color !=''">
+            <bind name="bindColor" value="'%'+color+'%'"/>
+            and m.color like #{bindColor}
+        </if>
+        <if test="brand != null and brand !=''">
+            <bind name="bindBrand" value="'%'+brand+'%'"/>
+            and m.brand like #{bindBrand}
+        </if>
+        <if test="enableSerialNumber != null and enableSerialNumber !=''">
+            and m.enable_serial_number = #{enableSerialNumber}
+        </if>
+        <if test="enableBatchNumber != null and enableBatchNumber !=''">
+            and m.enable_batch_number = #{enableBatchNumber}
+        </if>
+        <if test="depotId != null and depotId !=''">
+            and me.depot_id = #{depotId}
+        </if>
+        and ifnull(m.delete_flag,'0') !='1'
+        ORDER BY m.id desc, me.default_flag desc, me.id asc
+        <if test="offset != null and rows != null">
+            limit #{offset},#{rows}
+        </if>
+    </select>
+
 
 </mapper>

+ 1 - 1
src/main/resources/mapper_xml/MaterialMapperEx.xml

@@ -795,7 +795,7 @@
         select m.*,u.name unit_name, me.id meId, me.commodity_unit, me.purchase_decimal, me.commodity_decimal,me.inventory,
         me.wholesale_decimal, me.low_decimal, me.sku,me.production_date, me.expiry_num, me.supplier_id, me.bar_code, me.batch_number, me.depot_id, me.position,d.`name` depotName,s.supplier supplierName
         from jsh_material m
-        left join jsh_material_extend me on m.id=me.material_id and ifnull(me.delete_Flag,'0') !='1'
+        left join material_batch me on m.id=me.material_id and ifnull(me.delete_Flag,'0') !='1'
         left join jsh_unit u on m.unit_id=u.id and ifnull(u.delete_Flag,'0') !='1'
         left JOIN jsh_depot d on me.depot_id = d.id and ifnull(d.delete_Flag,'0') !='1'
         left JOIN jsh_supplier s on me.supplier_id = s.id and ifnull(s.delete_Flag,'0') !='1'