浏览代码

1.手动提交修改下月投保单状态逻辑完善。
2.列表增加投保企业查询。

tomatozq 5 年之前
父节点
当前提交
e2b857aaa1

+ 11 - 0
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/ApplicationPolicyController.java

@@ -78,11 +78,14 @@ public class ApplicationPolicyController {
     @RequestMapping(value = "otherPageList",method = RequestMethod.POST)
     @ApiImplicitParams({
             @ApiImplicitParam(name="definitionId",value = "险种编号",required = true,paramType = "query"),
+            @ApiImplicitParam(name="companyName",value = "企业名称",paramType = "query"),
+            @ApiImplicitParam(name="insuredName",value = "投保人姓名",paramType = "query"),
             @ApiImplicitParam(name="status",value = "状态",paramType = "query"),
             @ApiImplicitParam(name="userType",value = "用户类型(0为人才超市,1为PICC)",paramType = "query")
     })
     public MessageResult<Map> otherPageList(
             String definitionId,String status,String userType,
+            String insuredName,String companyName,
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date startTime,
             @DateTimeFormat(pattern = "yyyy-MM-dd") Date endTime,
             @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
@@ -103,6 +106,14 @@ public class ApplicationPolicyController {
             searchParams.put("definitionId",definitionId);
         }
 
+        if (StringUtils.isNotEmpty(companyName)) {
+            searchParams.put("companyName","%" + companyName + "%");
+        }
+
+        if (StringUtils.isNotEmpty(insuredName)) {
+            searchParams.put("insuredName","%"+insuredName+"%");
+        }
+
         if (StringUtils.isNotEmpty(status)) {
             searchParams.put("status",status);
         }

+ 8 - 1
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsuranceApplicationController.java

@@ -279,13 +279,16 @@ public class InsuranceApplicationController {
     @ApiImplicitParams({
             @ApiImplicitParam(name="status",value = "状态",paramType = "query"),
             @ApiImplicitParam(name="definitionId",value = "险种ID",paramType = "query"),
+            @ApiImplicitParam(name="companyName",value = "企业名称",paramType = "query"),
             @ApiImplicitParam(name="insuredName",value = "投保人姓名",paramType = "query"),
             @ApiImplicitParam(name="startTime",value = "开始时间",paramType = "query"),
             @ApiImplicitParam(name="endTime",value = "结束时间",paramType = "query"),
             @ApiImplicitParam(name="userType",value = "用户类型(0为人才超市,1为PICC)",paramType = "query")
     })
     public MessageResult<Map> pageList(
-            String status,String definitionId,String insuredName,String startTime,String endTime,String userType,
+            String status,String definitionId,
+            String insuredName,String companyName,
+            String startTime,String endTime,String userType,
             @RequestParam(value="pageIndex",defaultValue="1") int pageIndex,
             @RequestParam(value="pageSize",defaultValue="20") int pageSize,
             @RequestAttribute String subject){
@@ -308,6 +311,10 @@ public class InsuranceApplicationController {
             searchParams.put("definitionId",definitionId);
         }
 
+        if (StringUtils.isNotEmpty(companyName)) {
+            searchParams.put("companyName","%" + companyName + "%");
+        }
+
         if (StringUtils.isNotEmpty(insuredName)) {
             searchParams.put("insuredName","%"+insuredName+"%");
         }

+ 2 - 24
picc-admin-server/src/main/java/com/jpsoft/picc/modules/business/controller/InsurancePolicyController.java

@@ -741,10 +741,10 @@ public class InsurancePolicyController {
             destPolicy.setNo(srcPolicy.getNo() + 1);
             destPolicy.setId(UUID.randomUUID().toString());
             destPolicy.setStatus(PolicyStatus.Draft.getValue() + "");
+            destPolicy.setLatestApplicationId(applicationId);
+            destPolicy.setCompanyId(insuranceApplication.getCompanyId());
             destPolicy.setCreateBy(subject);
             destPolicy.setCreateTime(new Date());
-            destPolicy.setUpdateBy(subject);
-            destPolicy.setUpdateTime(new Date());
 
             insurancePolicyService.insert(destPolicy);
 
@@ -844,28 +844,6 @@ public class InsurancePolicyController {
         insurancePolicy.setInsuranceFee(totalAmount);
         insurancePolicy.setNumber((int)totalNumber);
 
-        List<InsurancePolicyMember> insurancePolicyMemberList = insurancePolicyMemberService.findByPolicyId(insurancePolicy.getId());
-
-        boolean isUnChecked = false;
-
-        for (InsurancePolicyMember insurancePolicyMember:insurancePolicyMemberList) {
-            String memberStatus = insurancePolicyMember.getStatus();
-            //花名册人员是否为已复核状态
-            if(!("2").equals(memberStatus)){
-                isUnChecked = true;
-                break;
-            }
-        }
-
-        if(isUnChecked){
-            //有未复核人员
-            insurancePolicy.setStatus(PolicyStatus.PendingTrial.getValue() + "");
-        }
-        else{
-            //所有人员都已复核
-            insurancePolicy.setStatus(PolicyStatus.PendingMakePolicy.getValue() + "");
-        }
-
         insurancePolicy.setUpdateTime(new Date());
         insurancePolicy.setUpdateBy(subject);
 

+ 20 - 0
picc-common/src/main/java/com/jpsoft/picc/modules/business/entity/InsurancePolicy.java

@@ -66,6 +66,10 @@ public class InsurancePolicy {
     private String updateBy;
     @ApiModelProperty(value = "修改时间")
     private Date updateTime;
+    @ApiModelProperty(value = "投保企业编号")
+    private String companyId;
+    @ApiModelProperty(value = "最后关联投保申请单编号")
+    private String latestApplicationId;
 
     /**
      *获取编号
@@ -394,4 +398,20 @@ public class InsurancePolicy {
     public void setStatusN(String statusN){
         this.statusN = statusN;
     }
+
+    public String getCompanyId() {
+        return companyId;
+    }
+
+    public void setCompanyId(String companyId) {
+        this.companyId = companyId;
+    }
+
+    public String getLatestApplicationId() {
+        return latestApplicationId;
+    }
+
+    public void setLatestApplicationId(String latestApplicationId) {
+        this.latestApplicationId = latestApplicationId;
+    }
 }

+ 16 - 13
picc-common/src/main/resources/mapper/business/ApplicationPolicy.xml

@@ -75,42 +75,45 @@
 	        ${sort.name} ${sort.order}
 	 	</foreach>
 	</select>
+	<!--这里只需要查询出主键,在ApplicationPolicyMap中再关联记录-->
 	<select id="otherSearch" parameterType="hashmap" resultMap="ApplicationPolicyMap">
 		<![CDATA[
 			SELECT
 			a.id_ as policy_id,
-			(
-				select b.application_id from
-				business_application_policy b,business_insurance_application c
-			 	where b.policy_id = a.id_  and b.application_id = c.id_
-			 	order by c.create_time desc limit 1
-			 ) as application_id
+			a.latest_application_id as application_id
 			from business_insurance_policy a
+			inner join business_insurance_application b on a.latest_application_id = b.id_
 		]]>
 		<where>
-			and del_flag = false and no_ > 1
+			a.del_flag = false and a.no_ > 1
 			<if test="searchParams.definitionId != null">
-				and definition_id = #{searchParams.definitionId}
+				and a.definition_id = #{searchParams.definitionId}
 			</if>
 			<if test="searchParams.status != null">
-				and status_ = #{searchParams.status}
+				and a.status_ = #{searchParams.status}
 			</if>
 			<if test="searchParams.userType != null">
-				and (status_='30' or status_='60' or status_='70')
+				and (a.status_='30' or a.status_='60' or a.status_='70')
 			</if>
 			<if test="searchParams.startTime != null">
 				<![CDATA[
-				and start_time >= #{searchParams.startTime}
+				and a.start_time >= #{searchParams.startTime}
 				]]>
 			</if>
 			<if test="searchParams.endTime != null">
 				<![CDATA[
-				and start_time <= #{searchParams.endTime}
+				and a.start_time <= #{searchParams.endTime}
 				]]>
 			</if>
+			<if test="searchParams.companyName != null">
+				and b.company_name like #{searchParams.companyName}
+			</if>
+			<if test="searchParams.insuredName != null">
+				and b.insured_name like #{searchParams.insuredName}
+			</if>
 		</where>
 		<foreach item="sort" collection="sortList"  open="order by" separator=",">
-			${sort.name} ${sort.order}
+			a.${sort.name} ${sort.order}
 		</foreach>
 	</select>
 	<!--考虑下月投保单合并的情况,如果下月投保单已存在则创建时间小于当前投保单创建时间,所以要用start_time-->

+ 3 - 2
picc-common/src/main/resources/mapper/business/InsuranceApplication.xml

@@ -186,8 +186,6 @@
 			AND start_time < str_to_date( #{endTime},'%Y-%m-%d')
         ]]>
     </select>
-
-
 	<select id="search" parameterType="hashmap" resultMap="InsuranceApplicationMap">
 		<![CDATA[
 		    select * from (
@@ -226,6 +224,9 @@
                 and start_time<=#{searchParams.endTime}
                 ]]>
             </if>
+            <if test="searchParams.companyName != null">
+                and company_name like #{searchParams.companyName}
+            </if>
             <if test="searchParams.insuredName != null">
                 and insured_name like #{searchParams.insuredName}
             </if>

+ 41 - 18
picc-common/src/main/resources/mapper/business/InsurancePolicy.xml

@@ -26,8 +26,10 @@
         <result property="createTime" column="create_time" />
         <result property="updateBy" column="update_by" />
         <result property="updateTime" column="update_time" />
+        <result property="latestApplicationId" column="latest_application_id"/>
+        <result property="companyId" column="company_id"/>
         <association property="agent" column="agent_id" select="com.jpsoft.picc.modules.base.dao.InsuranceAgentDAO.get"></association>
-    </resultMap>
+   </resultMap>
     <insert id="insert" parameterType="com.jpsoft.picc.modules.business.entity.InsurancePolicy">
         <!--
         <selectKey resultType="java.lang.String" order="BEFORE" keyProperty="id">
@@ -38,7 +40,8 @@
 		insert into business_insurance_policy
 	    (id_,definition_id,status_,process_status,insurance_fee,start_time,end_time,
 	    number_,account_bank,issuing_bank,singl_number,transfer_time,
-	    agent_id,insurance_policy_file,no_,effective_date,del_flag,create_by,create_time,update_by,update_time)
+	    agent_id,insurance_policy_file,no_,effective_date,del_flag,create_by,create_time,update_by,update_time,
+	    company_id,latest_application_id)
 		values
 		(
             #{id,jdbcType=VARCHAR}
@@ -62,6 +65,8 @@
             ,#{createTime,jdbcType= TIMESTAMP }
             ,#{updateBy,jdbcType=VARCHAR}
             ,#{updateTime,jdbcType= TIMESTAMP }
+            ,#{companyId,jdbcType=VARCHAR}
+            ,#{latestApplicationId,jdbcType=VARCHAR}
 		)
 	]]>
     </insert>
@@ -131,6 +136,12 @@
             <if test="updateTime!=null">
                 update_time=#{updateTime,jdbcType= TIMESTAMP },
             </if>
+            <if test="companyId!=null">
+                company_id=#{companyId,jdbcType=VARCHAR},
+            </if>
+            <if test="latestApplicationId!=null">
+                latest_application_id=#{latestApplicationId,jdbcType=VARCHAR},
+            </if>
         </set>
         where id_=#{id}
     </update>
@@ -145,22 +156,38 @@
     </select>
     <select id="search" parameterType="hashmap" resultMap="InsurancePolicyMap">
         <![CDATA[
-			SELECT a.* FROM business_insurance_policy a LEFT JOIN business_application_policy b ON a.id_ = b.policy_id
+			SELECT
+			a.id_ as policy_id,
+			a.latest_application_id as application_id
+			from business_insurance_policy a,business_insurance_application b
 		]]>
         <where>
-            <if test="searchParams.delFlag != null">
-                and a.del_flag = #{searchParams.delFlag}
-            </if>
-            <if test="searchParams.applicationId != null">
-                and b.application_id like #{searchParams.applicationId}
+            and a.latest_application_id = b.id_
+            and a.del_flag = false and no_ > 1
+            <if test="searchParams.definitionId != null">
+                and a.definition_id = #{searchParams.definitionId}
             </if>
             <if test="searchParams.status != null">
-                and b.status_ like #{searchParams.status}
+                and a.status_ = #{searchParams.status}
+            </if>
+            <if test="searchParams.userType != null">
+                and (a.status_='30' or a.status_='60' or a.status_='70')
+            </if>
+            <if test="searchParams.startTime != null">
+                <![CDATA[
+				and a.start_time >= #{searchParams.startTime}
+				]]>
+            </if>
+            <if test="searchParams.endTime != null">
+                <![CDATA[
+				and a.start_time <= #{searchParams.endTime}
+				]]>
+            </if>
+            <if test="searchParams.companyName != null">
+                and b.company_name = #{searchParams.companyName}
             </if>
-            <if test="searchParams.ids != null">
-                <foreach item="id" collection="ids"  open=" " separator=" ">
-                    or a.id_ = ${id}
-                </foreach>
+            <if test="searchParams.insuredName != null">
+                and b.insured_name = #{searchParams.insuredName}
             </if>
         </where>
         <foreach item="sort" collection="sortList"  open="order by" separator=",">
@@ -186,11 +213,7 @@
         <where>
             del_flag=0 and no_>1
             <if test="searchParams.companyId != null">
-                and id_ in(
-                    select b.policy_id from business_insurance_application a,business_application_policy b
-                    where a.id_=b.application_id
-                    and a.company_id = #{searchParams.companyId}
-                )
+                and company_id = #{searchParams.companyId}
             </if>
             <if test="searchParams.status != null">
                 and status_ = #{searchParams.status}

+ 3 - 0
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsuranceApplicationController.java

@@ -373,6 +373,9 @@ public class InsuranceApplicationController {
             //更新每月投保单
             InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
 
+            insurancePolicy.setLatestApplicationId(applicationId);
+            insurancePolicy.setCompanyId(insuranceApplication.getCompanyId());
+
             insurancePolicy.setDefinitionId(insuranceApplication.getDefinitionId());
             insurancePolicy.setInsuranceFee(totalAmount);
             insurancePolicy.setNumber(totalNumber);

+ 21 - 1
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyController.java

@@ -332,7 +332,27 @@ public class InsurancePolicyController {
         try {
             InsurancePolicy insurancePolicy = insurancePolicyService.get(policyId);
 
-            insurancePolicy.setStatus(String.valueOf(PolicyStatus.PendingTrial.getValue()));
+            List<InsurancePolicyMember> insurancePolicyMemberList = insurancePolicyMemberService.findByPolicyId(insurancePolicy.getId());
+
+            boolean isUnChecked = false;
+
+            for (InsurancePolicyMember insurancePolicyMember : insurancePolicyMemberList) {
+                String memberStatus = insurancePolicyMember.getStatus();
+                //花名册人员是否为已复核状态
+                if (!("2").equals(memberStatus)) {
+                    isUnChecked = true;
+                    break;
+                }
+            }
+
+            if (isUnChecked) {
+                //有未复核人员,则状态为待初审
+                insurancePolicy.setStatus(PolicyStatus.PendingTrial.getValue() + "");
+            } else {
+                //所有人员都已复核吗,则状态为待制单
+                insurancePolicy.setStatus(PolicyStatus.PendingMakePolicy.getValue() + "");
+            }
+
             insurancePolicy.setUpdateBy(principal.getName());
             insurancePolicy.setUpdateTime(new Date());
 

+ 1 - 0
picc-enterprise-server/src/main/java/com/jpsoft/picc/modules/auth/controller/InsurancePolicyUserController.java

@@ -81,6 +81,7 @@ public class InsurancePolicyUserController {
             if (relatePolicyList.size() == 0) {
                 InsurancePolicy insurancePolicy = new InsurancePolicy();
                 insurancePolicy.setId(policyId);
+                insurancePolicy.setLatestApplicationId(applicationId);
 
                 insurancePolicy.setDelFlag(false);
                 insurancePolicy.setCreateBy(principal.getName());