Jelajahi Sumber

发票功能调整

sangwenwei 1 tahun lalu
induk
melakukan
d0b30adc5b

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/domain/CwFinanceInvoiceBase.java

@@ -48,6 +48,10 @@ public class CwFinanceInvoiceBase extends BaseEntity {
     private String contractId;
 
     private String account;
+    /**
+     * 类型 项目1,报告2,其他0
+     */
+    private String type;
 
 
 

+ 1 - 1
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/CwFinanceInvoiceMapper.java

@@ -17,7 +17,7 @@ import java.util.List;
 //@InterceptorIgnore(tenantLine = "true")
 public interface CwFinanceInvoiceMapper extends BaseMapper<CwFinanceInvoice> {
 
-    public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper, @Param("officeIds") String officeIds);
+    public IPage<CwFinanceInvoiceDTO> findList(Page<CwFinanceInvoiceDTO> page, @Param(Constants.WRAPPER) QueryWrapper<CwFinanceInvoice> queryWrapper);
     @InterceptorIgnore(tenantLine = "true")
     public CwFinanceInvoiceDTO queryById(@Param("id") String id);
 

+ 34 - 13
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/mapper/xml/CwFinanceInvoiceMapper.xml

@@ -222,36 +222,57 @@
     <select id="getBaseList" resultType="com.jeeplus.finance.invoice.service.dto.CwFinanceInvoiceBaseDTO">
         select
         <include refid="FIB_Column_List"></include>
+        ,rpl.report_no
         from cw_finance_invoice_base fib
-
-        where fib.del_flag = '0' and fib.invoice_id = ${id}
+        left join cw_project_report_new_line rpl on fib.program_id=rpl.report_id
+        where fib.del_flag = '0' and fib.invoice_id = #{id}
     </select>
     <select id="findList" resultMap="BaseResultMap">
-        SELECT DISTINCT
+        select DISTINCT a.id as 'baseId',
         <include refid="Base_Column_List"></include>,
-        fib.program_id,
         su.name as operator,
         so.name as operator_office,
-        fib.program_name,
+        d.ID_ AS task_id,
+        (
+        case
+                 when a.type = '0' then (concat('其他:',a.program_name))
+                 when a.type = '1' then (select rpr.project_name from cw_project_records rpr where id = a.program_id)
+                 when a.type = '2' then (select rpr.project_name from cw_project_records rpr where id = (select project_id from cw_project_report where id = a.program_id))
+            else '' end
+        ) as programName,
+
+        (
+        case
+                 when a.type = '0' then (fi.report_type)
+                 when a.type = '1' then (select rpr.report_type from cw_project_records rpr where id = a.program_id)
+                 when a.type = '2' then (select rpr.report_type from cw_project_records rpr where id = (select project_id from cw_project_report where id = a.program_id))
+            else '' end
+        ) as reportType,
         cfid.number as "number",
         cfid.account as "accountDetail",
-        pr.report_type as "recordReportType",
-        sdv.label
-        from cw_project_records pr
-		LEFT JOIN cw_finance_invoice_base fib on fib.program_id=pr.id
-		LEFT JOIN cw_finance_invoice fi on  fib.invoice_id=fi.id
-		left join cw_finance_invoice_detail cfid on cfid.invoice_id = fi.id and cfid.del_flag = '0'
+        a.program_id,
+        a.type as 'recordType'
+        from cw_finance_invoice_base a
+        left join cw_finance_invoice fi on a.invoice_id = fi.id
+        left join cw_finance_invoice_detail cfid on cfid.invoice_id = fi.id and cfid.del_flag = '0'
         left join sys_user su on fi.create_by_id = su.id and su.del_flag = '0'
         left join sys_user_manage_office sumo on sumo.office_id = su.office_id
         left join sys_office so on su.office_id = so.id and so.del_flag = '0'
-        left join sys_dict_value sdv on pr.report_type=sdv.value
+        LEFT JOIN act_ru_task d ON fi.proc_ins_id = d.PROC_INST_ID_
+        LEFT JOIN cw_project_records pr on a.program_id=pr.id
+        ${ew.customSqlSegment}
+        ORDER BY
+        fi.create_time DESC, cfid.number asc
     </select>
 
     <select id="queryById" resultMap="BaseResultMap">
         select
         <include refid="Base_Column_List"></include>,
-        su.name as reconciliationPeopleName
+        su.name as reconciliationPeopleName,
+        rpl.report_no
         from cw_finance_invoice fi
+        left join cw_finance_invoice_base fib on fib.invoice_id = fi.id
+        left join cw_project_report_new_line rpl on fib.program_id=rpl.report_id
         left join sys_user su on fi.reconciliation_people = su.id
         where fi.del_flag = '0' and fi.id = #{id}
     </select>

+ 41 - 20
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/CwFinanceInvoiceService.java

@@ -19,8 +19,10 @@ import com.jeeplus.finance.invoice.service.dto.CwFinanceInvoiceDTO;
 import com.jeeplus.finance.invoice.service.dto.CwFinanceInvoiceDetailDTO;
 import com.jeeplus.finance.invoice.service.dto.CwFinanceInvoiceReceivablesDTO;
 import com.jeeplus.finance.invoice.service.mapstruct.*;
+import com.jeeplus.finance.projectRecords.domain.CwProjectRecords;
 import com.jeeplus.finance.projectRecords.mapper.CwProjectRecordsMapper;
 import com.jeeplus.finance.projectRecords.service.dto.CwProjectRecordsDTO;
+import com.jeeplus.finance.projectReport.mapper.CwProjectReportMapper;
 import com.jeeplus.finance.workClientInfo.domain.CwWorkClientBase;
 import com.jeeplus.finance.workClientInfo.domain.CwWorkClientBilling;
 import com.jeeplus.finance.workClientInfo.service.CwWorkClientBillingService;
@@ -65,6 +67,9 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
     private CwFinanceInvoiceInvalidMapper cwFinanceInvoiceInvalidMapper;
     @Resource
     private CwProjectRecordsMapper cwProjectRecordsMapper;
+    @Resource
+    private CwProjectReportMapper cwProjectReportMapper;
+
 
 //    @Resource
 //    private SerialnumTplService serialnumTplService;
@@ -228,8 +233,6 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
                                 }
                             }
                         }
