Explorar el Código

580设置,小程序580推送优化,580店铺推送优化,店铺一件入库逻辑优化

yjwang hace 2 días
padre
commit
4670c0f5cf
Se han modificado 21 ficheros con 183 adiciones y 19 borrados
  1. 10 0
      fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreScrmController.java
  2. 11 1
      fs-admin/src/main/java/com/fs/qw/qwTask/qwTask.java
  3. 1 1
      fs-admin/src/main/java/com/fs/web/controller/system/SysLoginController.java
  4. 15 0
      fs-common/src/main/java/com/fs/common/core/domain/model/LoginBody.java
  5. 25 0
      fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java
  6. 1 1
      fs-company/src/main/java/com/fs/company/controller/company/CompanyLoginController.java
  7. 12 0
      fs-company/src/main/java/com/fs/framework/security/LoginBody.java
  8. 18 3
      fs-company/src/main/java/com/fs/framework/service/CompanyLoginService.java
  9. 18 1
      fs-framework/src/main/java/com/fs/framework/web/service/SysLoginService.java
  10. 1 1
      fs-service/src/main/java/com/fs/course/service/IFsUserCourseService.java
  11. 6 2
      fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java
  12. 5 3
      fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java
  13. 11 0
      fs-service/src/main/java/com/fs/hisStore/domain/FsStoreScrm.java
  14. 5 0
      fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreScrmMapper.java
  15. 5 0
      fs-service/src/main/java/com/fs/hisStore/service/IFsStoreScrmService.java
  16. 6 0
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreScrmServiceImpl.java
  17. 2 2
      fs-service/src/main/java/com/fs/hospital580/mapper/MedicineMapper.java
  18. 2 1
      fs-service/src/main/java/com/fs/hospital580/service/impl/Hospital580ServiceImpl.java
  19. 1 1
      fs-service/src/main/resources/mapper/hisStore/FsStoreProductScrmMapper.xml
  20. 25 2
      fs-service/src/main/resources/mapper/hisStore/FsStoreScrmMapper.xml
  21. 3 0
      fs-user-app/src/main/java/com/fs/app/facade/impl/Hospital580FacadeServiceImpl.java

+ 10 - 0
fs-admin/src/main/java/com/fs/hisStore/controller/FsStoreScrmController.java

@@ -215,4 +215,14 @@ public class FsStoreScrmController extends BaseController {
         List<Map<String, String>> list = fsStoreService.getStoreColumns();
         return R.ok().put("data", list);
     }
+
+    /**
+     * 设置药店编码(580编码)
+     */
+    @PreAuthorize("@ss.hasPermi('his:store:edit')")
+    @Log(title = "店铺管理", businessType = BusinessType.UPDATE,logParam = {"店铺","设置药店编码"},isStoreLog = true)
+    @PutMapping("/updatePharmacyCode")
+    public AjaxResult updatePharmacyCode(@RequestBody FsStoreScrm fsStore) {
+        return toAjax(fsStoreService.updatePharmacyCode(fsStore.getStoreId(), fsStore.getPharmacyCode()));
+    }
 }

+ 11 - 1
fs-admin/src/main/java/com/fs/qw/qwTask/qwTask.java

@@ -151,9 +151,19 @@ public class qwTask {
      */
     public void processQwSopCourseMaterialTimer() {
 
-        iFsUserCourseService.processQwSopCourseMaterialTimer();
+        iFsUserCourseService.processQwSopCourseMaterialTimer(null);
 
     }
+
+    /**
+     * 2天跑一次 将 课程的封面 上传企业微信 并上传到redis
+     */
+    public void processQwSopCourseMaterialTimerByCorpId(String corpId) {
+
+        iFsUserCourseService.processQwSopCourseMaterialTimer(corpId);
+
+    }
+
     /**
     *  同步待同步客户
     */

+ 1 - 1
fs-admin/src/main/java/com/fs/web/controller/system/SysLoginController.java

@@ -66,7 +66,7 @@ public class SysLoginController
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
-                loginBody.getUuid());
+                loginBody.getUuid(), loginBody.getDomain());
         ajax.put(Constants.TOKEN, token);
         return ajax;
     }

