Browse Source

移动端师傅配件库存查询

FengChaoYu 9 months ago
parent
commit
f8aa43f90c

+ 22 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/material/parts/PartsWorkerStockBean.java

@@ -0,0 +1,22 @@
+package com.gree.mall.miniapp.bean.material.parts;
+
+import com.gree.mall.miniapp.plus.entity.WorkerStock;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.math.BigDecimal;
+
+@EqualsAndHashCode(callSuper = true)
+@ApiModel
+@Data
+public class PartsWorkerStockBean extends WorkerStock {
+
+    @ApiModelProperty("市场价")
+    private BigDecimal marketPrice;
+
+    @ApiModelProperty("剩余天数")
+    private Long expireDay;
+
+}

+ 38 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/material/parts/WorkerStockCensusBean.java

@@ -0,0 +1,38 @@
+package com.gree.mall.miniapp.bean.material.parts;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+@ApiModel
+public class WorkerStockCensusBean {
+    @ApiModelProperty("师傅身份证")
+    private String identity;
+
+    @ApiModelProperty("师傅编号")
+    private String workerId;
+
+    @ApiModelProperty("师傅名称")
+    private String workerName;
+
+    @ApiModelProperty("新件库存")
+    private BigDecimal newQty;
+
+    @ApiModelProperty("旧件库存")
+    private BigDecimal oldQty;
+
+    @ApiModelProperty("新件待返还数量")
+    private BigDecimal newRefundQty;
+
+    @ApiModelProperty("新件待返还金额")
+    private BigDecimal newRefundAmount;
+
+    @ApiModelProperty("旧件待返还数量")
+    private BigDecimal oldRefundQty;
+
+    @ApiModelProperty("旧件待返还金额")
+    private BigDecimal oldRefundAmount;
+}

+ 64 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/commonmapper/MaterialMapper.java

@@ -6,7 +6,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.miniapp.bean.material.*;
 import com.gree.mall.miniapp.bean.material.parts.*;
 import com.gree.mall.miniapp.bean.material.stock.WorkerNormStockBean;