-//                        String label = cwProjectRecordsMapper.selectLabel();
-//                        queryWrapper.eq("sdv.dict_type_id",label);
                         checkNum.getAndIncrement();
 
                     }
@@ -240,8 +243,9 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
             }
             //报备类型
             if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getReportType())){
-                queryWrapper.like("fi.report_type",cwFinanceInvoiceDTO.getReportType());
+                queryWrapper.eq("fi.report_type",cwFinanceInvoiceDTO.getReportType()).or(i->i.eq("pr.report_type",cwFinanceInvoiceDTO.getReportType()));
             }
+
             // 对账人
             if (StringUtils.isNotBlank(cwFinanceInvoiceDTO.getReconciliationPeopleName())) {
                 List<User> users = SpringUtil.getBean ( IUserApi.class ).selectListByName(cwFinanceInvoiceDTO.getReconciliationPeopleName());
@@ -278,7 +282,8 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         // 如果当前用户是部门主任,则可以查看部门所有的项目、自己创建的项目以及所属项目组的项目
         // 如果当前用户是员工,则可以查看自己创建的项目以及所属项目组的项目
         StringBuilder officeIds = new StringBuilder();
-        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
+        UserDTO userDTO = UserUtils.getCurrentUserDTO();
+//        queryWrapper.eq("",userDTO.getId());
 //        UserDTO userDTO = SpringUtil.getBean ( IUserApi.class ).getByToken(TokenProvider.getCurrentToken());
         List<String> manageOfficeIdList= Lists.newArrayList();
         //判定是否为会计所长
@@ -303,22 +308,24 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
         //获取当前登录人所属角色
         //若是评估部门主任,则仅展示部门主任信息
         //若是评估员工,则仅展示自己的数据信息
-        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
-        for (RoleDTO roleDTO : roleDTOList) {
-            //根据角色id查询角色信息
-            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
-            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
-                queryWrapper.eq("fi.create_by_id", userDTO.getId());
-                break;
-            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
-                queryWrapper.eq("sumo.user_id", userDTO.getId());
-                break;
-            }else if("szfbdagly".equals(roleDTOById.getEnName()) && "苏州分部档案管理员".equals(roleDTOById.getName())){
-                queryWrapper.eq("d.office_id", "1613800824395530242");
-                break;
-            }
-        }
-        return cwFinanceInvoiceMapper.findList(page,queryWrapper,officeIds.toString());
+//        List<RoleDTO> roleDTOList = userDTO.getRoleDTOList();
+//        for (RoleDTO roleDTO : roleDTOList) {
+//            //根据角色id查询角色信息
+//            RoleDTO roleDTOById = SpringUtil.getBean(IRoleApi.class).getRoleDTOById(roleDTO.getId());
+//            if("cwyg".equals(roleDTOById.getEnName()) && "兴光会计员工".equals(roleDTOById.getName())){
+//                queryWrapper.eq("a.create_by_id", userDTO.getId());
+//                break;
+//            }else if("cw_bmzr".equals(roleDTOById.getEnName()) && "兴光会计部门主任".equals(roleDTOById.getName())){
+//                queryWrapper.eq("sumo.user_id", userDTO.getId());
+//                break;
+//            }else if("szfbdagly".equals(roleDTOById.getEnName()) && "苏州分部档案管理员".equals(roleDTOById.getName())){
+//                queryWrapper.eq("d.office_id", "1613800824395530242");
+//                break;
+//            }
+//        }
+        IPage<CwFinanceInvoiceDTO> list = cwFinanceInvoiceMapper.findList(page, queryWrapper);
+
+        return list;
     }
 
     public CwFinanceInvoiceDTO queryById(String id) {
@@ -414,6 +421,20 @@ public class CwFinanceInvoiceService extends ServiceImpl<CwFinanceInvoiceMapper,
                         cwFinanceInvoiceBase.setInvoiceId(cwFinanceInvoice.getId());
                         cwFinanceInvoiceBaseMapper.insert(cwFinanceInvoiceBase);
                     }