+ 15 - 0
fs-common/src/main/java/com/fs/common/core/domain/model/LoginBody.java

@@ -27,6 +27,11 @@ public class LoginBody
      */
     private String uuid = "";
 
+    /**
+     * 登录来源域名
+     */
+    private String domain;
+
     public String getUsername()
     {
         return username;
@@ -66,4 +71,14 @@ public class LoginBody
     {
         this.uuid = uuid;
     }
+
+    public String getDomain()
+    {
+        return domain;
+    }
+
+    public void setDomain(String domain)
+    {
+        this.domain = domain;
+    }
 }

+ 25 - 0
fs-company-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -610,4 +610,29 @@ public class CompanyUserController extends AppBaseController {
         }
         return null;
     }
+
+    @Login
+    @ApiOperation("查询销售列表")
+    @GetMapping("/getSaleList")
+    public R getSaleList() {
+        Long userId = Long.parseLong(getUserId());
+        CompanyUser companyUser = companyUserService.selectCompanyUserById(userId);
+        List<Map<String, Object>> saleList = new ArrayList<>();
+
+        if (companyUser.isAdmin()) {
+            List<CompanyUser> companyUsers = companyUserService.getCompanyUserListByCompanyIdAndDeptId(companyUser.getCompanyId(), null);
+            saleList = companyUsers.stream().map(u -> {
+                Map<String, Object> map = new HashMap<>();
+                map.put("userId", u.getUserId());
+                map.put("nickName", u.getNickName());
+                return map;
+            }).collect(Collectors.toList());
+        } else {
+            Map<String, Object> self = new HashMap<>();
+            self.put("userId", companyUser.getUserId());
+            self.put("nickName", companyUser.getNickName());
+            saleList.add(self);
+        }
+        return R.ok().put("data", saleList);
+    }
 }

+ 1 - 1
fs-company/src/main/java/com/fs/company/controller/company/CompanyLoginController.java

@@ -65,7 +65,7 @@ public class CompanyLoginController
         AjaxResult ajax = AjaxResult.success();
         // 生成令牌
         String token = loginService.login(loginBody.getUsername(), loginBody.getPassword(), loginBody.getCode(),
-                loginBody.getUuid());
+                loginBody.getUuid(), loginBody.getDomain());
         ajax.put(Constants.TOKEN, token);
         return ajax;
     }

+ 12 - 0
fs-company/src/main/java/com/fs/framework/security/LoginBody.java

@@ -27,6 +27,18 @@ public class LoginBody
      */
     private String uuid = "";
 