-import com.gree.mall.miniapp.plus.entity.WebsitGoods;
+import com.gree.mall.miniapp.plus.entity.AdminWebsit;
 import com.gree.mall.miniapp.plus.entity.WebsitPartsSalesItem;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -141,7 +141,7 @@ public interface MaterialMapper {
     List<OldRefundManageRecordBean> queryOldRefundRecordById(@Param("id") String id);
 
     @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
-    WebsitGoods websitGroupList(@Param("companyWechatId") String companyWechatId, @Param("websitId") String websitId, @Param("id") String partsWebsiteNumber);
+    List<String> websitGroupList(@Param("companyWechatId") String companyWechatId, @Param("websitId") String websitId, @Param("id") String partsWebsiteNumber);
 
     @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
     List<WebsitPartsStockBean> existWebsitStockList(@Param("companyWechatId") String companyWechatId,
@@ -150,4 +150,66 @@ public interface MaterialMapper {
                                                     @Param("partsNumber") String partsNumber,
                                                     @Param("partsName") String partsName,
                                                     @Param("materialGroupName") String materialGroupName);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    AdminWebsit existWebsitList(@Param("companyWechatId") String companyWechatId, @Param("identity") String identity);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    List<String> existWebsitGroupList(@Param("companyWechatId") String companyWechatId,
+                                     @Param("identity") String identity,
+                                     @Param("websitId") String websitId,
+                                     @Param("partsWebsitId") String partsWebsitId,
+                                     @Param("partsAttr") String partsAttr);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    List<PartsWorkerStockBean> existWorkerStockList(@Param("companyWechatId") String companyWechatId,
+                                                    @Param("identity") String identity,
+                                                    @Param("websitId") String websitId,
+                                                    @Param("partsWebsitId") String partsWebsitId,
+                                                    @Param("partsAttr") String partsAttr,
+                                                    @Param("partsNumber") String partsNumber,
+                                                    @Param("partsName") String partsName,
+                                                    @Param("materialGroupName") String materialGroupName);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    List<WebsitPartsSalesItem> querySalesEndTimeByIdentity(@Param("companyWechatId") String companyWechatId,
+                                                           @Param("websitId") String websitId,
+                                                           @Param("partsWebsitId") String partsWebsitId,
+                                                           @Param("identity") String identity);
+
+    /**
+     * 统计查询师傅旧件和新件库存
+     * @param companyWechatId
+     * @param identity
+     * @param websitId
+     * @return
+     */
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    WorkerStockCensusBean workerStockStatistics(@Param("companyWechatId") String companyWechatId,
+                                                @Param("identity") String identity,
+                                                @Param("websitId") String websitId);
+
+    /**
+     * 统计查询师傅新件待返还数量和金额
+     * @param companyWechatId
+     * @param identity
+     * @param websitId
+     * @return
+     */
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    WorkerStockCensusBean workerNewStockStatistics(@Param("companyWechatId") String companyWechatId,
+                                                   @Param("identity") String identity,
+                                                   @Param("websitId") String websitId);
+
+    /**
+     * 统计查询师傅旧件待返还数量和金额
+     * @param companyWechatId
+     * @param identity
+     * @param websitId
+     * @return
+     */
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    WorkerStockCensusBean workerOldStockStatistics(@Param("companyWechatId") String companyWechatId,
+                                                   @Param("identity") String identity,
+                                                   @Param("websitId") String websitId);
 }

+ 1 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/material/parts/WebsitStockController.java

@@ -4,7 +4,6 @@ import com.gree.mall.miniapp.bean.material.parts.WebsitPartsStockBean;
 import com.gree.mall.miniapp.exception.RemoteServiceException;
 import com.gree.mall.miniapp.helper.ResponseHelper;
 import com.gree.mall.miniapp.logic.material.parts.WebsitPartsStockLogic;
-import com.gree.mall.miniapp.plus.entity.WebsitGoods;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -28,7 +27,7 @@ public class WebsitStockController {
 
     @ApiOperation(value = "查询网点库存物料分组")
     @PostMapping("/group/list")
-    public ResponseHelper<List<WebsitGoods>> websitGroupList (
+    public ResponseHelper<List<String>> websitGroupList (
             @ApiParam(value = "网点编号",required = true) @RequestParam String websitId,
             @ApiParam(value = "配件网点编号",required = true) @RequestParam String partsWebsitId
     ) throws RemoteServiceException {

+ 71 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/material/parts/WorkerPartsStockController.java

@@ -0,0 +1,71 @@
+package com.gree.mall.miniapp.controller.material.parts;
+
+import com.gree.mall.miniapp.bean.material.parts.PartsWorkerStockBean;
+import com.gree.mall.miniapp.bean.material.parts.WorkerStockCensusBean;
+import com.gree.mall.miniapp.exception.RemoteServiceException;
+import com.gree.mall.miniapp.helper.ResponseHelper;
+import com.gree.mall.miniapp.logic.material.parts.WorkerPartsStockLogic;
+import com.gree.mall.miniapp.plus.entity.AdminWebsit;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+import java.util.List;
+
+@Slf4j
+@RestController()
+@Api(value = "配件库存查询", tags ={"配件库存查询"} )
+@RequestMapping(value = "/app/parts/stock", produces = "application/json; charset=utf-8")
+public class WorkerPartsStockController {
+
+    @Resource
+    WorkerPartsStockLogic workerPartsStockLogic;
+    
+    @ApiOperation(value = "查询师傅库存网点")
+    @PostMapping("/exist/websit/list")
+    public ResponseHelper<List<AdminWebsit>> existWebsitList (
+            @ApiParam(value = "师傅身份证",required = true) @RequestParam String identity
+    ) throws RemoteServiceException {
+        return ResponseHelper.success(workerPartsStockLogic.existWebsitList(identity));
+    }
+
+    @ApiOperation(value = "查询师傅库存物料分组")
+    @PostMapping("/exist/websit/group/list")
+    public ResponseHelper<List<String>> existWebsitGroupList (
+            @ApiParam(value = "师傅身份证",required = true) @RequestParam String identity,
+            @ApiParam(value = "网点编号",required = true) @RequestParam String websitId,
+            @ApiParam(value = "配件网点编号",required = true) @RequestParam String partsWebsitId,
+            @ApiParam(value = "配件属性 NEW=新件 OLD=旧件 WAY=在途 TEMPNEW=临占新件 TEMPOLD=临占旧件",required = true) @RequestParam String partsAttr
+    ) throws RemoteServiceException {
+        return ResponseHelper.success(workerPartsStockLogic.existWebsitGroupList(identity, websitId, partsWebsitId, partsAttr));
+    }
+   
+    @ApiOperation(value = "查询师傅库存")
+    @PostMapping("/exist/worker/stock/list")
+    public ResponseHelper<List<PartsWorkerStockBean>> existWorkerStockList (
+            @ApiParam(value = "师傅身份证",required = true) @RequestParam String identity,
+            @ApiParam(value = "网点编号",required = true) @RequestParam String websitId,
+            @ApiParam(value = "配件网点编号",required = true) @RequestParam String partsWebsitId,
+            @ApiParam(value = "配件属性 NEW=新件 OLD=旧件 WAY=在途 OLD=旧件 WAY=在途 TEMPNEW=临占新件 TEMPOLD=临占旧件",required = true) @RequestParam String partsAttr,
+            @ApiParam(value = "配件编码") @RequestParam(required = false) String partsNumber,
+            @ApiParam(value = "配件名称") @RequestParam(required = false) String partsName,
+            @ApiParam(value = "物料组id") @RequestParam(required = false) String materialGroupName
+    ) throws RemoteServiceException {
+        return ResponseHelper.success(workerPartsStockLogic.existWorkerStockList(identity, websitId, partsWebsitId, partsAttr, partsNumber, partsName, materialGroupName));
+    }
+    
+    @ApiOperation(value = "统计查询师傅库存相关")
+    @PostMapping("/query/worker-stock")
+    public ResponseHelper<WorkerStockCensusBean> queryWorkerStock (
+            @ApiParam(value = "师傅身份证",required = true) @RequestParam String identity,
+            @ApiParam(value = "网点编码") @RequestParam(required = false) String websitId
+    ) throws RemoteServiceException {
+        return ResponseHelper.success(workerPartsStockLogic.queryWorkerStock(identity, websitId));
+    }
+}

+ 1 - 2
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WebsitPartsStockLogic.java

@@ -5,7 +5,6 @@ import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
 import com.gree.mall.miniapp.commonmapper.MaterialMapper;
 import com.gree.mall.miniapp.logic.common.CommonLogic;
 import com.gree.mall.miniapp.plus.entity.MaterialConfig;
-import com.gree.mall.miniapp.plus.entity.WebsitGoods;
 import com.gree.mall.miniapp.plus.service.MaterialConfigService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -26,7 +25,7 @@ public class WebsitPartsStockLogic {
     @Resource
     MaterialConfigService materialConfigService;
 
-    public WebsitGoods websitGroupList(String websitId, String partsWebsitId) {
+    public List<String> websitGroupList(String websitId, String partsWebsitId) {
         CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
         return materialMapper.websitGroupList(wechat.getCompanyWechatId(), websitId, partsWebsitId);
     }

+ 132 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/material/parts/WorkerPartsStockLogic.java

@@ -0,0 +1,132 @@
+package com.gree.mall.miniapp.logic.material.parts;
+
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUnit;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.gree.mall.miniapp.bean.material.parts.PartsWorkerStockBean;
+import com.gree.mall.miniapp.bean.material.parts.WorkerStockCensusBean;
+import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
+import com.gree.mall.miniapp.commonmapper.MaterialMapper;
+import com.gree.mall.miniapp.enums.material.PartsAttrEnum;
+import com.gree.mall.miniapp.logic.common.CommonLogic;
+import com.gree.mall.miniapp.plus.entity.AdminWebsit;
+import com.gree.mall.miniapp.plus.entity.WebsitPartsRefundConfig;
+import com.gree.mall.miniapp.plus.entity.WebsitPartsSalesItem;
+import com.gree.mall.miniapp.plus.service.AdminWebsitService;
+import com.gree.mall.miniapp.plus.service.WebsitPartsRefundConfigService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+@Service
+@Slf4j
+public class WorkerPartsStockLogic {
+
+    @Resource
+    MaterialMapper materialMapper;
+    @Resource
+    CommonLogic commonLogic;
+    @Resource
+    AdminWebsitService adminWebsitService;
+    @Resource
+    WebsitPartsRefundConfigService websitPartsRefundConfigService;
+
+
+    public AdminWebsit existWebsitList(String identity) {
+        CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
+        return materialMapper.existWebsitList(wechat.getCompanyWechatId(), identity);
+    }
+
+    public List<String> existWebsitGroupList(String identity, String websitId, String partsWebsitId, String partsAttr) {
+        CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
+        return materialMapper.existWebsitGroupList(wechat.getCompanyWechatId(), identity, websitId, partsWebsitId, partsAttr);
+    }
+
+    public List<PartsWorkerStockBean> existWorkerStockList(String identity, String websitId, String partsWebsitId,
+                                                           String partsAttr, String partsNumber, String partsName,
+                                                           String materialGroupName) {
+        CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
+        List<PartsWorkerStockBean> stockList = materialMapper.existWorkerStockList(wechat.getCompanyWechatId(), identity,
+                websitId, partsWebsitId, partsAttr, partsNumber, partsName, materialGroupName);
+        // 过期天数
+        if (partsAttr.equals(PartsAttrEnum.NEW.getKey())) {
+            // 第一步 查询配件网点
+            AdminWebsit shop = adminWebsitService.getById(websitId);
+            if (Objects.nonNull(shop)) {
+                List<WebsitPartsSalesItem> itemList = materialMapper.querySalesEndTimeByIdentity(wechat.getCompanyWechatId(),
+                        websitId, partsWebsitId, identity);
+                Map<String, WebsitPartsSalesItem> itemMap = itemList.stream()
+                        .collect(Collectors.toMap(WebsitPartsSalesItem::getPartsNumber, Function.identity()));
+                // 第二步 查询中心配件返还配置
+                WebsitPartsRefundConfig oneConfig = websitPartsRefundConfigService.lambdaQuery()
+                        .eq(WebsitPartsRefundConfig::getCompanyWechatId, wechat.getCompanyWechatId())
+                        .eq(WebsitPartsRefundConfig::getIsDefault, Boolean.TRUE)
+                        .one();
+                // 第三步 查询网点配件返还配置
+                WebsitPartsRefundConfig shopConfig = websitPartsRefundConfigService.lambdaQuery()
+                        .eq(WebsitPartsRefundConfig::getCompanyWechatId, wechat.getCompanyWechatId())
+                        .eq(WebsitPartsRefundConfig::getWebsitId, websitId)
+                        .one();
+                // 超期时间
+                Integer expire;
+
+                if (shop.getPartsWebsitAttr()) {
+                    // 内区天数
+                    expire = Objects.isNull(shopConfig) ? oneConfig.getNewRefundInner() : shopConfig.getNewRefundInner();
+                } else {
+                    // 外区天数
+                    expire = Objects.isNull(shopConfig) ? oneConfig.getNewRefundOutside() : shopConfig.getNewRefundOutside();
+                }
+
+                for (PartsWorkerStockBean partsWorkerStockBean : stockList) {
+                    WebsitPartsSalesItem partsSalesOrderItem = itemMap.get(partsWorkerStockBean.getGoodsId());
+                    if (Objects.nonNull(partsSalesOrderItem)) {
+                        DateTime offsetDateTime = DateUtil.offset(partsSalesOrderItem.getExamineTime(), DateField.DAY_OF_MONTH, expire);
+                        DateTime endOfDay = DateUtil.endOfDay(offsetDateTime);
+                        long betweenDay = DateUtil.between(endOfDay, DateUtil.date(), DateUnit.DAY) + 1;
+                        partsWorkerStockBean.setExpireDay(betweenDay > expire ? null : betweenDay);
+                    }
+                }
+            }
+        }
+        return stockList;
+    }
+
+    public WorkerStockCensusBean queryWorkerStock(String identity, String websitId) {
+        CurrentCompanyWechat wechat = commonLogic.getCurrentCompanyWechat();
+        WorkerStockCensusBean initWorkStockCensusBean = new WorkerStockCensusBean();
+        initWorkStockCensusBean.setIdentity("");
+        initWorkStockCensusBean.setWorkerId("");
+        initWorkStockCensusBean.setWorkerName("");
+        initWorkStockCensusBean.setNewQty(new BigDecimal(0));
+        initWorkStockCensusBean.setOldQty(new BigDecimal(0));
+        initWorkStockCensusBean.setNewRefundAmount(new BigDecimal(0));
+        initWorkStockCensusBean.setNewRefundQty(new BigDecimal(0));
+        initWorkStockCensusBean.setOldRefundAmount(new BigDecimal(0));
+        initWorkStockCensusBean.setOldRefundQty(new BigDecimal(0));
+        if(StringUtils.isBlank(identity)) {
+            return initWorkStockCensusBean;
+        }
+        WorkerStockCensusBean workerStockStatistics = materialMapper.workerStockStatistics(wechat.getCompanyWechatId(), identity, websitId);
+        workerStockStatistics.setWorkerName(wechat.getUser().getNickName());
+        if(!Objects.isNull(workerStockStatistics)) {
+            WorkerStockCensusBean workerNewStockStatistics =  materialMapper.workerNewStockStatistics(wechat.getCompanyWechatId(), identity, websitId);
+            workerStockStatistics.setNewRefundQty(Objects.isNull(workerNewStockStatistics) ? new BigDecimal(0) : workerNewStockStatistics.getNewRefundQty());
+            workerStockStatistics.setNewRefundAmount(Objects.isNull(workerNewStockStatistics) ? new BigDecimal(0) : workerNewStockStatistics.getNewRefundAmount());
+            WorkerStockCensusBean workerOldStockStatistics =  materialMapper.workerOldStockStatistics(wechat.getCompanyWechatId(), identity, websitId);
+            workerStockStatistics.setOldRefundQty(Objects.isNull(workerOldStockStatistics) ? new BigDecimal(0) : workerOldStockStatistics.getOldRefundQty());
+            workerStockStatistics.setOldRefundAmount(Objects.isNull(workerOldStockStatistics) ? new BigDecimal(0) : workerOldStockStatistics.getOldRefundAmount());
+            return workerStockStatistics;
+        }
+        return initWorkStockCensusBean;
+    }
+}

+ 167 - 15
mall-miniapp-service/src/main/resources/mapper/MaterialMapper.xml

@@ -391,9 +391,9 @@
             sales_id = #{id}
     </select>
 
-    <select id="websitGroupList" resultType="com.gree.mall.miniapp.plus.entity.WebsitGoods">
+    <select id="websitGroupList" resultType="java.lang.String">
         SELECT
-            material_group_name AS `value`
+            material_group_name
         FROM
             websit_stock
         WHERE
@@ -408,20 +408,20 @@
     <select id="existWebsitStockList"
             resultType="com.gree.mall.miniapp.bean.material.parts.WebsitPartsStockBean">
         SELECT
-        a.id,
-        a.websit_id,
-        a.websit_name,
-        a.parts_websit_id,
-        a.goods_id,
-        a.goods_name,
-        b.material_group_name,
-        b.part_type,
-        b.market_price,
-        b.goods_stock_unit,
-        a.qty,
-        a.old_qty
+            a.id,
+            a.websit_id,
+            a.websit_name,
+            a.parts_websit_id,
+            a.goods_id,
+            a.goods_name,
+            b.material_group_name,
+            b.part_type,
+            b.market_price,
+            b.goods_stock_unit,
+            a.qty,
+            a.old_qty
         FROM
-            websit_stock a LEFT JOIN websit_goods b ON a.goods_id = b.goods_code
+            websit_stock a LEFT JOIN websit_goods b ON a.company_wechat_id = b.company_wechat_id AND a.goods_id = b.goods_code
         WHERE
             a.company_wechat_id = #{companyWechatId}
             AND a.websit_id = #{websitId}
@@ -439,4 +439,156 @@
             AND a.qty > 0
 
     </select>
+
+    <select id="existWebsitList" resultType="com.gree.mall.miniapp.plus.entity.AdminWebsit">
+        SELECT
+            websit_id, websit_name AS name, parts_websit_id
+        FROM
+            worker_stock
+        WHERE
+            company_wechat_id = #{companyWechatId}
+            AND identity = #{identity}
+        GROUP BY
+            websit_id, parts_websit_id
+    </select>
+
+    <select id="existWebsitGroupList" resultType="java.lang.String">
+        SELECT
+            material_group_name
+        FROM
+            worker_stock
+        WHERE
+            company_wechat_id = #{companyWechatId}
+            AND identity = #{identity}
+            AND websit_id = #{websitId}
+            AND parts_websit_id = #{partsWebsitId}
+        <choose>
+            <when test="partsAttr != null and partsAttr == 'NEW'">
+                AND qty > 0
+            </when>
+            <when test="partsAttr != null and partsAttr == 'OLD'">
+                AND old_qty > 0
+            </when>
+            <when test="partsAttr != null and partsAttr == 'WAY'">
+                AND way_qty > 0
+            </when>
+            <otherwise>
+                AND id  = 0
+            </otherwise>
+        </choose>
+        GROUP BY
+            material_group_name
+    </select>
+
+    <select id="existWorkerStockList"
+            resultType="com.gree.mall.miniapp.bean.material.parts.PartsWorkerStockBean">
+        SELECT
+            a.*,
+            b.market_price
+        FROM
+            worker_stock a LEFT JOIN websit_goods b ON a.company_wechat_id = b.company_wechat_id AND a.goods_id = b.goods_code
+        WHERE
+            a.company_wechat_id = #{companyWechatId}
+            AND a.goods_type = 'P'
+            AND a.identity = #{identity}
+            AND a.websit_id = #{websitId}
+            AND a.parts_websit_id = #{partsWebsitId}
+            <if test="partsNumber != null and partsNumber != ''">
+                AND a.goods_id = #{partsNumber}
+            </if>
+            <if test="partsName != null and partsName != ''">
+                AND a.goods_name LIKE CONCAT('%',#{partsName},'%')
+            </if>
+            <if test="materialGroupId != null and materialGroupId != ''">
+                AND a.material_group_name = #{materialGroupName}
+            </if>
+            <choose>
+                <when test="partsAttr != null and partsAttr == 'NEW'">
+                    AND a.qty > 0
+                </when>
+                <when test="partsAttr != null and partsAttr == 'OLD'">
+                    AND a.old_qty > 0
+                </when>
+                <when test="partsAttr != null and partsAttr == 'WAY'">
+                    AND a.way_qty > 0
+                </when>
+                <otherwise>
+                    AND a.id  = 0
+                </otherwise>
+            </choose>
+    </select>
+
+    <select id="querySalesEndTimeByIdentity"
+            resultType="com.gree.mall.miniapp.plus.entity.WebsitPartsSalesItem">
+        SELECT
+            b.parts_number,
+            b.qty,
+            a.end_time AS examineTime
+        FROM
+            websit_parts_sales a, websit_parts_sales_item b
+        WHERE
+            a.id = b.sales_id
+            AND a.company_wechat_id = #{companyWechatId}
+            AND a.pushFlag = 'SALES'
+            AND a.identity = #{identity}
+            AND a.websit_id = #{websitId}
+            AND a.parts_websit_id = #{partsWebsitId}
+            AND b.qty > 0
+        GROUP BY b.parts_number
+    </select>
+
+    <select id="workerStockStatistics"
+            resultType="com.gree.mall.miniapp.bean.material.parts.WorkerStockCensusBean">
+        SELECT t.worker_id, t.identity,
+        SUM(IFNULL(qty,0)) as newQty,
+        SUM(IFNULL(old_qty,0)) as oldQty
+        FROM  worker_stock t
+        WHERE identity = #{identity}
+        <if test="websitId != null and websitId != ''">
+            AND t.websit_id = #{websitId}
+        </if>
+        GROUP BY t.identity
+    </select>
+
+    <select id="workerNewStockStatistics"
+            resultType="com.gree.mall.miniapp.bean.material.parts.WorkerStockCensusBean">
+        SELECT
+            SUM(
+            IFNULL( b.qty, 0 )) AS newRefundQty,
+            SUM(
+            IFNULL( b.total_amount, 0 )) AS newRefundAmount
+        FROM
+            websit_parts_new_refund_manage a
+        INNER JOIN websit_parts_new_refund_manage_record b ON a.apply_no = b.apply_no
+        WHERE
+            a.flag IN ( 'SAVE', 'SUBMIT', 'AGREE' )
+            AND a.identity = #{identity}
+            <if test="websitId != null and websitId != ''">
+                AND a.receive_websit_id = #{websitId}
+            </if>
+        GROUP BY
+        a.identity
+    </select>
+
+    <select id="workerOldStockStatistics"
+            resultType="com.gree.mall.miniapp.bean.material.parts.WorkerStockCensusBean">
+        SELECT
+            SUM(
+            IFNULL( b.qty, 0 )) AS oldRefundQty,
+            SUM(
+            IFNULL( b.total_amount, 0 )) AS oldRefundAmount
+        FROM
+        websit_parts_old_refund_manage a
+        INNER JOIN websit_parts_old_refund_manage_record b ON a.apply_no = b.apply_no
+        WHERE
+            a.flag IN ( 'SAVE', 'SUBMIT' )
+            AND a.identity = #{identity}
+            <if test="websitId != null and websitId != ''">
+                AND a.receive_websit_id = #{websitId}
+            </if>
+        GROUP BY
+        a.identity
+    </select>
+
+
 </mapper>