+                    if (StringUtils.isNotEmpty(cwFinanceInvoiceBase.getProgramId())){
+                        if (null!=cwProjectRecordsMapper.queryById(cwFinanceInvoiceBase.getProgramId())){
+                            cwFinanceInvoiceBase.setType("1");
+                            cwFinanceInvoiceBaseMapper.updateById(cwFinanceInvoiceBase);
+                        }
+                        if (null!=cwProjectReportMapper.queryById(cwFinanceInvoiceBase.getProgramId())){
+                            cwFinanceInvoiceBase.setType("2");
+                            cwFinanceInvoiceBaseMapper.updateById(cwFinanceInvoiceBase);
+                        }
+                        if (cwFinanceInvoiceBase.getProgramId().equals("")){
+                            cwFinanceInvoiceBase.setType("0");
+                            cwFinanceInvoiceBaseMapper.updateById(cwFinanceInvoiceBase);
+                        }
+                    }
                 });
             }else{
                 cwFinanceInvoiceBaseMapper.delete(new QueryWrapper<CwFinanceInvoiceBase>().lambda()

+ 8 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/dto/CwFinanceInvoiceBaseDTO.java

@@ -46,6 +46,14 @@ public class CwFinanceInvoiceBaseDTO extends BaseDTO {
     private String account;
 
     private String reportType;
+    /**
+     * 类型 项目1,报告2,其他0
+     */
+    private String type;
+
+    private String reportNo;
+
+
 
 
     private static final long serialVersionUID = 1L;

+ 9 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/invoice/service/dto/CwFinanceInvoiceDTO.java

@@ -326,6 +326,15 @@ public class CwFinanceInvoiceDTO extends BaseDTO {
      */
     private String recordReportType;
 
+    private String baseId;
+
+    private String recordType;
+
+    private String reportNo;
+
+
+
+
 
 
     private static final long serialVersionUID = 1L;

+ 37 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectBusinessType/controller/CwProjectBusinessTypeController.java

@@ -128,4 +128,41 @@ public class CwProjectBusinessTypeController {
         return cwProjectBusinessTypeService.deleteByIds(ids);
     }
 
+
+    /**
+     * 业务类型树
+     */
+    @ApiLog("查询业务类型树")
+    @GetMapping("findList")
+    public ResponseEntity<List<CwProjectBusinessType>> findList(){
+        List<CwProjectBusinessType> cwProjectBusinessTypeList = cwProjectBusinessTypeService.list();
+        List<String> idList = new ArrayList<>();
+        cwProjectBusinessTypeList.stream().forEach(item->{
+            if (StringUtils.isNotBlank(item.getParentIds())){
+                String[] split = item.getParentIds().split(",");
+                for (String s : split) {
+                    idList.add(s);
+                }
+            }
+            List<CwProjectBusinessType> list = cwProjectBusinessTypeService.list(new QueryWrapper<CwProjectBusinessType>().lambda().like(CwProjectBusinessType::getParentIds, "," + item.getId() + ","));
+            idList.addAll(list.stream().map(CwProjectBusinessType::getId).collect(Collectors.toList()));
+            idList.add(item.getId());
+        });
+        List<String> ids = idList.stream().distinct().filter(item->{
+            if (!"0".equals(item)){
+                return true;
+            }
+            return false;
+        }).collect(Collectors.toList());
+        if(CollectionUtil.isNotEmpty(ids)) {
+            QueryWrapper<CwProjectBusinessType> wrapper = new QueryWrapper<CwProjectBusinessType>()
+                    .in("cw_pbt.id", idList);
+            //List<CwProjectBusinessType> list = cwProjectBusinessTypeService.findList(wrapper);
+            //return  ResponseEntity.ok(list);
+        }
+        return ResponseEntity.ok(cwProjectBusinessTypeList);
+    }
+
+
+
 }

+ 2 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectBusinessType/mapper/CwProjectBusinessTypeMapper.java

@@ -29,6 +29,8 @@ public interface CwProjectBusinessTypeMapper extends BaseMapper<CwProjectBusines
 
     //查询子集数据
     List<CwProjectBusinessType> selectByParentIds(@Param("ids") List<String> ids);
+
+    List<CwProjectBusinessTypeDTO> listTree(@Param(Constants.WRAPPER) QueryWrapper<CwProjectBusinessType> queryWrapper);
 }
 
 

+ 7 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectBusinessType/mapper/xml/CwManageLevelTypeMapper.xml

@@ -97,6 +97,13 @@
         <foreach collection="ids" item="id" open="(" separator="," close=")">
             #{id}
         </foreach>
+    </select>
 
+    <select id="listTree" resultMap="map">
+        select
+        <include refid="Base_Column_List"></include>
+        from cw_project_business_type cw_pbt
+        where cw_pbt.del_flag = '0'
     </select>
+
 </mapper>

+ 4 - 0
jeeplus-modules/jeeplus-finance/src/main/java/com/jeeplus/finance/projectBusinessType/service/CwProjectBusinessTypeService.java

@@ -105,4 +105,8 @@ public class CwProjectBusinessTypeService extends ServiceImpl<CwProjectBusinessT
         return ResponseEntity.ok ("删除成功");
     }
 
+    public List<CwProjectBusinessTypeDTO> listTree(QueryWrapper<CwProjectBusinessType> queryWrapper) {
+        List<CwProjectBusinessTypeDTO> list=cwProjectBusinessTypeMapper.listTree(queryWrapper);
+        return list;
+    }
 }