+    private String domain;
+
+    public String getDomain()
+    {
+        return domain;
+    }
+
+    public void setDomain(String domain)
+    {
+        this.domain = domain;
+    }
+
     public String getUsername()
     {
         return username;

+ 18 - 3
fs-company/src/main/java/com/fs/framework/service/CompanyLoginService.java

@@ -7,11 +7,11 @@ import com.fs.common.exception.user.CaptchaException;
 import com.fs.common.exception.user.CaptchaExpireException;
 import com.fs.common.exception.user.UserPasswordNotMatchException;
 import com.fs.common.utils.MessageUtils;
+import com.fs.company.domain.CompanyDept;
+import com.fs.company.service.ICompanyDeptService;
 import com.fs.framework.manager.AsyncManager;
 import com.fs.framework.manager.factory.AsyncFactory;
 import com.fs.framework.security.LoginUser;
-import com.fs.his.domain.StoreLoginUser;
-import com.fs.system.service.ISysConfigService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
@@ -39,6 +39,9 @@ public class CompanyLoginService
     @Autowired
     private RedisCache redisCache;
 
+    @Autowired
+    private ICompanyDeptService companyDeptService;
+
     /**
      * 登录验证
      *
@@ -48,7 +51,7 @@ public class CompanyLoginService
      * @param uuid 唯一标识
      * @return 结果
      */
-    public String login(String username, String password, String code, String uuid)
+    public String login(String username, String password, String code, String uuid, String domain)
     {
         String verifyKey = Constants.CAPTCHA_CODE_KEY + uuid;
         String captcha = redisCache.getCacheObject(verifyKey);
@@ -85,6 +88,18 @@ public class CompanyLoginService
             }
         }
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
+
+        // 域名校验只允许总公司销售部门账号登录
+        if ("company.bjyjbao.com".equals(domain) && loginUser.getUser().getDeptId() != null)
+        {
+            CompanyDept dept = companyDeptService.selectCompanyDeptById(loginUser.getCompany().getDeptId());
+            if (dept == null || dept.getParentId() == null || dept.getParentId() != 0)
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor(0l, username, Constants.LOGIN_FAIL, "登陆账号有误,请重新尝试"));
+                throw new ServiceException("登陆账号有误,请重新尝试");
+            }
+        }
+
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(loginUser.getUser().getCompanyId(),username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         redisCache.setCacheObject("companyId:"+loginUser.getUser().getUserId(),loginUser.getUser().getCompanyId(),604800, TimeUnit.SECONDS);
         // 生成token

+ 18 - 1
fs-framework/src/main/java/com/fs/framework/web/service/SysLoginService.java

@@ -8,6 +8,7 @@ import org.springframework.security.authentication.UsernamePasswordAuthenticatio
 import org.springframework.security.core.Authentication;
 import org.springframework.stereotype.Component;
 import com.fs.common.constant.Constants;
+import com.fs.common.core.domain.entity.SysDept;
 import com.fs.common.core.domain.entity.SysUser;
 import com.fs.common.core.domain.model.LoginUser;
 import com.fs.common.core.redis.RedisCache;
@@ -22,6 +23,7 @@ import com.fs.common.utils.ip.IpUtils;
 import com.fs.framework.manager.AsyncManager;
 import com.fs.framework.manager.factory.AsyncFactory;
 import com.fs.system.service.ISysConfigService;
+import com.fs.system.service.ISysDeptService;
 import com.fs.system.service.ISysUserService;
 
 /**
@@ -47,6 +49,9 @@ public class SysLoginService
     @Autowired
     private ISysConfigService configService;
 
+    @Autowired
+    private ISysDeptService deptService;
+
     /**
      * 登录验证
      * 
@@ -56,7 +61,7 @@ public class SysLoginService
      * @param uuid 唯一标识
      * @return 结果
      */
-    public String login(String username, String password, String code, String uuid)
+    public String login(String username, String password, String code, String uuid, String domain)
     {
         boolean captchaOnOff = configService.selectCaptchaOnOff();
         // 验证码开关
@@ -88,6 +93,18 @@ public class SysLoginService
         AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_SUCCESS, MessageUtils.message("user.login.success")));
         LoginUser loginUser = (LoginUser) authentication.getPrincipal();
         recordLoginInfo(loginUser.getUser());
+
+        //域名校验总公司能登陆
+        if ("admin.bjyjbao.com".equals(domain) && loginUser.getUser().getDeptId() != null)
+        {
+            SysDept dept = deptService.selectDeptById(loginUser.getUser().getDeptId());
+            if (dept == null || dept.getParentId() == null || dept.getParentId() != 0)
+            {
+                AsyncManager.me().execute(AsyncFactory.recordLogininfor(username, Constants.LOGIN_FAIL, "登陆账号有误,请重新尝试"));
+                throw new ServiceException("登陆账号有误,请重新尝试");
+            }
+        }
+
         // 生成token
         return tokenService.createToken(loginUser);
     }

+ 1 - 1
fs-service/src/main/java/com/fs/course/service/IFsUserCourseService.java

@@ -109,7 +109,7 @@ public interface IFsUserCourseService
 
     List<FsUserCourseListVO> getFsUserCourseList(FsUserCourseListParam param);
 
-    void  processQwSopCourseMaterialTimer();
+    void  processQwSopCourseMaterialTimer(String corpIdValue);
 
     List<FsCourseListBySidebarVO> getFsCourseListBySidebar(FsCourseListBySidebarParam param);
 

+ 6 - 2
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseServiceImpl.java

@@ -489,11 +489,15 @@ public class FsUserCourseServiceImpl implements IFsUserCourseService
      * 每2天执行一次,将课程封面图片上传到企业微信素材库并缓存mediaId
      */
     @Override
-    public void processQwSopCourseMaterialTimer() {
+    public void processQwSopCourseMaterialTimer(String corpIdValue) {
         // 获取所有需要处理的课程列表
         List<FsUserCourse> fsUserCourses = fsUserCourseMapper.selectFsUserCourseAllCourseByQw();
         // 获取所有企业微信配置
-        List<QwCompany> companies = iQwCompanyService.selectQwCompanyList(new QwCompany());
+        QwCompany qwCompany = new QwCompany();
+        if(StringUtils.isNotEmpty(corpIdValue)){
+            qwCompany.setCorpId(corpIdValue);
+        }
+        List<QwCompany> companies = iQwCompanyService.selectQwCompanyList(qwCompany);
 
         // 遍历每个企业微信配置
         for (QwCompany company : companies) {

+ 5 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsUserServiceImpl.java

@@ -578,10 +578,12 @@ public class FsUserServiceImpl implements IFsUserService {
     @Override
     public PageInfo<FsUserPageListVO> selectFsUserPageList(FsUserPageListParam param) {
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getUserId());
-        if (companyUser != null && companyUser.isAdmin()) {
-            param.setUserId(0L);
-            param.setCompanyId(companyUser.getCompanyId());
+        if (companyUser != null && companyUser.isAdmin() && param.getCompanyUserId() == null) {
+//            param.setUserId(0L);
+//            param.setCompanyId(companyUser.getCompanyId());
+            throw new RuntimeException("管理员,请选择销售!");
         }
+
         //筛选问题
         if (StringUtils.isNotBlank(param.getCompanyUserId())) {
             param.setUserId(Long.valueOf(param.getCompanyUserId()));

+ 11 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsStoreScrm.java

@@ -546,4 +546,15 @@ public class FsStoreScrm extends BaseEntity {
      **/
     private Integer hasErpInfo;
 
+    /**
+     * 580编码/药店编码
+     **/
+    private String pharmacyCode;
+
+    /**
+     * 药店编码筛选:1-已填写 0-未填写(仅查询用)
+     **/
+    @TableField(exist = false)
+    private Integer pharmacyCodeFilter;
+
 }

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsStoreScrmMapper.java

@@ -55,6 +55,11 @@ public interface FsStoreScrmMapper
 
     int updatePassword(@Param("storeId") Long storeId, @Param("password") String password);
 
+    /**
+     * 设置药店编码
+     */
+    int updatePharmacyCode(@Param("storeId") Long storeId, @Param("pharmacyCode") String pharmacyCode);
+
     /**
      * 删除店铺管理
      *

+ 5 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsStoreScrmService.java

@@ -57,6 +57,11 @@ public interface IFsStoreScrmService
      */
     public int updateFsStore(FsStoreScrm fsStore);
 
+    /**
+     * 设置药店编码
+     */
+    public int updatePharmacyCode(Long storeId, String pharmacyCode);
+
     /**
      * 获取店铺资质提示数据
      */

+ 6 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsStoreScrmServiceImpl.java

@@ -399,6 +399,12 @@ public class FsStoreScrmServiceImpl implements IFsStoreScrmService {
         return fsStoreMapper.updateFsStore(fsStoreScrm);
     }
 
+    @Override
+    public int updatePharmacyCode(Long storeId, String pharmacyCode) {
+        storeAuditLogUtil.addOperLog(storeId);
+        return fsStoreMapper.updatePharmacyCode(storeId, pharmacyCode);
+    }
+
     @Override
     public List<FsStoreScrm> selectOverList() {
         return fsStoreMapper.selectOverList();

+ 2 - 2
fs-service/src/main/java/com/fs/hospital580/mapper/MedicineMapper.java

@@ -15,10 +15,10 @@ public interface MedicineMapper {
     MedicineMapper INSTANCE = Mappers.getMapper(MedicineMapper.class);
 
     // @Mapping(source = "", target = "categoryId")
-    @Mapping(source = "productName", target = "commonName")
+    @Mapping(source = "commonName", target = "commonName")
     @Mapping(source = "productName", target = "name")
     @Mapping(source = "dosageForm", target = "dosage")
-    @Mapping(source = "prescribeSpec", target = "spec")
+    @Mapping(source = "specification", target = "spec")
     @Mapping(source = "prescribeSpec", target = "packingSpec")
     @Mapping(source = "manufacturer", target = "manufacturer")
     @Mapping(source = "drugRegCertNo", target = "approvalNumber")

+ 2 - 1
fs-service/src/main/java/com/fs/hospital580/service/impl/Hospital580ServiceImpl.java

@@ -49,7 +49,8 @@ public class Hospital580ServiceImpl implements Hospital580Service {
     @Override
     @Transactional(propagation = Propagation.NOT_SUPPORTED)
     public Result580 initPreDemand(PreDemandDto dto) {
-        dto.setStoreId(hospital580Config.getStoreId());
+        //需要动态多店铺,单店铺注释弃用
+//        dto.setStoreId(hospital580Config.getStoreId());
         return requestResult580(dto, PREDEMAND_PATH);
     }
 

+ 1 - 1
fs-service/src/main/resources/mapper/hisStore/FsStoreProductScrmMapper.xml

@@ -1045,7 +1045,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="productNameExist" resultType="java.lang.Boolean">
        select count(*) from fs_store_product_scrm
-       where store_id = #{storeId} and  ((product_name = #{productName} AND product_name != '-') or (common_name = #{commonName} AND common_name != '-'))
+       where store_id = #{storeId} and (product_name = #{productName} AND product_name != '-')
     </select>
 
     <select id="selectGoodsStatistics" resultType="com.fs.his.vo.SystemGoodsStatisticsVo">

+ 25 - 2
fs-service/src/main/resources/mapper/hisStore/FsStoreScrmMapper.xml

@@ -94,6 +94,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="filingUrl" column="filing_url" />
         <result property="permStatus" column="perm_status" />
         <result property="hasErpInfo" column="has_erp_info" />
+        <result property="pharmacyCode" column="pharmacy_code" />
     </resultMap>
 
     <sql id="selectFsStoreVo">
@@ -113,7 +114,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                is_drug_license_permanent,is_medical_device2_expiry_permanent,is_medical_device3_expiry_permanent,is_food_license_expiry_permanent,is_medical_license_expiry_permanent,
                title_Name_one,title_Name_two,title_Name_three,settlement_agreement_file_name,quality_assurance_agreement_fileName,other_special_qualification_fileName,
                is_effective_permanent1,is_effective_permanent2,is_effective_permanent3,medical_device2_business_scope,medical_device3_business_scope,drug_license_business_scope
-            ,food_license_business_scope,drug_scope_has_frozen,report_url,filing_url,perm_status,has_erp_info
+            ,food_license_business_scope,drug_scope_has_frozen,report_url,filing_url,perm_status,has_erp_info,pharmacy_code
         from fs_store_scrm
     </sql>
 
@@ -130,6 +131,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="storeSeq != null  and storeSeq != ''"> and store_seq like concat('%', #{storeSeq}, '%')</if>
             <if test="merchantId != null  and merchantId != ''"> and merchant_id like concat('%', #{merchantId}, '%')</if>
             <if test="hasErpInfo != null"> and ifnull(has_erp_info, 0) = #{hasErpInfo}</if>
+            <if test="pharmacyCodeFilter != null">
+                <choose>
+                    <when test="pharmacyCodeFilter == 1"> and pharmacy_code is not null and pharmacy_code != ''</when>
+                    <when test="pharmacyCodeFilter == 0"> and (pharmacy_code is null or pharmacy_code = '')</when>
+                </choose>
+            </if>
         </where>
         order by store_id desc
     </select>
@@ -242,6 +249,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="reportUrl !=null ">report_url, </if>
             <if test="filingUrl !=null ">filing_url, </if>
             <if test="permStatus !=null ">report_url, </if>
+            <if test="pharmacyCode !=null and pharmacyCode != ''">pharmacy_code,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="cityIds != null">#{cityIds},</if>
@@ -344,6 +352,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="reportUrl !=null ">#{reportUrl}, </if>
             <if test="filingUrl !=null ">#{filingUrl}, </if>
             <if test="permStatus !=null ">#{permStatus}, </if>
+            <if test="pharmacyCode !=null and pharmacyCode != ''">#{pharmacyCode},</if>
         </trim>
     </insert>
 
@@ -450,6 +459,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="filingUrl !=null ">filing_url = #{filingUrl}, </if>
             <if test="permStatus !=null ">perm_status = #{permStatus}, </if>
             <if test="hasErpInfo !=null ">has_erp_info = #{hasErpInfo}, </if>
+            <if test="pharmacyCode !=null and pharmacyCode != ''">pharmacy_code = #{pharmacyCode},</if>
             <if test="medicalDevice2 !=null and medicalDevice2 != ''">medical_device2 = #{medicalDevice2} ,</if>
             <if test="medicalDevice2BusinessScope !=null and medicalDevice2BusinessScope != ''">medical_device2_business_scope = #{medicalDevice2BusinessScope} ,</if>
             <if test="medicalDevice2Code !=null and medicalDevice2Code != ''">medical_device2_code = #{medicalDevice2Code} ,</if>
@@ -464,6 +474,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="foodLicenseExpiryStart !=null">food_license_expiry_start = #{foodLicenseExpiryStart} ,</if>
             <if test="foodLicenseExpiryEnd !=null">food_license_expiry_end = #{foodLicenseExpiryEnd} ,</if>
             <if test="hasErpInfo !=null">has_erp_info = #{hasErpInfo} ,</if>
+            <if test="pharmacyCode !=null and pharmacyCode != ''">pharmacy_code = #{pharmacyCode} ,</if>
         </trim>
         where store_id = #{storeId}
     </update>
@@ -877,7 +888,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selecStorePageList" resultType="com.fs.hisStore.domain.FsStoreScrm">
         SELECT
         store_id,full_name,delivery_type,send_phone, brokerage_rate,refund_phone,refund_address,refund_consignee,
-        city_ids, store_name, descs, brokerage_type,logo_url, address, lng, lat,
+        city_ids, store_name, descs, brokerage_type,logo_url, address, lng, lat,pharmacy_code,
         CASE
             WHEN phone IS NOT NULL AND phone != '' THEN CONCAT(LEFT(phone, 3), '****', RIGHT(phone, 4))
             ELSE phone
@@ -909,6 +920,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="account != null  and account != ''"> and account like concat('%', #{account}, '%')</if>
             <if test="queryStoreId != null "> or store_id = #{queryStoreId}</if>
             <if test="hasErpInfo != null "> and has_erp_info = #{hasErpInfo}</if>
+            <if test="pharmacyCodeFilter != null ">
+                <if test="pharmacyCodeFilter == 1">
+                    AND pharmacy_code IS NOT NULL
+                </if>
+                <if test="pharmacyCodeFilter == 0">
+                    AND pharmacy_code IS NULL
+                </if>
+            </if>
             <if test="daysDiffMax != null">
                 <!-- 判断剩余天数范围 -->
                 <if test="daysDiffMax == 0">
@@ -1090,4 +1109,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updatePassword">
         update fs_store_scrm set password = #{password} where store_id = #{storeId}
     </update>
+
+    <update id="updatePharmacyCode">
+        update fs_store_scrm set pharmacy_code = #{pharmacyCode} where store_id = #{storeId}
+    </update>
 </mapper>

+ 3 - 0
fs-user-app/src/main/java/com/fs/app/facade/impl/Hospital580FacadeServiceImpl.java

@@ -105,6 +105,8 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
         FsStoreScrm storeScrm = storeScrmService.selectFsStoreByStoreId(storeOrderScrm.getStoreId());
         if(storeScrm == null){
             throw new FSException("操作失败,店铺信息不存在!");
+        }else if(storeScrm.getPharmacyCode() == null){
+            throw new FSException("操作失败,店铺未设置推送编码,请联系管理员!");
         }
 
         //过滤商品信息
@@ -159,6 +161,7 @@ public class Hospital580FacadeServiceImpl implements Hospital580FacadeService {
             return textRecordDto;
         }).sorted(Comparator.comparing(BeforeAiData::getSubjectId))
                 .collect(Collectors.toList()));
+        dto.setStoreId(storeScrm.getPharmacyCode());
         Result580 result580 = hospital580Service.initPreDemand(dto);
         order.setJumpUrl(result580.getData());
         order.updateById();